;;; compiled by rms@mole.gnu.ai.mit.edu on Mon Sep 28 08:59:04 1992
;;; from file /gd/gnu/emacs/19.0/lisp/ws-mode.el
;;; emacs version 19.0.438.
;;; bytecomp version FSF 2.08
;;; optimization is on.

(defvar wordstar-mode-map nil "\
")
(defvar wordstar-C-j-map nil "\
")
(defvar wordstar-C-k-map nil "\
")
(defvar wordstar-C-o-map nil "\
")
(defvar wordstar-C-q-map nil "\
")
(byte-code "(    ##########\n###############\n#\n#\n#\n#\n#\n#\n@ A #\nB C #\nD E #\nF G #\nH I #\nJ K #\nȁK #\nL M #\nʁM #\nN O #\ńO #\nP Q #\nЁQ #\nR S #\nԁS #\nT U #\nցU #\nV W #\nځW #\nX Y #\nY #\nZ [ #\n[ #\n\\ ] #\n] #\n^ _ #\n_ #\n` a #\na #\nb c #\n#\nd e #\ne #\nf g #\ng #\nh O #\nO #\ni j #\nj ##L k #ʁk #J l #ȁl #m n #؁n #V o #ځo #p q #ہq #r s #t s #\\ u #u ##v w #x y #z { #| } ##~ # # # # #@  #B  #D  #F  #H  #  #Ɓ #J  #ȁ #L  #ʁ #N  #́ #P  #Ё #V  #ځ #p  #ہ #X  # #\\  #け #^  #偒 ##f  #쁓 #i  # #  #" [wordstar-mode-map make-keymap wordstar-C-k-map wordstar-C-o-map wordstar-C-q-map define-key "" backward-word "" fill-paragraph "" scroll-up "" forward-char "" previous-line "" forward-word "" delete-char "" backward-char "	" indent-for-tab-command "\n" help-for-help "" "" ws-repeat-search "" open-line "" "" quoted-insert "" "" scroll-down "" "" kill-word "" keyboard-quit "" overwrite-mode "" scroll-down-line "" next-line "" kill-complete-line "" scroll-up-line " " nil "0" ws-set-marker-0 "1" ws-set-marker-1 "2" ws-set-marker-2 "3" ws-set-marker-3 "4" ws-set-marker-4 "5" ws-set-marker-5 "6" ws-set-marker-6 "7" ws-set-marker-7 "8" ws-set-marker-8 "9" ws-set-marker-9 "b" ws-begin-block "c" ws-copy-block "d" save-buffers-kill-emacs "f" find-file "h" ws-show-markers "i" ws-indent-block "k" ws-end-block "p" ws-print-block "q" kill-emacs "r" insert-file "s" save-some-buffers "t" ws-mark-word "u" ws-exdent-block "v" ws-move-block "w" ws-write-block "x" "y" ws-delete-block center-line switch-to-buffer "j" justify-current-line kill-buffer "l" list-buffers "m" auto-fill-mode "" set-fill-column "wd" delete-other-windows "wh" split-window-horizontally "wo" other-window "wv" split-window-vertically ws-find-marker-0 ws-find-marker-1 ws-find-marker-2 ws-find-marker-3 ws-find-marker-4 ws-find-marker-5 ws-find-marker-6 ws-find-marker-7 ws-find-marker-8 ws-find-marker-9 "a" ws-query-replace ws-goto-block-begin end-of-buffer end-of-line ws-search ws-goto-block-end ws-undo ws-last-cursorp beginning-of-buffer beginning-of-line ws-last-error ws-kill-eol "" ws-kill-bol] 4)
(fset 'wordstar-mode (make-byte-code (quote nil) " \n!ŉ" [kill-all-local-variables use-local-map wordstar-mode-map "WordStar" mode-name wordstar-mode major-mode] 2 "\
Major mode with WordStar-like key bindings.

BUGS:
 - Help menus with WordStar commands (C-j just calls help-for-help)
   are not implemented
 - Options for search and replace
 - Show markers (C-k h) is somewhat strange
 - Search and replace (C-q a) is only available in forward direction

No key bindings beginning with ESC are installed, they will work
Emacs-like.

The key bindings are:

  C-a		backward-word
  C-b		fill-paragraph
  C-c		scroll-up-line
  C-d		forward-char
  C-e		previous-line
  C-f		forward-word
  C-g		delete-char
  C-h		backward-char
  C-i		indent-for-tab-command
  C-j		help-for-help
  C-k		ordstar-C-k-map
  C-l		ws-repeat-search
  C-n		open-line
  C-p		quoted-insert
  C-r		scroll-down-line
  C-s		backward-char
  C-t		kill-word
  C-u		keyboard-quit
  C-v		overwrite-mode
  C-w		scroll-down
  C-x		next-line
  C-y		kill-complete-line
  C-z		scroll-up

  C-k 0		ws-set-marker-0
  C-k 1		ws-set-marker-1
  C-k 2		ws-set-marker-2
  C-k 3		ws-set-marker-3
  C-k 4		ws-set-marker-4
  C-k 5		ws-set-marker-5
  C-k 6		ws-set-marker-6
  C-k 7		ws-set-marker-7
  C-k 8		ws-set-marker-8
  C-k 9		ws-set-marker-9
  C-k b		ws-begin-block
  C-k c		ws-copy-block
  C-k d		save-buffers-kill-emacs
  C-k f		find-file
  C-k h		ws-show-markers
  C-k i		ws-indent-block
  C-k k		ws-end-block
  C-k p		ws-print-block
  C-k q		kill-emacs
  C-k r		insert-file
  C-k s		save-some-buffers
  C-k t		ws-mark-word
  C-k u		ws-exdent-block
  C-k C-u	keyboard-quit
  C-k v		ws-move-block
  C-k w		ws-write-block
  C-k x		kill-emacs
  C-k y		ws-delete-block

  C-o c		center-line
  C-o b		switch-to-buffer
  C-o j		justify-current-line
  C-o k		kill-buffer
  C-o l		list-buffers
  C-o m		auto-fill-mode
  C-o r		set-fill-column
  C-o C-u	keyboard-quit
  C-o wd	delete-other-windows
  C-o wh	split-window-horizontally
  C-o wo	other-window
  C-o wv	split-window-vertically

  C-q 0		ws-find-marker-0
  C-q 1		ws-find-marker-1
  C-q 2		ws-find-marker-2
  C-q 3		ws-find-marker-3
  C-q 4		ws-find-marker-4
  C-q 5		ws-find-marker-5
  C-q 6		ws-find-marker-6
  C-q 7		ws-find-marker-7
  C-q 8		ws-find-marker-8
  C-q 9		ws-find-marker-9
  C-q a		ws-query-replace
  C-q b		ws-to-block-begin
  C-q c		end-of-buffer
  C-q d		end-of-line
  C-q f		ws-search
  C-q k		ws-to-block-end
  C-q l		ws-undo
  C-q p		ws-last-cursorp
  C-q r		beginning-of-buffer
  C-q C-u	keyboard-quit
  C-q w		ws-last-error
  C-q y		ws-kill-eol
  C-q DEL	ws-kill-bol
" nil))
(fset 'center-paragraph (make-byte-code (quote nil) " n !` `\"*" [forward-paragraph newline 1 end backward-paragraph center-region] 3 "\
Center each line in the paragraph at or after point.
See center-line for more info." nil))
(fset 'center-region (make-byte-code (quote (from to)) "	V 	\n)	\"bm?&  ! *" [from to tem narrow-to-region center-line forward-line 1] 3 "\
Center each line starting in the region.
See center-line for more info." "r"))
(fset 'center-line (make-byte-code (quote nil) "!   i!Z	Z\"\\j*" [nil line-length forward-line 0 delete-horizontal-space end-of-line left-margin / fill-column 2] 4 "\
Center the line point is on, within the width specified by `fill-column'.
This means adjusting the indentation to match
the distance between the end of the text and `fill-column'." nil))
(fset 'scroll-down-line (make-byte-code (quote nil) "!" [scroll-down 1] 2 "\
Scroll one line down." nil))
(fset 'scroll-up-line (make-byte-code (quote nil) "!" [scroll-up 1] 2 "\
Scroll one line up." nil))
(defvar ws-marker-0 nil "\
Position marker 0 in WordStar mode.")
(defvar ws-marker-1 nil "\
Position marker 1 in WordStar mode.")
(defvar ws-marker-2 nil "\
Position marker 2 in WordStar mode.")
(defvar ws-marker-3 nil "\
Position marker 3 in WordStar mode.")
(defvar ws-marker-4 nil "\
Position marker 4 in WordStar mode.")
(defvar ws-marker-5 nil "\
Position marker 5 in WordStar mode.")
(defvar ws-marker-6 nil "\
Position marker 6 in WordStar mode.")
(defvar ws-marker-7 nil "\
Position marker 7 in WordStar mode.")
(defvar ws-marker-8 nil "\
Position marker 8 in WordStar mode.")
(defvar ws-marker-9 nil "\
Position marker 9 in WordStar mode.")
(defvar ws-block-begin-marker nil "\
Beginning of \"Block\" in WordStar mode.")
(defvar ws-block-end-marker nil "\
End of \"Block\" in WordStar mode.")
(defvar ws-search-string nil "\
String of last search in WordStar mode.")
(defvar ws-search-direction t "\
Direction of last search in WordStar mode. T if forward, NIL if backward.")
(defvar ws-last-cursorposition nil "\
Position before last search etc. in WordStar mode.")
(defvar ws-last-errormessage nil "\
Last error message issued by a WordStar mode function.")
(fset 'ws-error (make-byte-code (quote (string)) "!" [string ws-last-errormessage error] 2 "\
Report error of a WordStar special function. Error message is saved
in ws-last-errormessage for recovery with C-q w."))
(fset 'ws-set-marker-0 (make-byte-code (quote nil) " !" [point-marker ws-marker-0 message "Marker 0 set"] 2 "\
In WordStar mode: Set marker 0 to current cursor position." nil))
(fset 'ws-set-marker-1 (make-byte-code (quote nil) " !" [point-marker ws-marker-1 message "Marker 1 set"] 2 "\
In WordStar mode: Set marker 1 to current cursor position." nil))
(fset 'ws-set-marker-2 (make-byte-code (quote nil) " !" [point-marker ws-marker-2 message "Marker 2 set"] 2 "\
In WordStar mode: Set marker 2 to current cursor position." nil))
(fset 'ws-set-marker-3 (make-byte-code (quote nil) " !" [point-marker ws-marker-3 message "Marker 3 set"] 2 "\
In WordStar mode: Set marker 3 to current cursor position." nil))
(fset 'ws-set-marker-4 (make-byte-code (quote nil) " !" [point-marker ws-marker-4 message "Marker 4 set"] 2 "\
In WordStar mode: Set marker 4 to current cursor position." nil))
(fset 'ws-set-marker-5 (make-byte-code (quote nil) " !" [point-marker ws-marker-5 message "Marker 5 set"] 2 "\
In WordStar mode: Set marker 5 to current cursor position." nil))
(fset 'ws-set-marker-6 (make-byte-code (quote nil) " !" [point-marker ws-marker-6 message "Marker 6 set"] 2 "\
In WordStar mode: Set marker 6 to current cursor position." nil))
(fset 'ws-set-marker-7 (make-byte-code (quote nil) " !" [point-marker ws-marker-7 message "Marker 7 set"] 2 "\
In WordStar mode: Set marker 7 to current cursor position." nil))
(fset 'ws-set-marker-8 (make-byte-code (quote nil) " !" [point-marker ws-marker-8 message "Marker 8 set"] 2 "\
In WordStar mode: Set marker 8 to current cursor position." nil))
(fset 'ws-set-marker-9 (make-byte-code (quote nil) " !" [point-marker ws-marker-9 message "Marker 9 set"] 2 "\
In WordStar mode: Set marker 9 to current cursor position." nil))
(fset 'ws-begin-block (make-byte-code (quote nil) " !" [point-marker ws-block-begin-marker message "Block begin marker set"] 2 "\
In WordStar mode: Set block begin marker to current cursor position." nil))
(fset 'ws-show-markers (make-byte-code (quote nil) " 	>  b!!# !!	5 	b!!9 !!)!" [ws-block-begin-marker ws-block-end-marker message "Block begin marker" sit-for 2 "Block begin marker not set" "Block end marker" "Block end marker not set" "" "Block markers not set"] 2 "\
In WordStar mode: Show block markers." nil))
(fset 'ws-indent-block (make-byte-code (quote nil) "!" [ws-error "Indent block not yet implemented"] 2 "\
In WordStar mode: Indent block (not yet implemeted)." nil))
(fset 'ws-end-block (make-byte-code (quote nil) " !" [point-marker ws-block-end-marker message "Block end marker set"] 2 "\
In WordStar mode: Set block end marker to current cursor position." nil))
(fset 'ws-print-block (make-byte-code (quote nil) "!" [message "Don't do this. Write block to a file (C-k w) and print this file."] 2 "\
In WordStar mode: Print block." nil))
(fset 'ws-mark-word (make-byte-code (quote nil) "!! !! )" [forward-word 1 sit-for ws-end-block -1 ws-begin-block] 2 "\
In WordStar mode: Mark current word as block." nil))
(fset 'ws-exdent-block (make-byte-code (quote nil) "!" [ws-error "This won't be done -- not yet implemented."] 2 "\
I don't know what this (C-k u) should do." nil))
(fset 'ws-move-block (make-byte-code (quote nil) "\" 	\" 	\"  b  b )+ Ȃ4 	3 ɂ4 !" [ws-block-begin-marker ws-block-end-marker kill-region yank region-beginning point-marker region-end ws-error "Block end marker not set" "Block begin marker not set" "Block markers not set"] 3 "\
In WordStar mode: Move block to current cursor position." nil))
(fset 'ws-write-block (make-byte-code (quote nil) " 	 !	#) ǂ% 	$ Ȃ% !" [ws-block-begin-marker ws-block-end-marker read-file-name "Write block to file: " filename write-region ws-error "Block end marker not set" "Block begin marker not set" "Block markers not set"] 4 "\
In WordStar mode: Write block to file." nil))
(fset 'ws-delete-block (make-byte-code (quote nil) " 	 	\"É ł% 	$ Ƃ% !" [ws-block-begin-marker ws-block-end-marker kill-region nil ws-error "Block end marker not set" "Block begin marker not set" "Block markers not set"] 3 "\
In WordStar mode: Delete block." nil))
(fset 'ws-find-marker-0 (make-byte-code (quote nil) "\n  b!" [ws-marker-0 point-marker ws-last-cursorposition ws-error "Marker 0 not set"] 2 "\
In WordStar mode: Go to marker 0." nil))
(fset 'ws-find-marker-1 (make-byte-code (quote nil) "\n  b!" [ws-marker-1 point-marker ws-last-cursorposition ws-error "Marker 1 not set"] 2 "\
In WordStar mode: Go to marker 1." nil))
(fset 'ws-find-marker-2 (make-byte-code (quote nil) "\n  b!" [ws-marker-2 point-marker ws-last-cursorposition ws-error "Marker 2 not set"] 2 "\
In WordStar mode: Go to marker 2." nil))
(fset 'ws-find-marker-3 (make-byte-code (quote nil) "\n  b!" [ws-marker-3 point-marker ws-last-cursorposition ws-error "Marker 3 not set"] 2 "\
In WordStar mode: Go to marker 3." nil))
(fset 'ws-find-marker-4 (make-byte-code (quote nil) "\n  b!" [ws-marker-4 point-marker ws-last-cursorposition ws-error "Marker 4 not set"] 2 "\
In WordStar mode: Go to marker 4." nil))
(fset 'ws-find-marker-5 (make-byte-code (quote nil) "\n  b!" [ws-marker-5 point-marker ws-last-cursorposition ws-error "Marker 5 not set"] 2 "\
In WordStar mode: Go to marker 5." nil))
(fset 'ws-find-marker-6 (make-byte-code (quote nil) "\n  b!" [ws-marker-6 point-marker ws-last-cursorposition ws-error "Marker 6 not set"] 2 "\
In WordStar mode: Go to marker 6." nil))
(fset 'ws-find-marker-7 (make-byte-code (quote nil) "\n  b!" [ws-marker-7 point-marker ws-last-cursorposition ws-error "Marker 7 not set"] 2 "\
In WordStar mode: Go to marker 7." nil))
(fset 'ws-find-marker-8 (make-byte-code (quote nil) "\n  b!" [ws-marker-8 point-marker ws-last-cursorposition ws-error "Marker 8 not set"] 2 "\
In WordStar mode: Go to marker 8." nil))
(fset 'ws-find-marker-9 (make-byte-code (quote nil) "\n  b!" [ws-marker-9 point-marker ws-last-cursorposition ws-error "Marker 9 not set"] 2 "\
In WordStar mode: Go to marker 9." nil))
(fset 'ws-goto-block-begin (make-byte-code (quote nil) "\n  b!" [ws-block-begin-marker point-marker ws-last-cursorposition ws-error "Block begin marker not set"] 2 "\
In WordStar mode: Go to block begin marker." nil))
(fset 'ws-search (make-byte-code (quote (string)) "! !\"\" \n !? !\"= \n !?  )" [message "Forward (f) or backward (b)" read-char direction equal upcase 70 string ws-search-string t ws-search-direction point-marker ws-last-cursorposition search-forward 66 nil search-backward keyboard-quit] 3 "\
In WordStar mode: Search string, remember string for repetition." "sSearch for: "))
(fset 'ws-goto-block-end (make-byte-code (quote nil) "\n  b!" [ws-block-end-marker point-marker ws-last-cursorposition ws-error "Block end marker not set"] 2 "\
In WordStar mode: Go to block end marker." nil))
(fset 'ws-undo (make-byte-code (quote nil) " !" [undo message "Repeat C-q l to undo more changes."] 2 "\
In WordStar mode: Undo and give message about undoing more changes." nil))
(fset 'ws-goto-last-cursorposition (make-byte-code (quote nil) "\n  b!" [ws-last-cursorposition point-marker ws-error "No last cursor position available."] 3 "\
In WordStar mode: " nil))
(fset 'ws-last-error (make-byte-code (quote nil) " !!" [ws-last-errormessage message "No WordStar error yet."] 2 "\
In WordStar mode: repeat last error message.
This will only work for errors raised by WordStar mode functions." nil))
(fset 'ws-kill-eol (make-byte-code (quote nil) "` `\")" [p end-of-line kill-region] 3 "\
In WordStar mode: Kill to end of line (like WordStar, not like Emacs)." nil))
(fset 'ws-kill-bol (make-byte-code (quote nil) "`!`\")" [p forward-line 0 kill-region] 3 "\
In WordStar mode: Kill to beginning of line 
(like WordStar, not like Emacs)." nil))
(fset 'kill-complete-line (make-byte-code (quote nil) "!m !`!`\")" [forward-line 0 error "End of buffer" beg 1 kill-region] 3 "\
Kill the complete line." nil))
(fset 'ws-repeat-search (make-byte-code (quote nil) " \n  \n!\n!!" [point-marker ws-last-cursorposition ws-search-string ws-search-direction search-forward search-backward ws-error "No search to repeat"] 2 "\
In WordStar mode: Repeat last search." nil))
(fset 'ws-query-replace (make-byte-code (quote (from to)) " \"" [from ws-search-string t ws-search-direction point-marker ws-last-cursorposition query-replace to] 3 "\
In WordStar mode: Search string, remember string for repetition." "sReplace: \nsWith: "))
(fset 'ws-copy-block (make-byte-code (quote nil) "\" 	\" 	\"  b  b )+ Ȃ4 	3 ɂ4 !" [ws-block-begin-marker ws-block-end-marker copy-region-as-kill yank region-beginning point-marker region-end ws-error "Block end marker not set" "Block begin marker not set" "Block markers not set"] 3 "\
In WordStar mode: Copy block to current cursor position." nil))
