IMD 1.17: 19/01/2010 21:02:27 4400p32 emacs v1.2 l1.1 11/6/86 2/4 Tektronix 4400P32 Emacs -- Version 1.2 Level 1.1 (UniFLEX BackupŬż0(OXPPP0(PQQQ 0(QRRR<L0(R <SSSl|0(S TTT  jTektronix 44042  !"#$%&'()*+,-./01234('&%$#"! Q  R0block-comm.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (begin-block-comment (beginning-of-line) (insert-string "\n/**************************************************************************\n") (setq right-margin 77) (setq left-margin 1) ) (end-block-comment (if (! (bolp)) (newline)) (insert-string "**************************************************************************/\n") ) (justify-block-comment (save-excursion (search-reverse "/*****") (end-of-line) (newline) (forward-character) (set-mark) (search-forward "******/") (beginning-of-line) (backward-character) (newline) (backward-character) (backward-character) (justify-paragraph) (search-reverse "/*****") (end-of-line) (delete-next-character) (search-forward "******/") (beginning-of-line) (delete-previous-character) ) ) ) (local-bind-to-key "begin-block-comment" "\e{") (local-bind-to-key "end-block-comment" "\e}") (local-bind-to-key "justify-block-comment" "\ej") (setq prefix-string "block comment") (novalue) RZ0\l$<=(Z9|T JZJfp`.O fp`pN^Nu  0block-comm.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"4defun6begin-block-comment$beginning-of-line insert-string`M /************************************************************************** @setq  right-marginZM, left-marginZend-block-comment\if,!bolpnewlinef`L**************************************************************************/ justify-block-commentsave-excursion<search-reverse/***** end-of-line$forward-characterset-mark<search-forward******/&backward-character2$justify-paragraph (delete-next-character ,H@,delete-previous-character@local-bind-to-key{"}"jF.  prefix-string  block commentnovalue5  60buff.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This code written at CMU, on or about Sun Jan 25 07:32:39 1981 ; by Doug Philips. ; ; Modified: ; 10-Sept-81 Jeffrey Mogul @ Stanford ; - now self-contained (no external functions needed) ; ; Mlisp code for doing a one-line buffer listing in the mini-buffer. ; If buffer list is longer than one line, it will print a line at a time ; and wait for a character to be input before moving on to the next line... ; Note: buffers that have been changed since they were last saved are ; prefixed with an Asterisk(*)... and buffers that have no file associated ; with them are prefixed with a hash-mark(#) and empty buffers are flagged ; with a AtSign(@). ; Note: "load"ing this file binds 'one-line-buffer-list' to ^X^B. ; Note: since buffers with no file associated with them are considered ; scratch buffers, the hashmark (#) never is used, and new buffers not ; yet associated with files are invisible. (defun (first-non-blank ; a useful function (beginning-of-line) (while (| (= (following-char) 32) ; space (= (following-char) 9)) ; tab (forward-character) ) (current-column) ; returned for convenience ) (skip-forward-matching char ; originally in electric-lisp (setq char (following-char)) (forward-character) (while (!= (following-char) char) (forward-character) ) (forward-character) ) (one-line-buffer-list msg puw empty (setq puw pop-up-windows) ; save value for later (setq pop-up-windows 0) ; re-use current window. (save-excursion  (list-buffers) ; generate buffer listings (temp-use-buffer "Buffer list") (beginning-of-file) (kill-to-end-of-line) ; for loops needed!!!! (kill-to-end-of-line) (kill-to-end-of-line) (kill-to-end-of-line) (beginning-of-file) ; Flag all the modified buffers... (while (! (eobp)) (beginning-of-line) ; back to top of buffer (while (! (= 15 (current-column))) (forward-character)) (if (= (following-char) 'M') (progn (delete-next-character) (forward-character) (insert-character '*'))) (next-line)) (beginning-of-file) ; eliminate Non-file(Scratch?) buffers... (while (! (error-occurred (search-forward " Scr "))) (beginning-of-line) (kill-to-end-of-line) (kill-to-end-of-line) ) (beginning-of-file) ; start at top again (while (! (eobp)) ; and wipe out the first - (setq empty (is-zero?)) ; (remember if buffer is empty) (beginning-of-line) (delete-white-space) ; - two columns of the buffer (delete-next-word) ; listing which are the size (delete-white-space) ; and type columns... (delete-next-word) (delete-white-space) (if empty (progn (beginning-of-line) (insert-string "@") (beginning-of-line) ) ) (next-line) ) (beginning-of-file) ; back at the beginning again ; Flag all the unnamed buffers... (while (! (error-occurred (search-forward "[none]"))) (beginning-of-line) (insert-character '#') (next-line) ) (beginning-of-file) ; back to the top! (while (! (eobp)) ; hack out all but buffer name (while (& (!= (following-char) ' '); space or (!= (following-char) 9)); tab! (forward-character) ) (kill-to-end-of-line) (next-line) (beginning-of-line) ) (end-of-file) (delete-previous-character) ; kill trailing crlf (beginning-of-file) ; go back and change (error-occurred (replace-string "\n" ", ")) ; newlines to /, /s (beginning-of-file) (set-mark) (end-of-file) ; suck in buffer contents (setq msg (concat "Buffers: " (region-to-string))) ) (setq pop-up-windows puw) ; restore to previous value (if (> (length msg) 76) ; attempt to get string on one (setq msg (substr msg 10 -9)); line ) (while (> (length msg) 76) ; multi-line mode (message (concat (substr msg 1 76) "$")); print nth line (setq msg (substr msg 77 10000000)); hack it off, and (get-tty-character) ; wait for more  ) (message msg) ; print out final line ) (is-zero? (first-non-blank) (if (= (following-char) '0') (progn (forward-character) (if (| (= (following-char) 32) (= (following-char) 9)) 1 0 ) ) 0 ) ) ) (bind-to-key "one-line-buffer-list" "\^X\^B") (novalue) print a line at a time ; and wait for a character to be input before moving on to the next line... ; Note: buffers that have been changed since they were last saved are ; prefixed with an Asterisk(*).    0buff.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo" defun first-non-blank$beginning-of-linewhilef|>="following-charZ Z $forward-character"current-columnskip-forward-matchingchar$setq"Z."!=,&pone-line-buffer-listmsgpuwempty.:"pop-up-windows Zjsave-excursion  list-buffers@temp-use-buffer Buffer list$beginning-of-file&kill-to-end-of-line,!eobp&Z`6ifZMrprogn(delete-next-character,insert-characterZ* next-line|d^error-occurred<search-forward Scr f:4 r ft(dis-zero?&delete-white-space$delete-next-wordR(FF4 insert-string@frLx,l& [none]"Z# l& (H<&.4Z  Z P end-of-file,delete-previous-characterRLreplace-string , set-mark@ftZconcat Buffers: $region-to-string^~<> lengthZL<:0substrZ Z rZLPmessage6>ZZL$(XZMZ$get-tty-character h"first-non-blankr\0>Z0PlhD6.Z Z ZZZ: bind-to-keynovalue ; listing which are the size (delete-white-space) ; and type columns... (delete-next-word) (delete-white-space) (if empty (progn (beginning-of-line) (insert-string "@") (beginning-of-line) ) ) (next-line) ) (beginning-of-file) ; back at the beginning again ; Flag all the unnamed buffers... (while (! (error-occurred (search-forward "[none]"))) (beginning-of-line) (insert-character '#') (next-li1  10buffer-edit.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl" ; Buffer edit: this package provides an alternative binding for ^X^B. It ; creates a buffer listing in which you can engage in an interactive dialog ; with Emacs about the fate of each buffer. You can mark them for saving, ; deleting, closing, unsaving, and the like; when you exit from buffer-edit ; mode all of the marks are processed and the various buffers meet their ; fate. ; This is a real win when you are trying to edit a large system with files ; all over the place. ; ; The listing is sorted so that the file buffers come first, and the cursor ; is left sitting on the line corresponding to the buffer in which you ; typed the ^X^B command. ; ; Brian K. Reid, Stanford University, August 1982 ; ; Modified by Jane Laursen, Tektronix, November 1984, to implement ; quit command and make file operations (close, reread, save) work. (declare-global &old-buffer) (defun (buffer-edit bufn keep line (setq &old-buffer (current-buffer-name)) (setq bufn &old-buffer) (list-buffers) (pop-to-buffer "Buffer list") (setq mode-line-format " Buffer edit. Commands: n p s c d r o m u e ? Exit: g or q") (end-of-file) (insert-string "x\n") (beginning-of-file) (ebuf-pretty-line) (next-line) (ebuf-pretty-line) (next-line) (set-mark) (while (& (! (looking-at "^x$")) (! (eobp))) (ebuf-pretty-line) (setq keep 1) (if (!= (ebuf-buffer-type) "File") (setq keep 2)) (if (= (ebuf-get-name) "Buffer list") (setq keep 0)) (if (!= keep 1) (progn (save-excursion (beginning-of-line) (set-mark) (end-of-line) (forward-character) (setq line (region-to-string)) (erase-region) (if (= keep 2) (progn (end-of-file) (insert-string line)) ) ) ) (next-line) ) ) (delete-next-character) (delete-next-character) (exchange-dot-and-mark) (error-occurred (re-search-forward ; this is so slimy... (concat "^.................." bufn)) (position-within-line) ) (novalue) ) ; Rewrite the listing format to make it nicer, and to leave room for flags (ebuf-pretty-line (if (= (ebuf-buffer-type) "File") (progn (ebuf-goto 42) (while (looking-at " ") (delete-next-character)) ) ) (ebuf-goto 16) (insert-string " ") (beginning-of-line) ) ; Return the string type of the buffer listed in the current line. (ebuf-buffer-type (save-excursion (ebuf-goto 9) (set-mark) (goto-character (+ (dot) 4)) (region-to-string) ) )  ; Return the name attached to the buffer listed in the current line ; This is pretty tricky because the buffer listing doesn't really delimit ; the buffer name properly. (ebuf-get-name (save-excursion (ebuf-goto 18) (set-mark) (end-of-line) (while (! (| (bolp) (= (preceding-char) ' '))) (backward-character)) ; move past file name (while (& (! (bolp))(= (preceding-char) ' ')) (backward-character)) ; move past blanks (while (! (| (bolp) (= (preceding-char) ' '))) (backward-character)) ; move past mode name (while (& (! (bolp)) (= (preceding-char) ' ')) (backward-character)) ; move to end of buffer name (region-to-string) ) ) ; return 1 if this is a real buffer and 0 if it is not (ebuf-is-real-buffer v (setq v (ebuf-buffer-type)) (& (!= v "Type") (!= v "----")) ) ; return the status character (D for deleted, etc.) that we put there (ebuf-status (ebuf-goto 16) (following-char) ) (ebuf-next-line (next-line) (while (! (| (ebuf-is-real-buffer) (eobp))) (next-line) ) (if (eobp) (previous-line)) (position-within-line) ) ; move up one line, but don't move into the column headings (ebuf-previous-line (previous-line) (beginning-of-line) (while (! (| (ebuf-is-real-buffer) (eobp))) (next-line) ) (position-within-line) ) ; enter a recursive edit on this buffer. (ebuf-edit (if (ebuf-is-real-buffer) (save-excursion (delete-other-windows) (pop-to-buffer (ebuf-get-name)) (message "Beginning recursive edit...") (sit-for 5) (recursive-edit) (pop-to-buffer "Buffer list") (position-within-line) ) (error-message "not a buffer") ) ) ; exit from this buffer-editing routine, and fill the screen with current buf (ebuf-exit where (if (ebuf-is-real-buffer) (progn (setq where (ebuf-get-name)) (message "Exiting to buffer " where " ...") (ebuf-cleanup) (pop-to-buffer where) (delete-other-windows) ) (error-message "not a buffer") ) ) (ebuf-quit (pop-to-buffer &old-buffer) (delete-other-windows) ) (ebuf-open where (if (ebuf-is-real-buffer) (progn (setq where (ebuf-get-name)) (pop-to-buffer &old-buffer) (delete-other-windows) (if (= where &old-buffer) (split-current-window) (pop-to-buffer where)) ) ) ) ) (defun ; mark current buffer for closing (write and then delete) (ebuf-close (ebuf-flag-column 16 'C')) ; mark the current buffer for deletion without writing (ebuf-delete (ebuf-flag-column 16 'D')) ; mark the current buffer for saving (ebuf-save (ebuf-flag-column 16 'S')) ; mark the current buffer for nonnsaving (ignore "buffer-is-modified" flag) (ebuf-mark (ebuf-flag-column 16 'N')) ; mark current buffer for reverting (reread file contents) (ebuf-revert (ebuf-flag-column 16 'R')) ; unmark the current buffer for all actions (ebuf-undelete (ebuf-flag-column 16 ' ') ) ; Put a flag character given as argument 2 into the column given as arg 1 (ebuf-flag-column (temp-use-buffer "Buffer list") (ebuf-goto (arg 1)) (delete-next-character) (insert-character (arg 2)) (position-within-line) ) (ebuf-goto (beginning-of-line) (goto-character (+ (dot) (arg 1))) ) ; put the cursor where we want it (position-within-line (ebuf-goto 17) ) (mouse-position-within-line (move-dot-to-mouse) ; from tek4404.ml (position-within-line) ) (mouse-ebuf-exit (mouse-ignore-button) ; from tek4404.ml (ebuf-exit) ) (mouse-ebuf-open (mouse-ignore-button) (ebuf-open) ) ) (defun (message-char (message (concat (arg 1) " Press to continue.")) (get-tty-character) ) (ebuf-cleanup bstat ebuf-name (pop-to-buffer "Buffer list") (beginning-of-file) (next-line) (next-line) (while (! (eobp)) (setq bstat (ebuf-status))  (setq ebuf-name (ebuf-get-name)) (if (= bstat 'D') ; delete without saving (progn (if (error-occurred (delete-buffer ebuf-name)) (message-char (concat ebuf-name " cannot be deleted."))) (beginning-of-line) (kill-to-end-of-line) (delete-next-character) ) (= bstat 'S') ; save buffer (progn (save-excursion (if (= (ebuf-buffer-type) "File") (progn (temp-use-buffer ebuf-name) (if (error-occurred (write-current-file) (ebuf-flag-column 14 ' ')) (message-char (concat ebuf-name " cannot be written to file."))) ) (progn (temp-use-buffer ebuf-name) (if (error-occurred (write-named-file (get-tty-file (concat "File for " ebuf-name ": "))) ) (message-char (concat ebuf-name "cannot be written to file."))) ) ) ) (next-line) ) (= bstat 'C') ; close--save then delete (progn (if (error-occurred (save-excursion (if (= (ebuf-buffer-type) "File") (progn (temp-use-buffer ebuf-name) (write-current-file)) ) ) ) (message-char (concat ebuf-name " cannot be written to file." " Closing fails.")) (progn (delete-buffer ebuf-name) (beginning-of-line) (kill-to-end-of-line) (delete-next-character) ) ) ) (= bstat 'N') ; nonsave: mark unmodified (progn  (save-excursion (temp-use-buffer ebuf-name) (setq buffer-is-modified 0) ) (ebuf-flag-column 14 ' ') (next-line) ) (= bstat 'R') ; revert buffer (progn (save-excursion (if (= (ebuf-buffer-type) "File") (progn (temp-use-buffer ebuf-name) (if (error-occurred (read-file (current-file-name)) (ebuf-flag-column 14 ' ')) (message-char (concat ebuf-name " cannot be reread."))) ) )) (next-line) ) (next-line) ) (beginning-of-line) ) ) (ebuf-beep (error-message "Cmds: Next, Prev, Save, Close, Delete, Reread, Mark, Unmark, Edit, Goto, Open, Quit, ?") ) ) (defun (ebuf-help (pop-to-buffer "Help") (erase-buffer) (insert-string " Move cursor to line for a buffer, then type a command:\n" " n,^N,sp -- move to next line\n" " p,^P,^H -- move to previous line\n" " s -- save buffer (write to associated file)\n" " c -- close buffer (write to file, then delete buffer)\n" " d -- delete buffer (erase the buffer, not affecting the file)\n" " r -- reread from file\n" " m -- mark as not modified (remove the 'needs saving' flag)\n" " u -- unmark (undo edit-buffer marks)\n" " e -- recursive edit this buffer\n" " g, mouse-middle -- exit with processing, goto selected buffer\n" " o -- open window to previous buffer & selected buffer, with no processing\n"  " q -- quit without processing, return to previous buffer\n" " mouse-left -- move to line containing mouse\n" ) (beginning-of-file) (sit-for 0) (next-window) ) ) (bind-to-key "buffer-edit" "\^X\^B") (progn loop (save-excursion (temp-use-buffer "Buffer list") (define-keymap "ebuf-keymap") (use-local-map "ebuf-keymap") (setq loop 0) (while (<= loop 127) (local-bind-to-key "ebuf-beep" loop) (setq loop (+ loop 1)) ) (setq loop '0') (while (<= loop '9') (local-bind-to-key "digit" loop) (setq loop (+ loop 1)) ) (local-bind-to-key "ebuf-help" "?") (local-bind-to-key "ebuf-delete" "d") (local-bind-to-key "ebuf-delete" "D") (local-bind-to-key "ebuf-delete" " ") (local-bind-to-key "ebuf-previous-line" "p") (local-bind-to-key "ebuf-previous-line" "P") (local-bind-to-key "ebuf-previous-line" "") (local-bind-to-key "ebuf-previous-line" "") (local-bind-to-key "ebuf-next-line" "n") (local-bind-to-key "ebuf-next-line" "N") (local-bind-to-key "ebuf-next-line" "") (local-bind-to-key "ebuf-next-line" " ") (local-bind-to-key "ebuf-close" "c") (local-bind-to-key "ebuf-close" "C") (local-bind-to-key "ebuf-edit" "e") (local-bind-to-key "ebuf-edit" "E") (local-bind-to-key "ebuf-undelete" "u") (local-bind-to-key "ebuf-undelete" "U") (local-bind-to-key "ebuf-exit" "g") (local-bind-to-key "ebuf-exit" "G") (local-bind-to-key "ebuf-save" "s") (local-bind-to-key "ebuf-save" "S") (local-bind-to-key "ebuf-mark" "m") (local-bind-to-key "ebuf-mark" "M") (local-bind-to-key "ebuf-revert" "r") (local-bind-to-key "ebuf-revert" "R") (local-bind-to-key "ebuf-quit" "q") (local-bind-to-key "ebuf-quit" "Q") (local-bind-to-key "ebuf-open" "o") (local-bind-to-key "ebuf-open" "O") (local-bind-to-key "ebuf-beep" "\^X\^B") (local-bind-to-key "redraw-display" "\^L") (local-bind-to-key "search-forward" "\^S") (local-bind-to-key "search-reverse" "\^R") (local-bind-to-key "argument-prefix" "\^U") (local-bind-to-key "previous-window" "\^Xp") (local-bind-to-key "previous-window" "\^XP") (local-bind-to-key "next-window" "\^Xn") (local-bind-to-key "next-window" "\^XN") (local-bind-to-key "delete-other-windows" "\^X1") (local-bind-to-key "next-page" "\^V") (local-bind-to-key "previous-page" "\ev") (local-bind-to-key "previous-page" "\eV") (local-bind-to-key "scroll-one-line-up" "\^Z") (local-bind-to-key "scroll-one-line-down" "\eZ") (local-bind-to-key "beginning-of-file" "\e<") (local-bind-to-key "end-of-file" "\e>") (local-bind-to-key "return-to-monitor" "\^_") (local-bind-to-key "exit-emacs" "\^C") (local-bind-to-key "mouse-position-within-line" "\ePA1D") ; left mouse button (local-bind-to-key "mouse-ebuf-exit" "\ePA2D") ; middle mouse button (local-bind-to-key "mouse-ebuf-open" "\ePA3D") ; right mouse button ) ) (message-char (concat ebuf-name " cannot be reread."))) ) )) (next-l'  '0buffer-edit.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"@declare-global &old-bufferdefun buffer-editbufnkeepline\setq &old-buffer&current-buffer-nameZ  list-buffers> pop-to-buffer Buffer listz8$mode-line-formatP= Buffer edit. Commands: n p s c d r o m u e ? Exit: g or q end-of-file6 insert-stringx $beginning-of-file$ebuf-pretty-line next-lineset-markwhilez&H!4 looking-at^x$eobp &FkeepZ|ifR!=$ebuf-buffer-typeFilevZT:=  ebuf-get-named"ZH4DZ(prognsave-excursion$beginning-of-line end-of-line$forward-character0r$region-to-string  erase-region2$Zf ~(delete-next-character(exchange-dot-and-markerror-occurredjre-search-forwardFconcat&^..................(position-within-linenovalueh>P$ ebuf-gotoZ*& xZ TzVt&~Z 6Tgoto-character2+dotZRPFJZb\|bolp0"preceding-charZ &backward-character2>&P ^fZ 2 &2 DR4dZ 2&  2Z Nebuf-is-real-buffervBFNn$$Type$----N ebuf-statusZ"following-char~ebuf-next-lineT$0,,  previous-line\ebuf-previous-line$ 0BZl| ebuf-edit` x(delete-other-windows Hmessage.Beginning recursive edit..."sit-forZ"recursive-edit& pop-to-bufferZ(position-within-line@ error-message  not a bufferr ebuf-exitwhere>if&ebuf-is-real-buffer>setq  ebuf-get-name^message&Exiting to buffer , ...  ebuf-cleanup D(delete-other-windows ^xF ebuf-quit$ &old-buffer ebuf-openL^nv&. x8L(v(split-current-window &NdefunR ebuf-close4ebuf-flag-columnZZC4 ebuf-deleteZZD2 ebuf-saveZZS2 ebuf-markNZZN4 ebuf-revertZZR6 ebuf-undeleteZZ (temp-use-buffer$argZ(delete-next-character2insert-characterZ(H<goto-characterLZZXmouse-position-within-line$move-dot-to-mousetNmouse-ebuf-exit&mouse-ignore-button.mouse-ebuf-open message-charF@$Z, Press to continue.$get-tty-characterbstat ebuf-name rX<eobp* ebuf-statusvFFZDj&,x& delete-buffer8p2 & cannot be deleted.&kill-to-end-of-linevZSJsave-excursionN0$ebuf-buffer-typeX 0BX&write-current-file2ZZ @::V. cannot be written to file.R lwrite-named-file^ get-tty-file> File for : @Z:v.cannot be written to file.ZCX~<60l"( lL<6T$ Closing fails.$ 6HZNhFV V4&buffer-is-modifiedZZZ NfZR @h @\h@ read-file$current-file-name(ZZ 802L& cannot be reread.d^~ ebuf-beeppjVCmds: Next, Prev, Save, Close, Delete, Reread, Mark, Unmark, Edit, Goto, Open, Quit, ? ebuf-helpHelp  erase-buffer insert-stringL9 Move cursor to line for a buffer, then type a command: 4! n,^N,sp -- move to next line 8% p,^P,^H -- move to previous line D1 s -- save buffer (write to associated file) N: c -- close buffer (write to file, then delete buffer) VB d -- delete buffer (erase the buffer, not affecting the file) . r -- reread from file T@ m -- mark as not modified (remove the 'needs saving' flag) <) u -- unmark (undo edit-buffer marks) 8$ e -- recursive edit this buffer VB g, mouse-middle -- exit with processing, goto selected buffer bN o -- open window to previous buffer & selected buffer, with no processing P< q -- quit without processing, return to previous buffer D0 mouse-left -- move to line containing mouse pZ next-windowR bind-to-key buffer-edit 4loop n n> define-keymap ebuf-keymap& use-local-mappZz|$<=FZ0local-bind-to-key 8ZZ0^vZ9$digit ~Z B? "d D  p P  br<B"ebuf-next-linen N V c C te TE 4u U g G s vS tm ThM 4zr ZR Nq .Q To 4Ot*<b"redraw-display <&"search-forward<"search-reverse<"argument-prefix>r"previous-windowp\local-bind-to-key"previous-windowP: next-windown"nN"L16* next-page<  previous-pagev"V@&scroll-one-line-upDV(scroll-one-line-downZ@$beginning-of-file<: end-of-file>>$return-to-monitor8Z exit-emacsL".mouse-position-within-linePA1D$PA2D@"mouse-ebuf-openPA3DZN  O0c-mode.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (begin-C-comment (move-to-comment-column) (setq left-margin (current-column)) (setq right-margin 78) (setq prefix-string " ") (insert-string "/* ") ) ) (defun (end-C-comment (setq right-margin 1000) (if (!= (preceding-char) ' ') (insert-string " ")) (insert-string "*/") ) ) (defun (c-mode (setq right-margin 1000) (setq prefix-string " ") (setq mode-string "C") (remove-all-local-bindings) (local-bind-to-key "begin-C-comment" "`") (local-bind-to-key "end-C-comment" "'") (local-bind-to-key "indent-C-procedure" "j") (novalue) ) ) hM 4zr ZR Nq .Q To 4Ot*<b"redraw-display <&"search-forward<"search-reverse<"  0c-mode.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"\defunDbegin-C-comment*move-to-comment-columnXsetq left-margin"current-column.  right-marginZN<~  prefix-string 6 insert-string/*  end-C-comment>Zpif@!="preceding-charZ > $*/hbc-mode&~Z8 mode-stringC,remove-all-local-bindings@local-bind-to-key,`"T'B&indent-C-procedurejnovaluesearch-forward<"search-reverse<"5  60 capword.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; ; This package provides reasonable functions to mess with the case of the ; current word. All of them operate on the word that contains or immediately ; precedes the cursor, and move the cursor to the next word when they are ; done. Normally they are bound to ESC-U, ESC-L, and ESC-C. ; ; Brian Reid March 82 ; (defun (upper-case-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-upper) (forward-word)) (case-word-upper)) (forward-word) (backward-word)) (lower-case-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-lower) (forward-word)) (case-word-lower)) (forward-word) (backward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case-word-capitalize)) (forward-word) (backward-word)) ) previous-windowp\local-bind-to-key"previous-windowP: next-windown"nN"L16* next-page<  previous-pagev"V@&scroll-one-line-up    0 capword.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo" defunhupper-case-wordcprb4setqdot  backward-word  forward-wordtif >(8Lprogn^"case-word-upperVJ$lower-case-wordX"Td:0"case-word-lowerbcapitalize-word 6^P`@n(case-word-capitalizeer)) (forward-word) (backward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case-g  h0 case-char.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (case-character-invert c (prefix-argument-loop (if (! (eobp)) (progn (setq c (following-char)) (delete-next-character) (insert-character (if (& (<= 'a' c) (<= c 'z')) (- c 040) (& (<= 'A' c) (<= c 'Z')) (+ c 040) c))))) (novalue))) (bind-to-key "case-character-invert" '^^') rVJ$lower-case-wordX"Td:0s  t0 case-char.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Fdefun.case-character-invertcprefix-argument-loopif,!eobpnprogn@setqV"following-char(delete-next-characterinsert-characterL&$<=ZaZz"-|Z .ZAZNZZ"+,Z novalue, bind-to-keyZ 6^P`@n(case-word-capitalizeer)) (forward-word) (backward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case-  0!centre-line.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; function to centre the current line (defun (centre-line width (save-excursion (beginning-of-line) (delete-white-space) (end-of-line) (delete-white-space) (setq width (current-column)) (beginning-of-line) (to-col (/ (- (+ left-margin (if (<= right-margin 200) right-margin (<= default-right-margin 200) default-right-margin 80) ) width) 2)) ) ) ) "-|Z .ZAZNE  F0!centre-line.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Ddefun, centre-linewidthsave-excursion$beginning-of-line&delete-white-space end-of-line@setqD"current-columnV to-col/-+ left-marginif><=  right-marginZ6(default-right-marginZZPZe, bind-to-keyZ 6^P`@n(case-word-capitalizeer)) (forward-word) (backward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case-  0!cheap.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; cheap-shell opens a window that filters each command line through ; a pipe to the operating system. NOT effective for changing directory ; (use mlisp 'chd' function in pwd.ml). Handy for getting the results ; of a shell command into a window. (defun (cheap-shell (pop-to-buffer "*cheap-shell*") (local-bind-to-key "cheap-cr" "\n") (erase-buffer) (insert-string "emacs++ ") (novalue) ) ) (defun (cheap-cr command (beginning-of-line) (if (looking-at "emacs++ ") (progn (search-forward " ") (set-mark) (end-of-line) (setq command (region-to-string)) (if (eobp) (progn (newline) (end-of-file) (set-mark) (filter-region command) (insert-string "emacs++ ") ))) ))) rward-word) (backward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case-#  $0"cheap.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"@defun( cheap-shell@ pop-to-buffer  *cheap-shell*Tlocal-bind-to-keycheap-cr  erase-buffer< insert-stringemacs++ novalueXcommand$beginning-of-lineif$ looking-atP^progn6search-forward set-mark end-of-lineBsetq$region-to-stringeobpvnewline end-of-file,& filter-region@ ckward-word)) (capitalize-word cp rb (setq cp (dot)) (backward-word) (forward-word) (setq rb (dot)) (if (> cp rb) (progn (forward-word) (backward-word) (case-word-capitalize) (forward-word)) (case- ]   ^0"comments.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (box-region longest len (save-excursion (narrow-region) (beginning-of-file) (while (& (eolp) (! (eobp))) (delete-next-character)) (insert-string "\n") (setq longest 0) (error-occurred (while (! (eobp)) (end-of-line) (if (> (setq len (current-column)) longest) (setq longest len)) (forward-character))) (end-of-file) (while (& (! (bobp)) (= (preceding-char) '\n')) (delete-previous-character)) (insert-string "\n\n") (beginning-of-file) (insert-string "/*") (setq len 0) (while (< len longest) (insert-string "*") (setq len (+ len 1))) (insert-string "*\\\n") (error-occurred (while (! (eobp)) (insert-string "* ") (end-of-line) (to-col (+ longest 3)) (insert-string " *") (forward-character))) (end-of-file) (insert-string "\\*") (setq len 0) (while (< len longest)  (insert-string "*") (setq len (+ len 1))) (insert-string "*/\n") (widen-region) ))) (defun (debox-region (save-excursion (save-restriction (narrow-region) (beginning-of-file) (error-occurred (re-replace-string "/\\*[\\*]*" "")) (if (eolp) (delete-next-character)) (error-occurred (re-replace-string "[\\*]*\\*/[\n]*" "")) (error-occurred (re-replace-string "^\\* " "")) (error-occurred (re-replace-string "[ \t]*\\*$" "")))))) (defun (edit-block-comment (save-window-excursion esc-j mode (end-of-line) (re-search-reverse "^/\\*") (set-mark) (forward-character)(forward-character) (search-forward "*/") (if (eolp) (forward-character)) (debox-region) (setq esc-j (local-binding-of "\ej")) (local-bind-to-key "justify-paragraph" "\ej") (setq left-margin 0) (setq right-margin 75) (setq prefix-string "") (narrow-region) (message "Type ^C to resume editing") (setq mode mode-string) (setq mode-string "Comment edit") (save-excursion (recursive-edit)) (setq mode-string mode) (local-bind-to-key esc-j "\ej") (beginning-of-file) (set-mark) (end-of-file) (widen-region) (box-region) ))) gL9 Move cursor to line for a buffer, then type a command: 4! n,^N,sp -- move to next line 8% p,^P,^H -- )   *0#comments.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"rdefunZ box-regionlongestlen save-excursion  narrow-region$beginning-of-filewhileX&eolp,!eobp(delete-next-character4 insert-string &setqZerror-occurred .< end-of-linepifH>.b"current-column.$forward-character end-of-fileb Fbobp>="preceding-charZ ,delete-previous-character :/*Zn( <r*.f"+LZR*\  * .to-colrZ *\*pZDV6 ^ 8,Z2*/  widen-regionRL debox-region,&save-restrictionZTre-replace-string/\*[\*]* 2,  [\*]*\*/[ ]**V$f^\* .,(<[ ]*\*$Zd@^edit-block-comment8save-window-excursionesc-jmode<re-search-reverse^/\*set-mark8search-forward*/* F:local-binding-ofjNlocal-bind-to-key$justify-paragraph, left-marginZ.  right-marginZK,  prefix-stringpFmessage,Type ^C to resume editing*4 mode-string,   Comment edit("recursive-editBT2~: s -- save buffer (write to associated file) N: c -- close buffer (write to file, then delete buffer) VB d -- delete buffer (erase the buffer, not affecting the file) . r -- reread from file T@ m -- mark as not modified (remove the 'needs saving' flag) <) u -- unmark (undo edit-buffer marks) 8$ e -- recursive edit this buffer V  0#compile.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This package provides a replacement for the standard ^X^E compilation ; package. It operates pretty much the same as the old except that the ; process control facilities are used. Consequently, while a compilation is ; going on you can go off and do other things and (a major win) you can ; interrupt the compilation partway through. (declare-global compilation-may-be-active last-command) (setq last-command "") (defun (new-compile-it command (if prefix-argument-provided (progn (setq command (arg 1 ": compile-it using command: ")) (if (= command "") (if (= last-command "") (error-message "No previous command") (setq command last-command)) (setq last-command command))) (setq command "update")) (setq compilation-may-be-active 1) (save-excursion (pop-to-buffer "Error-log") (setq needs-checkpointing 0) (erase-buffer) (write-modified-files) (if (>= (process-status "Error-log") 0) (kill-process "Error-log")) (start-process command "Error-log") (setq mode-line-format (concat " Executing: " command " (^X^K to kill) %M")) (novalue) ) ) (kill-compilation (save-excursion (temp-use-buffer "Error-log") (setq mode-line-format " Dead! %M") (kill-process "Error-log") (setq compilation-may-be-active 0) (setq buffer-is-modified 0) (novalue) ) ) ) (bind-to-key "new-compile-it" "\^x\^E") (bind-to-key "kill-compilation" "\^x\^K") (novalue) Tre-replace-string  0#compile.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"ndeclare-global,compilation-may-be-active  last-command2setqdefunnew-compile-itcommandif,prefix-argument-providedprognZ$NargZ0: compile-it using command: P =p*xF error-message&No previous commandF4&"updateZ"save-excursion< pop-to-buffer Error-log4&needs-checkpointingZ  erase-buffer(write-modified-filesrF>=(process-status.Z& kill-process, start-processp$mode-line-formatfconcat  Executing: x& (^X^K to kill) %Mnovaluekill-compilation(temp-use-buffer.t" Dead! %M :Z4&&buffer-is-modifiedZ: bind-to-key" -replace-stringN  O0$debug.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; debugging routines (defun (debug (setq compile-mlisp-debugging-hooks (! compile-mlisp-debugging-hooks)) (message "Packages that you load from now on " (if compile-mlisp-debugging-hooks "will" "won't") " be debuggable"))) (defun (show-error fn p (setq fn (break-file-name)) (setq p (break-character-position)) (if (= fn "") (message "The last error wasn't from an MLisp function.") (progn (visit-file fn) (widen-region) (goto-character p)))  (novalue))) (defun (single-step-handler fn p c ldot ret continue (setq ldot (dot)) (save-excursion (setq fn (break-file-name)) (setq p (break-character-position)) (visit-file fn) (goto-character p) (setq continue 1) (while continue (message "Single stepping... space->continue, s->skip, l->look, r->recurse, p->print") (setq c (get-tty-character)) (if (= c ' ') (progn (setq ret 1) (setq continue 0)) (= c 's') (progn (setq ret 0) (setq continue 0)) (= c 'l') (save-excursion (pop-to-buffer ldot) (goto-character ldot) (message "Dot is here.") (sit-for 10)) (= c 'r') (save-excursion (recursive-edit)) (= c 'p') (error-occurred v (setq v (get-tty-variable ": print ")) (message v " = " (execute-mlisp-line v)) (sit-for 10)) (= c '\^G') (error-message "Giving up") (progn (message "Huh?") (sit-for 10)) ) ) ) (if ret (&step-through-arg-1) (arg 1)) )) (bind-to-key "show-error" "\es") [\*]*\*/[ ]**V$f^\* .,(<[ ]*\*$Zd@^edit-block-comment8save-window-excursionesc-jmode<re-search-reverse^/\*set-mark8search-forward*/* Q  R0$debug.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Pdefun8debugbsetq0compile-mlisp-debugging-hooks!message6#Packages that you load from now on LifTwillwon't" be debuggable show-errorfnp."break-file-name8h,break-character-position.=ZF^@-The last error wasn't from an MLisp function.progn$ visit-file  widen-region(goto-characternovaluesingle-step-handler0@cldotretcontinue"dotsave-excursion>|, X bbZwhile<d2^KSingle stepping... space->continue, s->skip, l->look, r->recurse, p->print0l$get-tty-characterTZ .pfZhZZs..$Z&ZZlB& pop-to-buffer &  Dot is here."sit-forZ <Zr("recursive-editZperror-occurredvL@get-tty-variable: print N = ,execute-mlisp-line\Z Z< error-message Giving up2Huh?@Z P &&step-through-arg-1argZ: bind-to-key&slocal-bind-to-key$justify-paragraph, left-marginZ.  right-marginZK,  prefix-stringpFmessage,Type ^C to resume editing*4 mode-string,   Comment edit("recursive-editBT  0%des-word.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl" (extend-database-search-list "subr-names" "/emacs/databases/quickinfo") (error-occurred (extend-database-search-list "subr-names" (concat (getenv "HOME") "/.subr-names"))) ; describe-word-in-buffer takes the word nearest the cursor and looks it up ; in a database, then prints the information found. (defun (describe-word-in-buffer subr-name (if (> prefix-argument 1) (progn (error-occurred (forward-character)) (backward-word) (set-mark) (forward-word) (edit-description (region-to-string))) (progn (save-excursion (error-occurred (forward-character)) (backward-word) (set-mark) (forward-word) (setq subr-name (region-to-string)) (temp-use-buffer "subr-help") (erase-buffer) (if (error-occurred (fetch-database-entry "subr-names" subr-name)) (progn (delete-buffer "subr-help") (error-message (concat "No help for " subr-name))) (progn (beginning-of-file) (set-mark) (end-of-line) (message (region-to-string)) (delete-buffer "subr-help") )) ) ) ) (novalue) ) (edit-description edit-name (setq edit-name (arg 1 ": edit-description (of routine) ")) (pop-to-buffer "Edit description") (erase-buffer) (if (error-occurred (fetch-database-entry "subr-names" edit-name)) (message "New entry.")) (setq mode-string (concat " Editing database entry for " edit-name)) (save-excursion (recursive-edit)) (put-database-entry "subr-names" edit-name) (delete-buffer "Edit description") (novalue) ) ) <Zr("recursive-editZperror-occurredvL@get-tty-variable: print N = ,execute-mlisp-line\Z Z< error-message Giving up2Huh?@Z P &&step-through-arg-1  0%des-word.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"zextend-database-search-list subr-names./emacs/databases/quickinfoerror-occurredxhlconcat2getenvHOME  /.subr-namesdefundescribe-word-in-buffer subr-name4if>>"prefix-argumentZprogn*$forward-character  backward-wordset-mark  forward-wordHedit-description$region-to-stringsave-excursion ,F\$setqP|>temp-use-buffer subr-help  erase-buffer2:4fetch-database-entryx& delete-bufferbL error-message,  No help for 4z$beginning-of-file end-of-line message $novalue edit-name^RargZ4 : edit-description (of routine) D pop-to-buffer$Edit descriptionB($ New entry.`* mode-string<0  Editing database entry for ("recursive-edit2put-database-entryJ 8vL@get-tty-variable: print N = ,execute-mlisp-line\Z Z< error-message Giving up2Huh?@Z P &&step-through-arg-1!  !0&dired.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This is an attempt at a dired package. ; The tek4404 version supports moving to file names with the mouse (left ; button), implements &dired-read-file for reading files into emacs buffers, ; and adds patches to make documented functions work. Jane Laursen, ; Tektronix, December 1984. (declare-global Dired-keymap-defined Dired-directory &dired-return-buffer) (setq Dired-keymap-defined 0) (setq Dired-directory (working-directory)) (defun (dired directory (setq &dired-return-buffer (current-buffer-name)) (setq directory (arg 1 (concat ": dired on directory? [" Dired-directory "] "))) (if (= directory "") (setq directory Dired-directory)) (if (& (= "/" (substr directory -1 1)) (> (length directory) 1)) (setq directory (substr directory 1 -1))) (setq Dired-directory directory) (switch-to-buffer "dired") (use-local-map "&dired-keymap") (setq mode-line-format (concat " Editing directory: " directory " %M %[%p%] ? for options")) (erase-buffer) (set-mark) (message (concat "Getting contents of " directory)) (sit-for 0) (fast-filter-region (concat "/bin/dir +b " (expand-file-name directory))) (beginning-of-file) (if (looking-at "Directory") (progn (kill-to-end-of-line) (kill-to-end-of-line) (beginning-of-file) (re-replace-string "^\\([^ ]*\\) " " \\1") (beginning-of-file) ) (progn (end-of-file) (error-message (region-to-string)) ) ) (&dired-summary) (novalue) ) ) (defun (&dired-Mark-file-deleted (if (= 0 (buffer-size)) (error-message "dired already done!") (progn (beginning-of-line) (goto-character (+ (dot) 40)) ; LJM (if (looking-at " d") (progn (beginning-of-line) (error-message "Can't delete a directory with dired"))) (beginning-of-line) ; LJM (delete-next-character) (insert-string "D") (next-line) (beginning-of-line) ) ) ) (&dired-summary (message " q-uit, d-elete, u-ndelete, e-dit, r-ead, h-ide, n-ext, p-revious") ) (&dired-UnMark-file-deleted (if (= 0 (buffer-size)) (error-message "dired already done!") (progn (beginning-of-line) (delete-next-character) (insert-string " ") (next-line) (beginning-of-line) ) ) ) (&dired-backup-unmark (if (= 0 (buffer-size)) (error-message "dired already done!") (! (bobp)) (previous-line)) (beginning-of-line) (delete-next-character) (insert-string " ") (beginning-of-line) ) ) (defun (&dired-examine (save-excursion (error-occurred (visit-file (&dired-get-fname)) (message "Type ^C to return to DIRED") (recursive-edit) (delete-other-windows) ) ) ) ) (defun (&dired-read-file fname (save-excursion (if (error-occurred (setq fname (&dired-get-fname)) (visit-file fname)) (message-char (concat "Unable to ge t " fname)) (message (concat fname " read to emacs buffer")) ) ) (delete-other-windows) ) ) (defun (&dired-hide (beginning-of-line) (kill-to-end-of-line) (kill-to-end-of-line) ) (&dired-get-fname (save-excursion (beginning-of-line) (goto-character (+ (dot) 2)) ; LJM (set-mark) ; LJM (goto-character (+ (dot) 25)) (search-forward " ") ; LJM (goto-character (- (dot) 1)) ; LJM ; LJM (end-of-line) (concat Dired-directory "/" (region-to-string)) ) ) (&dired-done-options (message "d-do deletions; q-query each deletion; e-exit,do not delete; r-return to dired") ) (&dired-exit-without-deleting (message "Really exit without deleting? [y/n]") (setq ans (get-tty-character)) (if (| (= ans 'y') (= ans 'Y')) (exit-dired) (&dired-done-options)) ) (&dired-query-deletions (while (! (eobp)) (if (= (following-char) 'D') (progn thisfile ans (setq thisfile (&dired-get-fname))  (message (concat "Delete " thisfile "? [y/n]")) (setq ans (get-tty-character)) (if (| (= ans 'y') (= ans 'Y')) (if (unlink-file thisfile) (message-char (concat "Couldn't delete " thisfile)) ) ) ) ) (next-line) ) (exit-dired) ) (&dired-do-deletions (while (! (eobp)) (if (= (following-char) 'D') (progn thisfile (setq thisfile (&dired-get-fname)) (if (unlink-file thisfile) (message-char (concat "Couldn't delete " thisfile)) ) ) ) (next-line) ) (exit-dired) ) (&dired-return (erase-buffer "dired deletions") (switch-to-buffer "dired") (beginning-of-file) ) (&dired-done (beginning-of-file) (set-mark) (end-of-file) (copy-region-to-buffer "dired deletions") (switch-to-buffer "dired deletions") (use-local-map "&dired-deletions-keymap") (beginning-of-file) (re-replace-string "^ .*\n" "") (if (!= 0 (buffer-size)) (&dired-done-options) (exit-dired)) ) (exit-dired (error-occurred (delete-buffer "dired deletions")) (delete-buffer "dired") (switch-to-buffer &dired-return-buffer) (message "Dired exited") ) (message-char (message (concat (arg 1) " Press to continue.")) (get-tty-character) ) (mouse-go-to-line (move-dot-to-mouse) (beginning-of-line) ) ) (progn loop (save-excursion (temp-use-buffer "dired") (define-keymap "&dired-keymap") (use-local-map "&dired-keymap") (setq loop 0) (while (<= loop 127) (local-bind-to-key "&dired-summary" loop) (setq loop (+ loop 1)) ) (setq loop '0') (while (<= loop '9') (local-bind-to-key "digit" loop) (setq loop (+ loop 1)) ) (local-bind-to-key "&dired-Mark-file-deleted" "d") (local-bind-to-key "&dired-Mark-file-deleted" "D") (local-bind-to-key "&dired-Mark-file-deleted" "") (local-bind-to-key "&dired-backup-unmark" "\0177") (local-bind-to-key "previous-line" "\^H") (local-bind-to-key "previous-line" "p") (local-bind-to-key "previous-line" "P") (local-bind-to-key "previous-line" "\^P") (local-bind-to-key "next-line" "n") (local-bind-to-key "next-line" "N") (local-bind-to-key "next-line" "\^N") (local-bind-to-key "next-line" 13) (local-bind-to-key "next-line" 10) (local-bind-to-key "next-line" " ") (local-bind-to-key "argument-prefix" "\^U") (local-bind-to-key "previous-window" "\^Xp") (local-bind-to-key "previous-window" "\^XP") (local-bind-to-key "next-window" "\^Xn") (local-bind-to-key "next-window" "\^XN") (local-bind-to-key "delete-window" "\^Xd") (local-bind-to-key "delete-window" "\^XD") (local-bind-to-key "delete-other-windows" "\^X1") (local-bind-to-key "&dired-examine" "\^X\^V") (local-bind-to-key "next-page" "\^V") (local-bind-to-key "previous-page" "\ev") (local-bind-to-key "previous-page" "\eV") (local-bind-to-key "beginning-of-file" " \e<") (local-bind-to-key "end-of-file" "\e>") (local-bind-to-key "&dired-UnMark-file-deleted" "u") (local-bind-to-key "&dired-UnMark-file-deleted" "U") (local-bind-to-key "exit-dired" "\^C") (local-bind-to-key "&dired-done" "q") (local-bind-to-key "&dired-done" "Q") (local-bind-to-key "&dired-examine" "e") (local-bind-to-key "&dired-examine" "E") (local-bind-to-key "&dired-read-file" "R") (local-bind-to-key "&dired-read-file" "r") (local-bind-to-key "&dired-hide" "h") (local-bind-to-key "&dired-hide" "H") (local-bind-to-key "mouse-go-to-line" "\ePA1D") (temp-use-buffer "dired deletions") (define-keymap "&dired-deletions-keymap") (use-local-map "&dired-deletions-keymap") (setq loop 0) (while (<= loop 127) (local-bind-to-key "&dired-done-options" loop) (setq loop (+ loop 1)) ) (setq loop '0') (while (<= loop '9') (local-bind-to-key "digit" loop) (setq loop (+ loop 1))  ) (local-bind-to-key "&dired-exit-without-deleting" "E") (local-bind-to-key "&dired-exit-without-deleting" "e") (local-bind-to-key "&dired-query-deletions" "Q") (local-bind-to-key "&dired-query-deletions" "q") (local-bind-to-key "&dired-do-deletions" "D") (local-bind-to-key "&dired-do-deletions" "d") (local-bind-to-key "&dired-return" "R") (local-bind-to-key "&dired-return" "r") ) ) )) (if (unlink-file thisfile) (message-char (concat }  ~0'dired.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"declare-global(Dired-keymap-defined"Dired-directory(&dired-return-buffer&setqzZ0$working-directorydefundired directory2b4&current-buffer-name0~argZ`concat*: dired on directory? [x] Vif.=b &J/0substrZZ<> lengthDZ(0$ZZ8*switch-to-buffer@ use-local-map  &dired-keymap $mode-line-formatn* Editing directory: 88$ %M %[%p%] ? for options  erase-bufferset-markNmessage4(Getting contents of v"sit-forZvfast-filter-regionP  /bin/dir +b *expand-file-name$beginning-of-fileR: looking-at Directoryprogn&kill-to-end-of-line\Zre-replace-string ^\([^ ]*\)  \1hZ end-of-fileD error-message$region-to-string"&dired-summarynovalue&dired-Mark-file-deleted,Z buffer-size, &dired already done!l&$beginning-of-lineTgoto-character2+dot Z(jh dHd<H6#Can't delete a directory with dired"(delete-next-character4 insert-stringD next-line`ZjTA q-uit, d-elete, u-ndelete, e-dit, r-ead, h-ide, n-ext, p-revious&dired-UnMark-file-deleted^tZ 8 &dired-backup-unmarkrZ& Z>,!bobp  previous-line 8,V&&dired-examinesave-excursionerror-occurredB visit-file$&dired-get-fname4.Type ^C to return to DIRED"recursive-edit(delete-other-windows*&dired-read-filefname$ N message-char.@"Unable to get t:4 b( read to emacs bufferB*0 &dired-hide,Z"(search-forwardv(b"-~Z&dired-done-optionshbNd-do deletions; q-query each deletion; e-exit,do not delete; r-return to dired&dired-exit-without-deleting<6#Really exit without deleting? [y/n]@ ans$get-tty-characterf(<|$ZyZY exit-diredj&dired-query-deletionswhileeobp\b0r"following-charZD&thisfile(F`@Delete ? [y/n]NHX.v*ZyZY`f$ unlink-file 60$Couldn't delete &dired-do-deletionsz@  RbdZDH`>t* (\@D@xZ &dired-return(f"dired deletions <T &dired-done0(8.copy-region-to-bufferx l0*&dired-deletions-keymap$\^ .* l66$!=Z^$p,& delete-buffer  6&$  Dired exitedRF@$Z, Press to continue.Nmouse-go-to-line$move-dot-to-mousevloopX(temp-use-buffer& define-keymap Zz$<=\Z0local-bind-to-key$  ZZ0^<vZ9$digit 4hZ Bxd"X F"7 ` @p  P n NXn .8N Z Z <"argument-prefix>x"previous-windowp":P: next-windown" N<  delete-windowd"D"^21"<6 next-page<  previous-pagev"V"<"d> Bu "U J q Q xe XE bdR BDr "$h H$PA1D & BV 0JlZL"\Zl8 ,`Z ~Z0LdZ9 J >2Z4\"*"BnH\6t:4 b( read to emacs bufferB*0 &dired-hide,Z"(search-forwardv(b"-~Z&dired-done-optionshbNd-do deletions; q-query each deletion; e-exid  d0)elec-c.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Elec-c is a set of routines to aid C program development. ; Written by Duane T. Williams ; ; EXECUTION ; ; Once the package is loaded, local key bindings and local abbreviations ; are initialized within a buffer by executing the function elec-c-mode. ; The most convenient way to do this is by including in your .emacs_pro ; file the commands: ; (autoload "elec-c-mode" "elec-c.ml") ; (auto-execute "elec-c-mode" "*.c") ; ; DESCRIPTION ; ; The main functions provided by this package are: ; ; 1. Expansion of C control constructs: if, else, while, do, switch, ; and for. The user types the keyword immediately followed by ; a space, which causes the construct to be expanded, and, in ; the typical case, the user is placed in recursive edit mode to ; fill in () or {}. When the filling in is complete, the user ; types ^C to exit the recursive edit. This should be done while ; the cursor is still within the () or {}. ; ; NOTE: the user is also placed in recursive edit mode to ; insert the constant expression following 'case' in a switch ; statement and should use ^C to move from the case constant ; expression to the body of the case. ; ; For example, when the user types a space following "if" the ; following appears in the buffer: ; ; if () { ; ; } ; ; and the cursor is between the parentheses. The user then ; enters some boolean expression within the parens, followed by ; ^C. The ^C will exit the recursive edit and cause the cursor ; to move to the body of the if construct. The user then enters ; additional statements, the last of which should be followed by ^C. ; The cursor will be left on a new line immediately below the ; right brace, "}". If the user was on a blank line when he typed ; ^C, that line will have been deleted. ; ; 2. Various characters in C almost always come in pairs: {}, (), []. ; When the user types the first, he gets the second ; as well, with special formatting done for {}. You can always ; quote (with ^Q) the left "paren" to avoid the expansion. ; ; 3. Semico lon and linefeed try to put the user where it is likely he ; wants to be. The semicolon wants to go at the end of the line! ; ; 4. The slash and asterisk are bound to special functions that try to ; do the right thing as far as comments are concerned. When you ; type /* you will be put into commment mode, in which the control ; constructs are not expanded, and when you subsequently type */ ; comment mode is terminated. ; ; Comments are automatically justified. You get BLOCKED comments ; when you type the &elec-c-border-char (the default is '-') after ; the opening "/*" of a comment. To close a blocked comment, type ; the &elec-c-border-char immediately after a subsequent '*', ; presumably at the left end of the block. ; ; 5. Default settings of global variables: ; &elec-c-indent-width 4 ; indentation of expressions ; &elec-c-right-margin 75 ; fold comments here ; &elec-c-border-char '-' ; char for block comments ; &elec-c-border-size 75 ; border width ; &elec-c-comment-prefix " " ; for non-block comments ; &elec-c-split-declarations 0 ; justification option ; ; 6. A C program justification function is bound to ESC-j. It will ; re-indent a block (bounded by "{}" (at the left margin)). It's ; a bit slow; expect to wait. You will be told when it's done. ; ; 7. #d and #i are defined as abbreviations for #define and #include, ; respectively. ; ; 8. There is a function called "comment" that allows you to enter ; comment mode manually (without typing "/*"). ; This can be used in editing existing comments. You have to be ; inside a comment when you toggle comment mode ON. You can ; toggle comment mode OFF by either re-executing the comment ; function or, more simply, by typing ^C. ; ; There is a function called "verbatim", which causes all special ; elec-c processing to be turned off until the user types ^C. ; ; 9. "main" always goes at the left margin and expands as you expect it ; to. Typing "argc" within the parameter list of "main" ; causes automatic insertion of argv and their declarations. ; ; 10. The quotation marks are bound to special functions that attempt to ; prevent expansions when you are inside quotations. If you find ; that expressions are suddenly not expanding as they should, then ; you have probably typed a quote mark without typing its closing ; mate. ; ; HISTORY ; 03-Apr-83 Duane Williams (dtw) at Carnegie-Mellon University ; Updated documentation and removed experimental functions in ; preparation for installation on /usr/local. ; ; 17-May-82 Duane Williams (dtw) at Carnegie-Mellon University ; Control constructs are now expanded via the new hooked ; abbreviation function. ; ; 02-Feb-82 Duane Williams (dtw) at Carnegie-Mellon University ; Created. (progn (setq-default &elec-c-split-declarations 0) ; USER MAY CHANGE (setq-default &elec-c-indent-width 4) (setq-default &elec-c-right-margin 75) (setq-default &elec-c-border-char '-') (setq-default &elec-c-border-size 75) (setq-default &elec-c-comment-prefix " ") (setq-default &elec-c-comment 0) ; PRIVATE VARIABLES (setq-default &elec-c-box-comment 0) (setq-default inside-double-quote 0) (setq-default inside-single-quote 0) (declare-buffer-specific ; allow these variables to have &elec-c-indent-width ; different values in each &elec-c-comment ; elec-c buffer &elec-c-box-comment &elec-c-right-margin &elec-c-border-char &elec-c-border-size &elec-c-comment-prefix inside-double-quote inside-single-quote ) (defun (current-position (+ (dot) 0)) ; if inside a comment, returns the column of the star ; that initiates the comment; otherwise returns zero. ; (inside-c-comment position star-position (setq &elec-c-box-comment 0) (setq position (current-position)) (save-excursion (if (error-occurred (search-reverse "/*")) 0 (progn (setq star-position (+ 1 (current-column))) (if (looking-at (concat "/\\*" (char-to-string &elec-c-border-char))) (setq &elec-c-box-comment 1)) (if (| (error-occurred (search-f orward "*/")) (< position (current-position))) star-position 0) ) ) ) ) (backward-brace level (if (error-occurred (search-reverse "}")) (error-message "Can't find end of block!")) (setq level 1) (while (> level 0) (re-search-reverse "[{}]") (if (= (following-char) '{') (setq level (- level 1)) (setq level (+ level 1))) ) ) (forward-brace level (if (error-occurred (search-forward "{")) (error-message "Can't find beginning of block!")) (setq level 1) (while (> level 0) (re-search-forward "[{}]") (if (= (preceding-char) '{') (setq level (+ level 1)) (setq level (- level 1))) ) ) (expand-abbrev space-position ; cause abbrev expansion without (setq space-position (dot)) ; leaving extra chars in buffer (insert-character '#') (backward-character) (insert-character ' ') (save-window-excursion (goto-character space-position) (if (= (following-char) ' ') (provide-prefix-argument 2 (delete-next-character)) (delete-next-character) ) ) ) (pause-or-exit ; avoid accidentally exiting (if (< (recursion-depth) 1) ; emacs (pause-emacs) (exit-emacs) ) ) (pop-recursion ; leave recursive edit (expand-abbrev) (pause-or-exit) ) (skip-white-space ; skip over spaces and tabs (while (& (! (eolp)) (| (= (following-char) ' ') (= (following-char) ' '))) (forward-character)) ) (this-line-is-blank ; true if only white space (save-excursion ; on current line (beginning-of-line) (skip-white-space) (if (eolp) 1 0)) ) (kill-current-line ; delete current line (beginning-of-line) (if (eolp) (kill-to-end-of-line) (provide-prefix-argument 2 (kill-to-end-of-line))) ) (beginning-of-block mymark ; jump to head of {} block (insert-string "}") (setq mymark (dot)) (if (error-occurred (backward-brace)) (progn (goto-character mymark) (delete-previous-character)) (save-excursion (goto-character mymark) (delete-previous-character)) ) ) (end-of-block ; jump to end of {} block (beginning-of-block) (forward-brace) ) (preceding-word ; return preceding word (backward-word) (set-mark) (forward-word) (region-to-string) ) ) (defun (elec-left-brace next-position old-mode ; insert brace pair (setq old-mode mode-string) (if (!(eolp)) (end-of-line)) ; else a mess (if (& (!(bolp)) ; beautify  (!= (preceding-char) ' ') ; space (!= (preceding-char) '\t')) ; tab (insert-character ' ')) (setq mode-string "block-body") (insert-string "{}") ; insert braces (backward-character) ; and format (newline-and-indent) (forward-character) ; find next position (if (eobp) ; avoid end of buffer (progn (newline) (backward-character)) ) (setq next-position (dot)) (previous-line) ; position for edit (elec-indent) (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) ) (elec-left-paren next-position ; insert paren pair (insert-string "()") (backward-character) ) (elec-left-bracket next-position ; insert bracket pair (insert-string "[]") (backward-character) ) (elec-right-paren line next-position (insert-character (last-key-struck)) (save-excursion (backward-paren) (if (dot-is-visible) (progn (setq line "") (sit-for 10)) (progn (beginning-of-line) (set-mark) (end-of-line) (setq line (region-to-string))) ) ) (message line) ) (elec-tab newcol (setq newcol (+ (current-column) &elec-c-indent-width)) (insert-character '.') (backward-character) (delete-white-space) (delete-next-character) (to-col newcol) ) (elec-function-format old-dot old-size (setq old-dot (+ (dot) 0)) (setq old-size (buffe r-size)) (save-excursion (previous-line) (re-search-forward "^}") (set-mark) (backward-brace) (beginning-of-line) (exchange-dot-and-mark) (end-of-line) (forward-character) (filter-region (concat "indent " "-st " "-i" &elec-c-indent-width (if &elec-c-split-declarations " -bc " " -nbc ")) ) ) (goto-character (/ (* (buffer-size) old-dot) old-size)) (message "Done!") ) (elec-indent (end-of-line) (newline-and-indent) (provide-prefix-argument &elec-c-indent-width (insert-character ' ')) ) (elec-linefeed (if (eolp) (progn (newline-and-indent)) (progn (elec-indent)) ) ) (elec-semicolon (if (!(eolp)) (end-of-line)) (delete-white-space) (insert-character ';') (newline-and-indent) ) (elec-main next-position old-mode (setq old-mode mode-string) (beginning-of-line) ; put main at margin (delete-white-space) (end-of-line) (insert-string " (){}")  ; expand and format (provide-prefix-argument 2 (backward-character)) (newline) (forward-character) (newline) (forward-character) (newline) (search-reverse ")") ; position for params (save-window-excursion (search-forward "{") ; find next position (setq next-position (dot)) ) (setq mode-string "main-parameters") (use-abbrev-table "elec-c-main-abbrevs") (local-bind-to-key "pop-recursion" "\^C") (recursive-edit) ; edit params (use-abbrev-table "elec-c-abbrevs") (local-bind-to-key "pause-or-exit" "\^C") (goto-character next-position) (newline) ; open body (elec-indent) (save-window-excursion ; find next position (if (error-occurred (search-reverse "main")) (search-reverse "main")) (forward-brace) (setq next-position (dot)) ) (setq mode-string "main-body") (recursive-edit) ; edit body (goto-character next-position) (newline) (setq mode-string old-mode) 0 )  (elec-argc ; auto declare argc/argv (search-forward ")") (backward-character) (insert-string ",argv") (end-of-line) (newline) (insert-string "int argc;") (newline) (insert-string "char *argv[];") 0 ) (elec-if next-position old-mode ; insert if construct (setq old-mode mode-string) (insert-string " () {}") (backward-character) (newline-and-indent) (previous-line) (search-forward "(") (save-window-excursion (elec-indent) (setq next-position (dot)) ) (setq mode-string "if-condition") (recursive-edit) (goto-character next-position) (save-window-excursion (search-forward "}") (setq next-position (dot)) ) (setq mode-string "if-body") (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-else next-position old-mode ; insert else construct  (setq old-mode mode-string) (insert-string " {}") (backward-character) (newline-and-indent) (previous-line) (elec-indent) (save-window-excursion (search-forward "}") (setq next-position (dot)) ) (setq mode-string "else-body") (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-for next-position old-mode ; insert for construct (setq old-mode mode-string) (insert-string " (;;) {}") (backward-character) (newline-and-indent) (previous-line) (search-forward "(") (save-window-excursion (elec-indent) (setq next-position (dot)) ) (setq mode-string "for-control") (recursive-edit) (goto-character next-position) (save-window-excursion (search-forward "}") (setq next-position (dot)) ) (setq mode-string "for-body") (recursive-edit) (if (this-line-i s-blank) (kill-current-line) ) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-while next-position old-mode ; insert while construct (setq old-mode mode-string) (insert-string " () {}") (backward-character) (newline-and-indent) (previous-line) (search-forward "(") (save-window-excursion (elec-indent) (setq next-position (dot)) ) (setq mode-string "while-condition") (recursive-edit) (goto-character next-position) (save-window-excursion (search-forward "}") (setq next-position (dot)) ) (setq mode-string "while-body") (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-do next-position old-mode ; insert do construct (setq old-mode mode-string) (insert-string " {} while ();") (search-reverse "}") (newline-and-indent) (previous-line) (elec-indent) (save-window-excursion (search-forward "(") (setq next-position (dot)) ) (setq mode-string "do-body") (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (save-window-excursion (search-forward ";") (setq next-position (dot)) ) (setq mode-string "do-condition") (recursive-edit) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-switch next-position old-mode ; insert switch construct (setq old-mode mode-string) (insert-string " () {}") (backward-character) (newline-and-indent) (previous-line) (search-forward "(") (save-window-excursion (elec-indent) (setq next-position (dot)) ) (setq mode-string "switch-condition") (recursive-edit) (goto-character next-position) (save-window-excursion (search-forward "}") (setq next-position (dot)) ) (elec-case-loop) (goto-character next-position) (newline-and-indent) (setq mode-string old-mode) 0 ) (elec-case next-position old-mode ; single case statment (setq old-mode mode-string) (insert-string " :break;") ; expand case statement (search-reverse "b") (newline-and-indent) (provide-prefix-argument &elec-c-indent-width (insert-character ' ')) (search-reverse ":") ; goto case condition (save-window-excursion ; prepare next position (elec-indent) (setq next-position (dot)) ) (setq mode-string "case-condition") (recursive-edit) ; edit case condition (goto-character next-position) (save-window-excursion (search-forward ";") (setq next-position (dot)) ) (setq mode-string "case-body") (recursive-edit) (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) (setq mode-string old-mode) 0 ) (elec-case-loop case-col next-position old-mode (setq old-mode mode-string) (setq case-col (current-indent)) ; save case column (insert-string "case :break;") ; expand case statement (search-reverse "b") (newline-and-indent) (provide-prefix-argument &elec-c-indent-width (insert-character ' ')) (search-reverse ":") ; goto case condition (save-window-excursion ; prepare next position (elec-indent) (setq next-position (dot)) ) (setq mode-string "case-condition") (recursive-edit) ; edit case condition (while (!= (preceding-char) ' ') (goto-character next-position) ; goto case body (save-window-excursion ; prepare next position (search-forward ";") (newline) (to-col case-col) (setq next-position (dot)) ) (setq mode-string "case-body") (recursive-edit) ; edit body of case (if (this-line-is-blank) (kill-current-line) ) (goto-character next-position) ; find end of case (insert-string "case :break;") ; setup next case (search- reverse "b") (newline-and-indent) (provide-prefix-argument &elec-c-indent-width (insert-character ' ')) (search-reverse ":") ; goto case condition (save-window-excursion ; prepare next position (elec-indent) (setq next-position (dot)) ) (setq mode-string "case-condition") (recursive-edit) ; edit case condition ) (delete-previous-word) ; setup for default (insert-string "default") (next-line) (setq mode-string "default") (recursive-edit)  (if (this-line-is-blank) (kill-current-line) ) (setq mode-string old-mode) 0 ) (elec-default next-position old-mode ; case default (setq old-mode mode-string) (insert-string ":break;") (search-reverse "b") (newline-and-indent) (provide-prefix-argument &elec-c-indent-width (insert-character ' ')) (previous-line) (elec-indent) (save-window-excursion (search-forward ";") (setq next-position (dot)) ) (recursive-edit) (goto-character next-position) (setq mode-string old-mode) 0 ) (setup-for-code (setq &elec-c-comment 0) (setq left-margin 0) (setq right-margin 0) (setq prefix-string "") (use-local-map "elec-c-keymap") (setq abbrev-mode 1) ) (elec-slash ; watch for close comment (if (= (preceding-char) '*') (progn (insert-character '/') (pause-or-exit) ) (insert-character '/') ) ) (verbatim old-mode next-position (setq old-mode mode-string) (setq next-position (dot)) (setq left-margin 0) (setq right-margin 0) ; (setq prefix-string "") (setq abbrev-mode 0) (use-local-map "elec-c-verbatim-keymap") (setq mode-string "verbatim") (message "Type ^C to exit verbatim mode") (recursive-edit) (goto-character next-position) (setq mode-string old-mode) (if &elec-c-comment (setup-for-comment) (setup-for-code) ) ) (setup-for-comment (if (!= (preceding-char) '/') (if (= 0 (setq left-margin (inside-c-comment))) (setq left-margin (current-column)) ) (setq left-margin (current-column)) ) (setq right-margin &elec-c-right-margin) (if &elec-c-box-comment ; set by inside-c-comment (setq prefix-string "* ") (setq prefix-string &elec-c-comment-prefix) ) (use-local-map "elec-c-comment-keymap") (setq abbrev-mode 0) (setq &elec-c-comment 1) ) (elec-star old-mode ; watch for open comment (if (= (preceding-char) '/') (progn (insert-character '*') (comment) ) (insert-character '*') ) ) (elec-border old-prefix ; create comment border (if (& &elec-c-comment (= (preceding-char) '*')) (progn (setq right-margin 10000) (provide-prefix-argument &elec-c-border-size (insert-character &elec-c-border-char)) (newline-and-indent) (setq right-margin &elec-c-right-margin) (insert-character '.') (backward-character) (previous-line) (if (= (following-char) '/')  (progn (next-line) (delete-next-character) (insert-string " * ") (setq old-prefix prefix-string) (setq prefix-string "* ")) (= (following-char) '*') (progn (setq prefix-string old-prefix) (next-line) (delete-next-character) (insert-string "*/") (newline) (pause-or-exit)) ) ) (progn (insert-character &elec-c-border-char)) ) ) (comment old-mode ; toggle comment mode manually (if &elec-c-comment (pause-or-exit) (progn (setq old-mode mode-string) (setq mode-string "comment") (setup-for-comment) (recursive-edit) (setup-for-code) (setq mode-string old-mode) (novalue) ) ) ) (elec-doublequote ; guard quotes against abbrev expansion (insert-string """") (if (! inside-single-quote) (if inside-double-quote (progn (setq inside-double-quote 0) (setq abbrev-mode 1)) (progn (setq inside-double-quote 1) (setq abbrev-mode 0)) ) ) ) (elec-singlequote ; guard quotes against abbrev expansion (insert-string "'") (if (! inside-double-quote) (if inside-single-quote (progn (setq inside-single-quote 0) (setq abbrev-mode 1)) (progn (setq inside-single-quote 1) (setq abbrev-mode 0)) ) ) ) (elec-c-mode ; initialize elec-c mode (use-local-map "elec-c-keymap") (use-abbrev-table "elec-c-abbrevs") (setq mode-string "elec-c") (use-syntax-table "elec-c") ) ) (save-excursion (temp-use-buffer "elec-c buffer") (setq needs-checkpointing 0) (if (error-occurred (use-local-map "elec-c-keymap")) (progn (define-keymap "elec-c-keymap") (use-local-map "elec-c-keymap")) ) (local-bind-to-key "backward-brace" "\e{") (local-bind-to-key "forward-brace" "\e}") (local-bind-to-key "elec-function-format" "\ej") (local-bind-to-key "elec-left-brace" '{') (local-bind-to-key "elec-left-bracket" '[') (local-bind-to-key "elec-left-paren" '(') (local-bind-to-key "elec-linefeed" "\n") (local-bind-to-key "elec-doublequote" """") (local-bind-to-key "elec-singlequote" "'") (local-bind-to-key "elec-right-paren" '}') (local-bind-to-key "elec-right-paren" ')') (local-bind-to-key "elec-right-paren" ']') (local-bind-to-key "elec-semicolon" ';') (local-bind-to-key "elec-star" '*') (local-bind-to-key "elec-tab" "\t") (local-bind-to-key "pause-or-exit" "\^C") (if (error-occurred (use-local-map "elec-c-comment-keymap")) (progn (define-keymap "elec-c-comment-keymap") (use-local-map "elec-c-comment-keymap")) ) (local-bind-to-key "elec-slash" '/') (local-bind-to-key "elec-border" &elec-c-border-char) (if (error-occurred (use-local-map "elec-c-verbatim-keymap")) (progn (define-keymap "elec-c-verbatim-keymap") (use-local-map "elec-c-verbatim-keymap")) ) (use-abbrev-table "elec-c-abbrevs") (define-local-abbrev "#d" "#define") (define-local-abbrev "#i" "#include") (define-hooked-local-abbrev "if" "if" "elec-if") (define-hooked-local-abbrev "else" "else" "elec-else") (define-hooked-local-abbrev "for" "for" "elec-for") (define-hooked-local-abbrev "while" "while" "elec-while") (define-hooked-local-abbrev "do" "do" "elec-do") (define-hooked-local-abbrev "switch" "switch" "elec-switch") (define-hooked-local-abbrev "case" "case" "elec-case") (define-hooked-local-abbrev "default" "default" "elec-default") (define-hooked-local-abbrev "main" "main" "elec-main") (use-abbrev-table "elec-c-main-abbrevs") (define-hooked-local-abbrev "argc" "argc" "elec-argc") (use-syntax-table "elec-c") (modify-syntax-entry "w #_") (modify-syntax-entry "(} {") (modify-syntax-entry "(] [") (modify-syntax-entry "() (") (modify-syntax-entry "){ }") (modify-syntax-entry ")[ ]") (modify-syntax-entry ")( )") (modify-syntax-entry " """) ; else forward/backward paren fails (modify-syntax-entry " '") ; else forward/backward paren fails (modify-syntax-entry " {}*/") (modify-syntax-entry "\\ \\") (novalue)  ) ) n (next-line) (delete-next-character) (insert-string " * ") (setq old-prefix prefix-string) (setq prefix-string "* ")) (= (following-char) '*') (progn (setq prefix-string old-prefix) (next-line) (delete-next-character) (insert-string "*/") (newline) (pause-or-exit)) ) ) (progn (insert-character &elec-c-border-char)) ) ) (comment old-mode ; toggle comment mode manually (if &elec-c-com6Y  6Z0*elec-c.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"6XprognV setq-default.&elec-c-split-declarationsZ6(&elec-c-indent-widthZ6x(&elec-c-right-marginZKN setq-default&&elec-c-border-charZ-4&&elec-c-border-sizeZKF*&elec-c-comment-prefix 0<"&elec-c-commentZ4 &&elec-c-box-commentZ4&inside-double-quoteZ4&inside-single-quoteZdeclare-buffer-specific(&elec-c-indent-width(&elec-c-right-margin 8f 8 defunVcurrent-position2+dotZinside-c-commentposition  star-position&setqZsave-excursionifZerror-occurred8search-reverse/*Zjprogn<0|Z"current-column8v looking-atXconcat/\*(char-to-stringbTZr|>8search-forward*/ <&Zbackward-bracelevelr }L error-message,Can't find end of block!tZwhile">:Z<re-search-reverse[{}]>="following-charZ{.N"-Z  xlZR forward-brace>^4 D{8P2Can't find beginning of block!|ZdvZ*re-search-forwardv~0"preceding-charZ{ FP:Z &Z~ expand-abbrev"space-positionl,insert-characterZ#&backward-characterZ save-window-excursion(goto-character&z*Z Zprovide-prefix-argumentZ(delete-next-character pause-or-exitrj0"recursion-depthZ pause-emacs exit-emacs, pop-recursionLskip-white-spaceJn&,!eolp.zZ ftZ $forward-characterrthis-line-is-blankL$beginning-of-line>ZZpkill-current-lineFt&kill-to-end-of-line\Zbeginning-of-blockmymark& insert-stringnh > v,delete-previous-characterD 8V, end-of-blockpreceding-word  backward-wordset-mark  forward-word$region-to-string!Xelec-left-brace  next-positionold-mode* mode-string0 bp end-of-linep\,bolp$!=Z Z Z *@ block-body>{}&newline-and-indentDeobp&4newline<<  previous-line elec-indent"recursive-edit$~ Jelec-left-parenx()&Lelec-left-bracket,[]Lelec-right-parenline(f"last-key-struck"backward-paren"dot-is-visibleH >b"sit-forZ *pnh messageelec-tabnewcol|nZ.&&delete-white-space to-colrNelec-function-formatold-dotold-size Z* buffer-sizeH*^}d(exchange-dot-and-markr filter-regionindent -st -i2f.&elec-c-split-declarations -bc  -nbc @@:/ *pDone!,(P<Z D elec-linefeed$B * @Telec-semicolonx Z;J elec-main,f$ (){}ZJ )$@ f$$.Z"main-parametersJuse-abbrev-table&elec-c-main-abbrevs>local-bind-to-keyt(v"elec-c-abbrevs NT6X$hmain f8( main-body pZ elec-argc ,argv"n int argc;&F  char *argv[];Znelec-if  () {}&(.,N  if-condition $ D,&if-body, fTnZ elec-else$>2Tp {}6$ H0( else-body. hVpZdelec-for&@4V"r (;;) {}2 ,* for-control t$r 8VV(Dfor-body4p^ 6P: ZV elec-while  0f^ TD|fff.T"while-condition> R $ x*8 while-bodyt Zzelec-don\|&  {} while (); p$ j&*do-bodyj 2h;xx,f  do-conditionR f4"j<Z8 elec-switch  <` t 0$switch-conditionl N$L 00"elec-case-loop .H2Z elec-case" :break;bZ :*.J"case-condition $ .&( case-body$ ^RlZcase-col6 *L."current-indent&:  case :break; 64D0Z  Bv```NPT 2Z N6 | b"@ v   *(8$Z 6jTTTBDH(delete-previous-word rdefault next-linebݜZ elec-defaulthVv :break; ݶpZ $ ޼XP ܶZ(setup-for-codez<Z,f left-marginZ.:  right-marginZ,  prefix-string@ use-local-map  elec-c-keymap,۠ abbrev-modeZ` elec-slashB۰6Z*Z/Z/Zverbatim .PfZڴ~ZڠZ0*elec-c-verbatim-keymap\@6|0Type ^C to exit verbatim mode, @J6Jײ$setup-for-comment(dtޔZ/8  Zن$tlbZP0@٘0"2** ֆ."(elec-c-comment-keymap4Zؼ~Zx elec-starVfZ/.>Z*commentZ* elec-border old-prefixXN ߪհZZ* ؠZ'( RԼז`v.Z.LJZ/R"l * "vڄZ*<׼r 6ظb݈׀ RӼHzRXhPxftfB\novalueelec-doublequoteb"z2 ݢ,h .֌մZՠZ.^ՆӬZrZelec-singlequoteު'zz @hhh.VZLZ.զ(ZԺZ elec-c-mode  *&p߸elec-c*use-syntax-tableXBtemp-use-buffer  elec-c buffer4&needs-checkpointingZP 8^& define-keymap "Պ{"0}"zjXZ{DZ[00Z( , z DnZ}ZZ)FZ]Z;tZ* tV Tظr62B Ғ 8  ,Z/\Μ6 6  v fVdefine-local-abbrev#d#define8#i#include@define-hooked-local-abbrev*else(forr 4(Zdob,2switch*case~xr t*argc @modify-syntax-entryw #_ (} { (] [ () ( d){ } D)[ ] $)( )  "  '  {}*/ \ \fZ elec-defaulthVv :break; ݶpZ $ ޼XP ܶZ(setup-for-codez<Z,f left-marginZ.:  right-marginZ,  prefix-string  0.electric-c.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(autoload "edit-block-comment" "comments.ml") (defun (c-paren lastp reindent (if (& (eolp) (= (last-key-struck) '}')) (progn (delete-white-space) (setq lastp (dot)) (setq reindent (bolp)))) (insert-character (last-key-struck)) (save-excursion (backward-paren) (if reindent (progn (save-excursion indent (setq indent (current-indent)) (goto-character lastp) (to-col indent)))) (if (dot-is-visible) (sit-for 5) (progn (beginning-of-line) (set-mark) (end-of-line) (message (region-to-string))) ) ) ) (c-indent old-dot old-size (setq old-dot (+ (dot) 0)) (setq old-size (buffer-size)) (save-excursion (previous-line) (re-search-forward "^}") (set-mark) (backward-paren) (beginning-of-line) (exchange-dot-and-mark) (end-of-line) (forward-character) (filter-region "indent +st") ) (goto-character (/ (* (buffer-size) old-dot) old-size)) (novalue) )  (c-nl-indent indent (setq indent (current-indent)) (delete-white-space) (if (= (preceding-char) '{') (setq indent (+ indent 4))) (newline) (to-col indent) ) (&electric-C-} (if (eolp) (progn (delete-white-space) (if (! (bolp)) (newline)) ) ) (c-paren) ) (&electric-C-{ (if (eolp) (progn (insert-string "{") (newline-and-indent) (indent-line) ) (insert-string "{") ) ) (dedent-line (beginning-of-line) (to-col (- (current-indent) 4)) (insert-string ".") (delete-white-space) (delete-previous-character) (end-of-line) ) (indent-line (beginning-of-line) (to-col (+ (current-indent) 4)) (insert-string ".") (delete-white-space) (delete-previous-character) (end-of-line) ) (&electric-C-semi (insert-string ";") (if (eolp) (newline-and-indent)) ) (skip-spaces (forward-character) (while (| (| (= (following-char) ' ') (= (following-char) ' ')) (= (following-char) 10)) (forward-character) ) ) (&electric-C-* (if (& (eolp) (= (preceding-char) '/')) (progn (delete-previous-character) (if (! (bolp)) (progn (delete-white-space) (if (bolp) (delete-previous-character)) ) ) (begin-C-comment) ) (insert-string "*") ) ) (&electric-C-/ (if (& (eolp) (= (preceding-char) '*')) (progn (delete-previous-character) (end-C-comment) ) (insert-string "/") ) ) (begin-C-comment (move-to-comment-column) (setq left-margin (current-column)) (setq right-margin 78) (setq prefix-string " ") (insert-string "/* ") ) (end-C-comment (if (!= (preceding-char) ' ') (insert-character ' ')) (insert-character '*') (insert-character '/') (setq right-margin 1000) ) (high-voltage-on (local-bind-to-key "&electric-C-semi" ';') (local-bind-to-key "&electric-C-{" '{') (local-bind-to-key "&electric-C-}" '}') (local-bind-to-key "&electric-C-*" '*') (local-bind-to-key "&electric-C-/" '/') (local-bind-to-key "high-voltage-off" "\^^") (message "high voltage on") ) (high-voltage-off (local-bind-to-key "self-insert" ';') (local-bind-to-key "self-insert" '{') (local-bind-to-key "c-paren" '}') (local-bind-to-key "self-insert" '*') (local-bind-to-key "self-insert" '/') (local-bind-to-key "high-voltage-on" "\^^") (message "high voltage off") ) (electric-c-mode (setq mode-string "electric-C") (use-syntax-table "C") (local-bind-to-key "forward-paren" "\e)") (local-bind-to-key "edit-block-comment" "\ee") (local-bind-to-key "backward-paren" "\e(") (local-bind-to-key "begin-C-comment" "\e`") (local-bind-to-key "c-nl-indent" "\n") (local-bind-to-key "c-paren" ')') (local-bind-to-key "c-paren" ']') (local-bind-to-key "c-paren" '}') (local-bind-to-key "end-C-comment" "\e'") (local-bind-to-key "c-indent" "\ej") (local-bind-to-key "high-voltage-on" "") ; CTRL-^ (use-abbrev-table "electric-c") (error-occurred (electric-c-mode-hook)) (novalue) ) ) (use-syntax-table "C") (modify-syntax-entry "() (") (modify-syntax-entry ")( )") (modify-syntax-entry "(} {") (modify-syntax-entry "){ }") (modify-syntax-entry "(] [") (modify-syntax-entry ")[ ]") (modify-syntax-entry """ '") (modify-syntax-entry """ """) (modify-syntax-entry "\\ \\") (modify-syntax-entry "w _") (novalue) o-col indent)))) (if (dot-is-visible) (sit-for 5) (progn (beginning-of-li  0/electric-c.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"`autoload&edit-block-comment comments.mldefunfc-parenlastpreindentifj&eolp>="last-key-struckZ}progn&delete-white-space4setqdot$bolp*insert-character save-excursion"backward-paren^indent. "current-indent(goto-character to-colz"dot-is-visible"sit-forZ$beginning-of-lineset-mark end-of-line>message$region-to-stringc-indentold-dotold-size.X"+VZ** buffer-size  previous-line:re-search-forward^}>R(exchange-dot-and-markd$forward-character> filter-region indent +st@$:/ *@Tnovalue c-nl-indentdXxHV0"preceding-charZ{ 2 Znewline Fd &electric-C-}>22&! &electric-C-{~4 insert-string{&newline-and-indent indent-line  dedent-liner("-Z4.F,delete-previous-character8D<v Z P&electric-C-semiz; skip-spaces&whiler|J0"following-charZ Z Z  &electric-C-* ,>\Z/^h>0 J\"begin-C-comment b~ &electric-C-/^^ n|Z*,  end-C-comment xX*move-to-comment-columnF left-margin"current-column.H  right-marginZN<  prefix-string /* n8$!=HZ Z Z*Z/h$Z high-voltage-on2local-bind-to-key"Z;vZ{Z}Z*Z/>$high-voltage-off("high voltage on, self-insertZ;Z{Z}Z*Z/r:*$high voltage offelectric-c-modeBj mode-string electric-C8use-syntax-tableC<  forward-paren)"Fe"d0("B`   Z)Z]Z}"'"$jX Buse-abbrev-table electric-cJerror-occurred(electric-c-mode-hookV @modify-syntax-entry() ( )( ) (} { ){ } d(] [ D)[ ] $" ' " " \ \ w _sert-character  0/expandX.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (expand-mlisp-word (insert-string (get-tty-command ": expand-mlisp-word ")) (novalue)) (expand-mlisp-variable (insert-string (get-tty-variable ": expand-mlisp-variable ")) (novalue)) ) )( ) (} { ){ } d(] [ D)[ ] $" ' " " \ \ w _sert-characterE  F0/expandX.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Ddefunexpand-mlisp-wordj insert-stringJget-tty-command(: expand-mlisp-word novalueexpand-mlisp-variableVXPget-tty-variable,: expand-mlisp-variable l [ D)[ ] $" ' " " \ \ w _sert-character    00ftp-visit.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; UNIX Emacs package to simulate a "visit" on remote files ; Copyright 1982 by Nathaniel Borenstein ; Modifications Copyright 1986 by Tektronix, Inc. ; Massively redone to remove the CMU-isms. ; ; The only function here you want to use is ftp-visit. It will visit ; a file on a remote machine, more or less. It does not save the ; file automatically, but merely puts it in a buffer with no ; filename associated. Of course, you can save it with ^X^W. ; It uses the same buffer each time, so that each use trashes the ; previously visited remote file. ; ; The name of the machine to go to must be supplied, either ; interactively or as the second argument. The name of the ; machine must also have an login entry in your ~/.netrc file. ; This package implements ftp output only, if the ftp program ; prompts for input, you may be able to send it strings via ; string-to-process (process name is "ftp"). Best if you don't ; let ftp prompt for anything. ; ; Great care is taken to properly quote file names through to ftp. ; It is the author's belief that you need never quote anything in ; the file name you pass or give to ftp-visit. Just type the file ; name as you'd give it on the target machine. ; (declare-global .has-printed .machine .remotefile first-output) (defun (ftp-visit .cmdname .default .prompt (progn (save-window-excursion (list-processes)) (setq first-output "") (setq .has-printed 0) (setq .remotefile (concat "\"" (arg 1 "Remote file name? ") "\"")) (setq .default "scarecrow") (if (>= (nargs) 2) (setq .machine (arg 2 (concat "Machine name [" .default "] ? ")) ) (setq .machine (get-tty-string (concat "Machine name [" .default "] ? ")) ) ) (if (= .machine "") (setq .machine .default) ) (setq .cmdname (concat "ftp " .machine " get " .remotefile " -")) (error-occurred (delete-buffer "ftp.output")) (start-filtered-process .cmdname "ftp" ".dump-ftp-output") (save-window-excursion (progn (pop-to-buffer "ftp") (setq needs-checkpointing 0) ) ) (pop-to-buffer "ftp.output") (setq needs-checkpointing 0) (setq mode-string "Waiting...") (novalue) ) ) (.dump-ftp-output (save-window-excursion (pop-to-buffer "ftp.output") (end-of-file) (insert-string (process-output)) (if (!= 1 (process-status "ftp")) (setq mode-line-format (concat "%[%M%] " .remotefile " on " .machine " ")) ) ) ) ) "begin-C-comment b~ &electric-C-/^^ n|Z*,  end-C-comment xX*move-to-comment-columnF left-margin"current-column.H  right-marginZN<  prefix-string /* n8$!=HZ '  (00ftp-visit.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"declare-global  .has-printed.machine .remotefile  first-outputdefun, ftp-visit.cmdname.default.promptprognJsave-window-excursion"list-processes2setq.  .has-printed:xxconcat"Darg:&Remote file name? (  scarecrowif6>=nargs:`dT::F"Machine name [] ? FL:get-tty-stringz8 =<z.cmdnameXftp L get J -`error-occurred> delete-buffer ftp.outputjstart-filtered-processftp$.dump-ftp-outputf@`"& pop-to-buffer4X&needs-checkpointing: :B mode-string Waiting...novalueF@X " end-of-fileB insert-string"process-output<F!=:(process-status*$mode-line-formatX&%[%M%] t on : achine "") (setq .machine .default) ) (setq .cmdname (concat "ftp " .machine " get " .remotefile " -")) (error-occurred (delete-buffer "ftp.output")) (start-filtered-process .cmdname "  01generate.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (gen-on (save-excursion fname (setq fname (get-tty-string "function name: ")) (temp-use-buffer "generate") (if prefix-argument-provided (erase-buffer) (progn (end-of-file) (insert-string "\n"))) (insert-string "(defun (" fname "\n") (start-generating-mlisp)))) (defun (gen-off (stop-generating-mlisp) (pop-to-buffer "generate") (end-of-file) (insert-string "))\n") (beginning-of-file) (electric-mlisp-mode))) (bind-to-key "gen-on" "\^X[") (bind-to-key "gen-off" "\^X]") "Darg:&Remote file name? (  scarecrowif6>=nargs:`dT::F"Machine name [] ? FL:get-tty-stringz8 =<z.cmdnameXftp g  h01generate.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"0defungen-onsave-excursionfnamebsetqDget-tty-string"function name: >temp-use-buffergenerateif,prefix-argument-provided  erase-bufferjprogn end-of-file4 insert-string .(defun (^*start-generating-mlispgen-off(stop-generating-mlisp& pop-to-buffer\)) $beginning-of-file&electric-mlisp-mode: bind-to-key["]ngz8 =<z.cmdnameXftp   01global-del.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Deletes all lines containing a target string (defun (global-delete-lines target delcnt (setq delcnt 0) (setq target (get-tty-string ": global-delete-lines containing ")) (save-excursion (error-occurred (beginning-of-file) (while 1 (search-forward target) (beginning-of-line) (kill-to-end-of-line) (kill-to-end-of-line) (setq delcnt (+ delcnt 1)) ) ) ) (message (concat delcnt " lines deleted")) ) )  .(defun (  02global-del.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"defunlglobal-delete-linestargetdelcnt&setqZbVget-tty-string4!: global-delete-lines containing .save-excursion error-occurred$beginning-of-filewhileZ(search-forward$beginning-of-line&kill-to-end-of-line.|\"+BZ\messageBconcat" lines deleted pop-to-buffer\)) $beginning-of-file&electric-mlisp-mode: bind-to-key["]ngz8 =<z.cmdnameXftp   02goto.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun ;*************************************************************** ; goto-line ; - moves cursor to beginning of indicated line. ; - line number is taken from prefix if provided, ; is prompted for otherwise. ; - first line of file is line 1 (goto-line line (if prefix-argument-provided (setq line prefix-argument) (setq line (arg 1 ": goto-line ")) ) (beginning-of-file) (if (> line 1) (provide-prefix-argument (- line 1) (next-line) ) ) (beginning-of-line) (novalue) ) ;*************************************************************** ; goto-percent ; - moves cursor past indicated percentage of the buffer. ; - percentage is taken from prefix if provided, ; is prompted for otherwise. ; - (goto-percent n) goes to the character closest to the ; beginning of the buffer that is reported as n% in the ; status line. This is 2 characters further into the ; buffer than you'd expect. As a result, (goto-percent 0) ; goes to character 1 in the file, since I didn't feel like ; fixing that special case. ; - (goto-percent 100) goes to the end of the buffer. ; - remember that the position of the first character ; in the buffer is 1. (goto-percent percent (if prefix-argument-provided (setq percent prefix-argument) (setq percent (arg 1 ": goto-percent ")) ) (goto-character (+ (/ (* (buffer-size) percent) 100) 2)) (novalue) ) ) novalueF@X "7  803goto.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"6defun goto-linelineif,prefix-argument-provided@setq"prefix-argumentJd>argZ  : goto-line $beginning-of-file">Zhprovide-prefix-argument"-Z next-line$beginning-of-linenovalue, goto-percentpercentZ BT<00pZ": goto-percent goto-characterp+T/8* buffer-sizeZdZr closest to the ; beginning of the buffer that is reported as n% in the ; status line. This is 2 characters further into the ; buffer than you'd expect. As a result, (goto-percent  incr-search.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; 14-Jan-83 Jerry Agin (agin) at Carnegie-Mellon University ; Added regular expression searches. Can be invoked by calling ; incremental-re-search or reverse-incremental-re-search, or by ; typing ^T within a search string. ; Modified: Jerry Agin at CMU-750R Fri Apr 30 1982 ; - fixed case fold lossage ; - added search-exit-char ; Modified: Jeffrey Mogul @ Stanford 6 November 1981 ; - original version tried to reverse by re-defuning things. This ; tended to fail quite often. The direction of search is now ; tested explicitly. ; - accepts as a "normal-character" ; A. Witkin 1/81 ; Created. ; Modified: Bill Waller Sep 1985 ; - change made to sound the bell at failure. This matches Dec 20 ; Emacs and saves users from staring at the bottom of the screen ; looking for a failure message. (declare-global I-search-string) (setq I-search-string "") (declare-global I-search-re) (setq I-search-re 0) (declare-global search-exit-char) (if (= search-exit-char 0) (setq-default search-exit-char '\033')) (defun (&inc-initial (if (& (= (length string) 0)(> (length I-search-string) 0)) (progn (setq string I-search-string) (setq is-re I-search-re)))) (&inc-message (progn (if failing (send-string-to-terminal "\007")) (message (if failing "Failing " "") (if is-forward "" "Reverse ") (if is-re "R-E " "") "I-search: " string)) ) (&inc-forward-search (setq failing (& (!= string "") (error-occurred (if is-re (re-search-forward string) (search-forward string))))) (if (! failing) (progn (if (= string "") (set-mark) (region-around-match 0) ) (setq goodlength (length string)))) (&inc-message)) (&inc-reverse-search (setq failing (& (!= string "") (error-occurred (if is-re (re-search-reverse string) (search-reverse string))))) (if (! failing) (progn (set-mark) (setq goodlength (length string)))) (&inc-message)) (&inc-normal-char  (setq string (concat string next)) (if (& failing (! is-re)) (&inc-message) (&inc-check))) (&inc-check (if is-forward (&inc-forward-check) (&inc-reverse-check))) (&inc-forward-check (exchange-dot-and-mark) (&inc-forward-search) (if failing (exchange-dot-and-mark))) (s= s1 s2 (setq s1 (arg 1)) (setq s2 (arg 2)) (if (= s1 s2) 1 (!= (length s1) (length s2)) 0 (! case-fold-search) 0 (progn (while (& (length s1) (c= (string-to-char s1) (string-to-char s2))) (setq s1 (substr s1 2 -1)) (setq s2 (substr s2 2 -1))) (! (length s1) )))) (&inc-looking-at ans (if (= string "") 1 is-re (& (! (error-occurred (setq ans (looking-at string)))) ans) (save-excursion (set-mark) (goto-character (+ (dot) (length string))) (s= (region-to-string) string)))) (&inc-reverse-check (if (&inc-looking-at string) (progn (setq failing 0) (setq goodlength (length string)) (&inc-message))  (&inc-reverse-search))) (&inc-CG (if (= nextc '') ; ^G (if failing (progn (setq string (substr string 1 goodlength)) (setq failing 0) (&inc-message)) (progn (setq ok 0)(goto-character start))))) (&inc-CS (if (= nextc '') ; ^S (progn (&inc-initial) (setq is-forward 1) (&inc-forward-search)))) (&inc-CR (if (= nextc '') ; ^R (progn (&inc-initial) (setq is-forward 0) (&inc-reverse-search)))) (&inc-DEL (if (= nextc '') ; RUBOUT (progn (setq string (substr string 1 (- (length string) 1))) (if (& failing (! is-re) (> (length string) goodlength)) ; There's a minor bug here. (Can you find it?) ; It's so obscure it's not worth fixing. (&inc-message) (&inc-check))))) (&inc-CQ (if (= nextc '') ; ^Q (progn (setq next (char-to-string (setq nextc (get-tty-character)))) (if (&inc-meta-char) (setq next (concat "" next))) (&inc-normal-char) (setq nextc '')))) (&inc-ALT (if (= nextc search-exit-char) (setq ok 0))) (&inc-CT ; use ^T to toggle regular-expression search (if (= nextc '') ; ^T (progn (setq is-re (! is-re)) (&inc-check)))) (&inc-special-char (| (= nextc '')(= nextc search-exit-char) ; ^G (= nextc '')(= nextc '') ; ^S ^R (= nextc '')(= nextc '') ; ^Q RUBOUT (= nextc ''))) ; ^T (&inc-funny-char (| (& (!= nextc ' ') (< nextc ' ')) (> nextc '~'))) ; first is ^I (&inc-meta-char (> nextc 127)) (incremental-search (&incremental-search 1 0)) (reverse-incremental-search (&incremental-search 0 0)) (incremental-re-search (&incremental-search 1 1)) (reverse-incremental-re-search (&incremental-search 0 1)) (&incremental-search string ok start failing is-forward goodlength push-back savemark is-re (setq is-forward (arg 1)) (setq is-re (arg 2)) (if (error-occurred (setq savemark (mark))) (setq savemark 0)) (set-mark) (setq start (dot)) (setq push-back -1) (setq string "") (setq ok 1) (setq failing 0) (setq goodlength 0) (&inc-message) (while ok (&inc-process-char)) (setq I-search-string string) (setq I-search-re is-re) (if (>= push-back 0) (push-back-character push-back)) (set-mark) (goto-character savemark) (exchange-dot-and-mark) ) (&inc-process-char next nextc (setq next (char-to-string (setq nextc (get-tty-character)))) (if (&inc-funny-char) (if (&inc-special-char) (progn (&inc-CS)(&inc-CR)(&inc-CG)(&inc-DEL)(&inc-CQ)(&inc-ALT) (&inc-CT)) (progn (setq push-back nextc) (setq ok 0))) (&inc-normal-char)) (if (!= nextc '') (setq I-search-string "")))) ength (length string)))) (&inc-message)) (&inc-reverse-search (setq failing (& (!= string "") (error-occurred (if is-re (re-search-reverse string) (search-reverse string))))) (if (! failing) (progn (set-mark) (setq goodlength (length string)))) (&inc-message)) (&inc-normal-char    incr-search.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Ddeclare-global"I-search-string2setq$ I-search-reT*V$search-exit-charfif"=T. setq-defaultTdefun &inc-initialf~&Bb4lengthstringT(> :TNprogn6$$is-re>` &inc-message@^nfailing>send-string-to-terminalmessage.Failing XF is-forward.Reverse *R-E  I-search: &inc-forward-searchz"!=jerror-occurredr>re-search-forwardstring(search-forwardif!prognbnvset-mark.region-around-matchTBsetq goodlength $  &inc-message(&inc-reverse-search|"!=hperror-occurredp|is-re*re-search-reverse(search-reverse6 $*T &inc-normal-charDVd8concatDnextBhH: l6 &inc-checkvp  is-forward&&inc-forward-check&&inc-reverse-checkf(exchange-dot-and-mark&&inc-forward-search\4s=s1s2*argTThT h rT*$case-fold-searchT|while\ (Jc=(string-to-char <|0substr|TT(@vjTT h2V&inc-looking-atans$vTH<6X0$ looking-atsave-excursionXgoto-character6+dot B0$region-to-stringV4P 8T~ &inc-CG&nextcTjBF&T T HH$okTdstartZ&inc-CS@$T&V:tTZ&inc-CR@\T&rT.&inc-DELRnTH<T(- dTB0xj  t,*N&inc-CQ<TR^Rchar-to-string0b$get-tty-characterF"&inc-meta-char@PTf&inc-ALTJB0$search-exit-charTX&inc-CT>0LT$hF :f&inc-special-char|TTTrT^zTJfTx&inc-funny-charVD<$T "<T T~T\incremental-search6&incremental-searchTTDreverse-incremental-searchTT>incremental-re-searchbTTFreverse-incremental-re-searchTTr2 push-backsavemarkis-reDsetq is-forwardTfTTif*$Pmarkf,Tset-mark$6startnT&stringT$okT(failingT, goodlengthT  &inc-message0l$&inc-process-char."I-search-string* I-search-reV$>=LT,push-back-character(goto-character(exchange-dot-and-marknext^Rchar-to-string0$get-tty-characterD"&inc-funny-char$&inc-special-char&inc-CS&inc-CR&inc-CG&inc-DEL&inc-CQ&inc-ALT&inc-CT,Rr`T*<$!=NTckf(  04ind-region.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This function slides a region left or right by "argument prefix" spaces. ; It is useful in manually meddling with indentation in block-structured ; languages. ; "argument prefix" defaults to 4 if not provided. ; I usually bind it to ESC-^I ; Brian Reid March 82 (defun (indent-region n (if prefix-argument-provided (setq n prefix-argument) (setq n 4)) (if (> (dot) (mark)) (exchange-dot-and-mark)) (beginning-of-line) (exchange-dot-and-mark) ;;;; (end-of-line) (save-excursion  (narrow-region) (beginning-of-file) (while (! (eobp)) (indent-line n) (next-line) ) (widen-region) ) ) (indent-line (error-occurred (while (looking-at "[ ]") (forward-character)) (if (! (eolp)) (progn oc oq or (setq oc (+ (current-column) (- (arg 1) 1))) (if (< oc 0) (setq oc 0)) (beginning-of-line) (delete-white-space) (setq oq (/ oc 8)) (setq or (- oc (* oq 8))) (while oq  (insert-string "\t") (setq oq (- oq 1)) ) (while or (insert-character ' ') (setq or (- or 1)) ) (beginning-of-line) ) (progn (beginning-of-line) (delete-white-space) ) ) ) ) )  I-search-reV$>=LT,push-back-character(goto-character(exchange-dot-and-markne  04ind-region.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"defunn indent-regionnif,prefix-argument-provided@setq"prefix-argumenthZpnB>dotmark(exchange-dot-and-mark$beginning-of-line save-excursion  narrow-region$beginning-of-filewhile,!eobp$ indent-line next-line  widen-region"error-occurred`86 looking-at[ ]$forward-characterBeolpdprognocoqor|p+"current-column:-argZZ<H"<,ZbZ&delete-white-space.""/Z:.("*Z`4 insert-string zF:ZX<,insert-characterZ "VZto-character(exchange-dot-and-markne0  005info.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; In the distant past Andy Witkin from SRI wrote an initial ; version of the Info system. This one is a total rewrite ; by James Gosling (5/5/82). Only a few names remain the same. (extend-database-search-list "info" "/emacs/databases/info") (setq-default info-root-file "dir") (setq-default &info-file info-root-file) (setq-default &info-node "Top") (setq-default &info-camefrom "") (setq-default &info-doedit 0) (defun (info (&info "dir" "top"))) (defun (describe-command (&info "emacs" (get-tty-command ": describe-command ")))) (defun (describe-variable (&info "emacs" (get-tty-variable ": describe-variable ")))) (defun (&info m fn i (setq fn (arg 1)) (setq m (arg 2)) (save-window-excursion (delete-other-windows) (temp-use-buffer "*info-stack*") (erase-buffer) (switch-to-buffer "INFO") (setq &info-camefrom "") (find-node) (if (is-bound &info-running) (message "Recursive INFO call punted.") (progn &info-running (message "Type '^C' to resume editing, 'h' for help with INFO") (sit-for 0) (message "Type '^C' to resume editing, 'h' for help with INFO") (recursive-edit))) ) ) ) (defun (#info-enable-edit (setq &info-doedit 1) (local-bind-to-key "#info-^r" "\e\^e") (message "Database editing enabled"))) (defun (#info-^r setting-up-for-edit fn m (setq fn &info-file) (setq m &info-node) (find-node) (use-local-map "&info-editing") (setq mode-line-format (concat "  INFO edit File: " &info-file " Node: " &info-node " %M %[%p%]")) (message "Type ^C to resume info") (use-syntax-table "text-mode") (save-excursion (recursive-edit)) (use-syntax-table "info-syntax-table") (use-local-map "&info-commands") (if (& buffer-is-modified (= (substr (get-tty-string "Save changes? ") 1 1) "y")) (progn key (beginning-of-file) (set-mark) (insert-string &info-file ":" &info-node) (case-region-lower) (setq key (region-to-string)) (erase-region) (put-database-entry "info" key))) (setq mode-line-format " INFO Node: %m %M %p %") ) ) (defun (#info-g fn m s (setq s (get-tty-string "Node: ")) (setq m "Top")(setq fn 0) (save-excursion (temp-use-buffer "Hack Buffer") (setq needs-checkpointing 0) (setq case-fold-search 1) (erase-buffer) (use-syntax-table "info-syntax-table") (insert-string s) (beginning-of-line) (get-node-and-file) )  (find-node)) ) (defun (#info-h fn m (setq fn "info") (setq m "help") (find-node)) ) (defun (#info-hlp fn m (setq fn "cmds") (setq m "top") (find-node)) ) (defun (#info-d fn m (setq &info-camefrom "") (setq fn info-root-file) (setq m "Top") (find-node)) ) (defun (#info-l fn m dot (save-excursion (temp-use-buffer "*info-stack*") (end-of-file) (re-search-reverse ";\\(\\w\\w*\\),\\(\\w\\w*\\),\\(\\w\\w*\\);") (region-around-match 1) (setq dot (region-to-string)) (region-around-match 2) (setq fn (region-to-string)) (region-around-match 3) (setq m (region-to-string)) (region-around-match 0) (end-of-file) (erase-region) ) (setq &info-camefrom "") (find-node) (goto-character dot)) ) (defun (#info-@ path m (setq path (get-tty-string "Path: ")) (save-excursion (temp-use-buffer "Hack Buffer") (erase-buffer) (insert-string path " ") (beginning-of-file) (while (! (error-occurred (temp-use-buffer "Hack Buffer") (re-search-forward "[ ]*\\(.[^ ]*\\)"))) (region-around-match 1) (setq m (region-to-string)) (if (error-occurred (temp-use-buffer "INFO") (&info-goto-menu-item)) (error-message "No such menu item: " m))) ) (beginning-of-file)) ) (defun (#info-m m (setq m (get-tty-string "Menu item: ")) (&info-goto-menu-item)) ) (defun (#info-mouse-menu ldot (move-dot-to-mouse) (setq ldot (dot)) (beginning-of-line) (if (bobp) (progn (set-mark) (end-of-line) (narrow-region) (goto-character ldot) (re-search-reverse "[\t,:]") (search-forward ":") (widen-region) (get-node-and-file) (find-node) ) (if (looking-at "^* \\(\\w*\\):") (progn (re-search-forward "") (if (= (following-char) ':') (progn (setq fn "") (region-around-match 1) (setq m (region-to-string))) (get-node-and-file)) (setq &info-camefrom " Up: ") (find-node)) (error-message "No menu item on this line")) )) ) (defun (&info-goto-menu-item fn (if (error-occurred (beginning-of-file) (search-forward (concat (char-to-string 13) "* menu:"))) (error-message "This node has no menu.")) (if (error-occurred (re-search-forward (concat "^* \\(" m "\\w*\\):"))) (error-message "No such menu item: " m)) (if (= (following-char) ':') (progn (setq fn "") (region-around-match 1) (setq m (region-to-string))) (get-node-and-file)) (setq &info-camefrom " Up: ") (find-node)) ) (defun (get-node-and-file (if (looking-at "[ ]*(\\(\\w*\\))[ ]*\\(\\w*\\)") (progn (region-around-match 1) (setq fn (region-to-string)) (region-around-match 2) (if (| (= fn "dir") (= fn "Dir") (= fn "DIR")) (setq fn info-root-file)) ) (looking-at "[ ]*\\(\\w*\\)") (progn (region-around-match 1) (setq fn "") ) (error-message "Missing node specification.") ) (setq m (region-to-string)) (if (= m "") (setq m "top")) ) ) (defun (#info-f m fn (setq m (get-tty-string "Footnote: ")) (save-excursion (beginning-of-file) (if (error-occurred (re-search-forward (concat "*note \\(" m "\\w*\\):"))) (error-message "No such footnote: " m)) (if (= (following-char) ':') (progn (setq fn "") (region-around-match 1) (setq m (region-to-string))) (get-node-and-file)) ) (setq &info-camefrom "") (find-node)) ) (defun (#info-p m fn (setq m "Top") (beginning-of-file) (end-of-line) (if (error-occurred (re-search-reverse "Prev[ious]*:")) (error-message "This node has no previous.")) (search-forward "") (get-node-and-file) (setq &info-camefrom " Next: ") (find-node)) ) (defun (#info-n m fn (setq m "Top") (beginning-of-file) (end-of-line) (if (error-occurred (search-reverse "Next:")) (error-message "This node has no next.")) (search-forward "")  (get-node-and-file) (setq &info-camefrom " Previous: ") (find-node)) ) (defun (#info-u m fn (setq m "Top") (beginning-of-file) (end-of-line) (if (error-occurred (search-reverse "Up:")) (error-message "This node has no up.")) (search-forward "") (get-node-and-file) (find-node)) ) (defun (find-node dot sav file (setq dot (dot)) (setq sav 0) (if (error-occurred key keyc (switch-to-buffer "INFO") (erase-buffer) (set-mark) (insert-string (if (= "" fn) &info-file fn) ":" m) (setq keyc (region-to-string)) (case-region-lower) (setq key (region-to-string)) (erase-buffer) (if (error-occurred (fetch-database-entry "info" key)) (fetch-database-entry "info" keyc)) ) (progn (switch-to-buffer "INFO") (if (& &info-doedit (= (substr (progn (get-tty-string "Not found, should I create it? ")) 1 1) "y")) (&info-make-node) (progn lfn lm (setq lfn fn) (setq lm m) (error-occurred  (if (& (!= &info-node m) (| (= fn "") (!= &info-file fn))) (progn (setq fn &info-file) (setq m &info-node) (find-node)))) (error-message "No information on (" (if (= lfn "") &info-file lfn) ") " lm) ))) ) (if (!= fn "") (setq &info-file fn)) (setq &info-node m) (setq mode-string m) (temp-use-buffer "*info-stack*") (end-of-file) (insert-string ";" (+ dot 0) "," &info-file "," &info-node) (switch-to-buffer "INFO") (beginning-of-file) (if (& (! (is-bound setting-up-for-edit)) (looking-at " *execute: *<<")) (progn (search-forward "") (set-mark) (search-forward ">>") (backward-character) (backward-character) (narrow-region) (execute-mlisp-buffer))) (setq mode-line-format " INFO Node: %m %M %p") ) ) (defun (convert-ITS-info-file fn (setq fn (current-buffer-name)) (beginning-of-file) (setq case-fold-search 1) (error-occurred (while 1 (progn node HasCode  (re-search-forward "\^_\^_*\\|\^L") (setq HasCode (= (preceding-char) '^L')) (re-search-forward "[\^_\^L\n\t ]*") (set-mark) (if HasCode (re-search-forward "\^_[\^_\^L\n\t ]*")) (save-excursion (if (! (looking-at ".*node: *\\([^,\n\t]*\\)")) (error-message "bad format")) (region-around-match 1) (case-region-lower) (setq node (region-to-string)) (beginning-of-line) (if (looking-at ".*file:[ \t]*\\([^, \t\n]*\\)") (progn (region-around-match 1) (case-region-lower) (setq fn (region-to-string)))) ) (re-search-forward "\^L\\|\^_\\|\\'") (if (! (eobp)) (backward-character)) (copy-region-to-buffer "INFO") (save-excursion (temp-use-buffer "INFO") (put-database-entry "info" (concat fn ":" node)) ) (message "Wrote " fn ":" node) (sit-for 0) ))) ) ) (defun (&info-make-node (switch-to-buffer "INFO") (erase-buffer) (insert-string "File: " &info-file " Node: " m) (if (!= &info-camefrom "") (progn (insert-string &info-camefrom) (if (!= fn "") (progn (insert-string "(" &info-file ")") )) (insert-string &info-node) )) (insert-string "\n\n[body]\n\n* menu:\n") (search-reverse "[") (if (!= fn "") (setq &info-file fn)) (setq &info-node m) (#info-^r) ) ) (save-excursion c (temp-use-buffer "*info-stack*") (setq needs-checkpointing 0) (use-syntax-table "info-stack-syntax-table") (modify-syntax-entry "w -~") (modify-syntax-entry " ,") (erase-buffer) (temp-use-buffer "INFO") (setq needs-checkpointing 0) (define-keymap "&info-editing") (use-local-map "&info-editing") (local-bind-to-key "exit-emacs" "\^]") (local-bind-to-key "exit-emacs" "\^X\^S") (local-bind-to-key "justify-paragraph" "\ej") (setq right-margin 77) (define-keymap "&info-commands") (use-local-map "&info-commands") (setq case-fold-search 1) (use-syntax-table "info-syntax-table") (modify-syntax-entry "w -~") (modify-syntax-entry " .,:") (setq c 0) (while (<= c 0177) (local-bind-to-key "illegal-operation" c) (setq c (+ c 1))) (local-bind-to-key "execute-extended-command" 'x') (local-bind-to-key "search-forward" 's') (local-bind-to-key "search-forward" "\^s") (local-bind-to-key "search-reverse" 'r') (local-bind-to-key "search-reverse" "\^r") (local-bind-to-key "redraw-display" "\^l") (local-bind-to-key "#info-@" "@") (local-bind-to-key "scroll-one-line-down" "a") (local-bind-to-key "scroll-one-line-up" "z") (local-bind-to-key "scroll-one-line-up" "\^z") (local-bind-to-key "#info-hlp" "?") (local-bind-to-key "exit-emacs" "q") (local-bind-to-key "exit-emacs" "\^C") (local-bind-to-key "#info-m" "m") (local-bind-to-key "#info-n" "n") (local-bind-to-key "#info-p" "p") (local-bind-to-key "#info-f" "f") (local-bind-to-key "#info-u" "u") (local-bind-to-key "next-page" " ") (local-bind-to-key "next-page" "\^v") (local-bind-to-key "previous-page" "\^h") (local-bind-to-key "beginning-of-file" "b") (local-bind-to-key "end-of-file" "e") (local-bind-to-key "#info-mouse-menu" "\ePA1D") (local-bind-to-key "#info-mouse-menu" "\ePB1D") (local-bind-to-key "#info-l" "l") (local-bind-to-key "#info-d" "d") (local-bind-to-key "#info-h" "h") (local-bind-to-key "#info-g" "g") (local-bind-to-key "#info-enable-edit" "\e\") (local-bind-to-key "execute-extended-command" ":") ) (novalue) ackward-character) (narrow-region) (execute-mlisp-buffer))) (setq mode-line-format " INFO Node: %m %M %p") ) ) (defun (convert-ITS-info-file fn (setq fn (current-buffer-name)) (beginning-of-file) (setq case-fold-search 1) (error-occurred (while 1 (progn node HasCode -U  -V07info.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"nextend-database-search-listinfo(/emacs/databases/infoX setq-default"info-root-filedir* &info-file: &info-nodeTop<H"&info-camefrom.  &info-doeditZRdefun:4&infotopdescribe-commandfemacsHget-tty-command&: describe-command "|describe-variableXtLget-tty-variable(: describe-variable  mfni<setqargZZpsave-window-excursion(delete-other-windowsBtemp-use-buffer  *info-stack*  erase-buffer<switch-to-bufferINFO find-nodeTif<is-bound  &info-runningHmessage.Recursive INFO call punted.prognLF3Type '^C' to resume editing, 'h' for help with INFO"sit-forZ 0"recursive-edit#info-enable-edit8ZVlocal-bind-to-key#info-^r2n,Database editing enabled&setting-up-for-edit: (l@ use-local-map  &info-editing$mode-line-formatconcat( INFO edit File:  Node:   %M %[%p%]0*Type ^C to resume info@use-syntax-table text-mode(save-excursion.*$info-syntax-table(N"&info-commands&&buffer-is-modified=nsubstrDget-tty-string"Save changes? ZZyBhkey$beginning-of-fileset-mark@ insert-stringj:z$case-region-lower0D$region-to-string  erase-region2put-database-entryNNB. INFO Node: %m %M %p %#info-ghs, Node: `&NZ$ Hack Buffer4&needs-checkpointingZ2$case-fold-searchZ $ $beginning-of-line$get-node-and-filehb#info-h$help2j(d #info-hlpp$xcmds@hb#info-d"@(D.n`V#info-ldot  b~ end-of-fileVre-search-reverse2;\(\w\w*\),\(\w\w*\),\(\w\w*\);.region-around-matchZ4vZVZ6Z@(goto-character#info-@path,$ XPath: P   Lwhile!terror-occurred <Fre-search-forward"[ ]*\(.[^ ]*\)Z tl:j (&info-goto-menu-itemL error-message&No such menu item: 62\V#info-m 0B$v Menu item: 4^#info-mouse-menuldot$move-dot-to-mouse bobp|R end-of-line  narrow-region B[ ,:](search-forward  widen-regionP(< looking-at ^* \(\w*\):r jt0`"following-charZ:8*Z`( Up: 2,No menu item on this linevpJ\&PdJ*char-to-stringZ * menu:0V*This node has no menu.bNJLDt>(^* \(n\w*\):BX*Z:8lZ*^Z:" Ff\lp2Z,[ ]*(\(\w*\))[ ]*\(\w*\)ZhZj|H"x6Dir"VDIR"b$r [ ]*\(\w*\)&Z4.Missing node specification.N*6~h$JD#info-f0*$^ Footnote: Rr`:^4.:*note \(|2&No such footnote: DX,Z:8n\,`Z<$ (h^#info-phf4,2&(  Prev[ious]*:4.This node has no previous. df*J2 Next: vl#info-nvvB@@:search-reverseNext:0*This node has no next. bd.H0" Previous: pf#info-upV<":Up:.(This node has no up. |~VP|savfileB< Zhfkeyc 6$ r fF~f<R:4fetch-database-entry" \l`T>82Not found, should I create it? ZZ"&info-make-nodePblfnlm$vlR"!=*D8~0lF2l&No information on ($RD) *xr* mode-stringh Fbb;"+Z, 4R@p (^" *execute: *<< >>&backward-character2(execute-mlisp-buffer@Fz4! INFO Node: %m %M %pbX\convert-ITS-info-file2&current-buffer-namedZZ~nodeHasCode *\| <0 "preceding-charZ "[ ]*.(`"N [ ]*^4.(.*node: *\([^, ]*\)$ bad formatZZxvdj2T,.*file:[ ]*\([^, ]*\),Zߦv"8 \|\|\'*eobp.copy-region-to-bufferL6r ߺ:$Z2Wrote ޚP(Zxr* ߠ߾tJFile:  Node: ߮L:p0 "R߄":4(d) n,& [body] * menu: [*~8lV DZ c ݸZ0 *info-stack-syntax-tableBmodify-syntax-entryw -~  ,H ݀NBZ& define-keymap. "8  exit-emacs"@޲$justify-paragraphj.n  right-marginZM   ((PZ , Jj"> .,:Zz$<=Z0ݠ$illegal-operationP lD8Z:P,execute-extended-commandZxZs Zr <ܮ"redraw-display r@BR(scroll-one-line-downa@&scroll-one-line-upz  ۰? ېq phP >$n p f u(ھ next-page ږ:v  previous-page <b fe$PA1D$PB1D ٴl ٔ(d t6h Tވg4h"<novalue\l`T>82Not found, should I create it? ZZ"&info-make-nodePb    07justify.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Paragraph justification routines ; James Gosling (declare-buffer-specific paragraph-indent) (if (! (is-bound paragraph-indent)) (setq-default paragraph-indent 0)) (defun (justify-paragraph (error-occurred (save-excursion (beginning-of-line) (while (& (! (bobp)) (! (eolp)) (!= (following-char) '@')) (progn (previous-line)(beginning-of-line))) (if (| (eolp) (= (following-char) '@')) (progn (next-line)(beginning-of-line))) (if (& (! (eolp)) (!= (following-char) '@')) (progn last-col c-col (delete-white-space) (to-col (+ left-margin paragraph-indent)) (if (= (following-char) '@') (insert-character ' ')) (while (progn (end-of-line) (if (! (eobp)) (forward-character)) (& (! (eolp)) (!= (following-char) '@'))) (delete-previous-character) (delete-white-space) (if (& (< (preceding-char) '@') (| (= (preceding-char) '.') (= (preceding-char) '!') (= (preceding-char) '?'))) (insert-string " ")) (insert-string " ") ) (if (bolp) (backward-character)) (setq c-col (current-column)) (while (progn (setq last-col c-col) (insert-character '!') (delete-previous-character) ; (beginning-of-line) ; (if (= (following-char) '@') ; (insert-character ' ')) ; (end-of-line) (setq c-col (current-column)) (< c-col last-col)) (novalue)) ) ) ) (message "Done!") (novalue) ) ) ) Z c ݸZ0 *info-stack-syntax-tableBmodify-syntax-entryw -~  ,H ݀NBZ& define-keymap. "8  exit-emacs"@޲$justify-paragraphj.n  right-margin  08justify.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Ndeclare-buffer-specific$paragraph-indentzif6!"is-bound. setq-defaulttZdefunjustify-paragrapherror-occurredDsave-excursion$beginning-of-linewhile&bobpeolp@!="following-charZ@>progn  previous-linej<|T"=hZ@( next-line& Z@0last-colc-col&delete-white-spaceRto-col8+ left-marginFHZ@,insert-characterZ 2 end-of-lineHHXeobp$forward-character&6 btZ@,delete-previous-character><"preceding-charZ@Bh|Z.hZ!TZ?4 insert-string Dbolp&backward-character@setq<"current-columnpvPZ!V|novalue2messageDone!x-entryw -~  ,H ݀NBZ& define-keymap. "8  exit-emacs"@޲$justify-paragraphj.n  right-margin  08killring.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; killring.ml: kill and unkill text a la TOPS-20 ; HISTORY: ; 08-Dec-82 Jerry Agin (agin) at Carnegie-Mellon University ; Made some of Duane's code more efficient. ; Killing no longer moves the mark (but copying lines and ; unkilling still do). ; 03-Dec-82 Duane Williams (dtw) at Carnegie-Mellon University ; Fixed bug in forward-lines so that kill-lines works properly on ; empty lines when &kill-lines-magic is 1 and user tracks eol on ; ^N-^P. Also added kill-character and backward-kill-character, ;  and made kill-region warn the user when killing a large region. ; 28-Jul-82 Jerry Agin (agin) at Carnegie-Mellon University ; Moved the binding of append-next-kill from esc-a to ; esc-^W to avoid a conflict with backward-sentence. ; 14-Jul-82 Jerry Agin (agin) at Carnegie-Mellon University ; Created. ; This emacs macro file defines commands for killing and unkilling text. ; Commands to delete words, lines, and regions actually send the text to a ; ring of killbuffers, where they can be yanked back. Multiple killing ; commands in succession will concatenate text to the same buffer, so a ; single unkill can bring it all back. The unkill-pop command can cycle ; the kill ring to retrieve previously-killed stuff. ; The following keys are redefined: ; ^W kill-region ; ESC-w copy-region ; ^K kill-lines ; ESC-k copy-lines ; ESC-d kill-word ; ESC-h backward-kill-word ; ESC-del backward-kill-word ; ^D kill-character ; ^H backward-kill-character ; ^? backward-kill-character ; ESC-^W append next kill (pretend previous command was ^K) ; ^Y unkill ; ESC-y unkill-pop (kill the region, back up one on the kill ring, ; and unkill) ; Options: ; There are usually four buffers in the killring. If you want more buffers ; in the ring (say 8), execute the following mlisp functions BEFORE you load ; this file: ; (setq-default nrings 8) ; or else execute the following AFTER you load this file: ; (set-nrings 8) ; The ^K function will behave pretty much the same as the old ; delete-to-end-of-line did, unless you want something better. The improved ; version bases its behavior on the horizontal position of the cursor at the ; time the command is issued. If the cursor is at the beginning of the line, ; the command will assume you want to kill the entire line, including the ; return at the end. If you're at the end of the line, then it will remove ; the return separating this line from the next. Otherwise, it will kill ; just to the end of the line. To get this all to happen, execute the ; following mlisp function: ; (setq-default &kill-lines-magic 1) ; The variable &MaxKillSize is initialized to a value of zero. If you set ; it to a value such as 400 with the call ; (setq-default &MaxKillSize 400) ; then any kill function will ask the user for confirmation if the region ; being killed exceeds the size specified. (defun (region-size val (setq val (- (dot) (mark))) (if (>= val 0) val (- 0 val) ) ) (kill-region (if (| (<= &MaxKillSize 0) (<= (region-size) &MaxKillSize)  (= (substr (get-tty-string (concat "Do you really want to kill " (region-size) " characters? [no] ")) 1 1) "y") ) (progn (if (= (previous-command) -11) (progn (c-append-region) (erase-region)) (progn (next-killbuffer) (delete-region-to-buffer killbuffer))) (setq this-command -11) ) (setq this-command (previous-command)) ) ) (copy-region (if (= (previous-command) -11) (c-append-region) (progn (next-killbuffer) (copy-region-to-buffer killbuffer))) (setq this-command -11)) (c-append-region (if (>= (dot) (mark)) (append-region-to-buffer killbuffer) (progn (exchange-dot-and-mark) (yank-buffer killbuffer) (copy-region-to-buffer killbuffer)))) (append-next-kill (setq this-command -11)) (unkill ; leaves region around restored text (set-mark) (yank-buffer killbuffer) (setq this-command -25) ) (unkill-pop (if (= (previous-command) -25) (progn (delete-region-to-buffer killbuffer) (previous-killbuffer) ) ) (unkill) ) (set-up-killbuffer (setq killbuffer (concat "KB-" ringpos))) (next-killbuffer (setq ringpos (+ ringpos 1)) (if (> ringpos nrings) (setq ringpos (- ringpos nrings))) (set-up-killbuffer)) (previous-killbuffer (setq ringpos (- ringpos 1)) (if (< ringpos 1) (setq ringpos (+ ringpos nrings))) (set-up-killbuffer)) (forward-lines (if (& &kill-lines-magic (bolp)) (if (error-occurred ; beginning of line--kill whole lines (prefix-argument-loop (search-forward "\n")) ) (end-of-file) ) (error-occurred (prefix-argument-loop (if (eolp) (forward-character) ; end of line--kill crlf (end-of-line)))))) ; else--kill to end of line (kill-lines ; to append to killbuffer, set dot before killing (save-excursion (set-mark) (provide-prefix-argument prefix-argument (forward-lines)) (kill-region))) (copy-lines (set-mark) (provide-prefix-argument prefix-argument (forward-lines)) (copy-region)) (kill-word (save-excursion (set-mark) (provide-prefix-argument prefix-argument (forward-word)) (kill-region))) (backward-kill-word (save-excursion (set-mark) (provide-prefix-argument prefix-argument (backward-word)) (kill-region))) (kill-character (save-excursion (set-mark) (provide-prefix-argument prefix-argument (forward-character)) (kill-region))) (backward-kill-character (save-excursion (set-mark) (provide-prefix-argument prefix-argument (backward-character)) (kill-region))) ) (declare-global nrings) (if (= nrings 0) (setq-default nrings 4)) (declare-global ringpos) (declare-global killbuffer) (if (! (is-bound &kill-lines-magic)) (setq-default &kill-lines-magic 0)) (if (! (is-bound &MaxKillSize)) (setq-default &MaxKillSize 0)) (defun (set-nrings (save-excursion (setq nrings (arg 1 "Number of kill rings: ")) (setq ringpos (+ nrings 1)) (while (> ringpos 1) (setq ringpos (- ringpos 1)) (set-up-killbuffer) (temp-use-buffer killbuffer) (setq needs-checkpointing 0) ) ) ) ) (set-nrings nrings) (bind-to-key "kill-region" "") ; ^W (bind-to-key "copy-region" "w") ; ESC-w (bind-to-key "copy-region" "W") ; ESC-W (bind-to-key "kill-lines" " ") ; ^K (bind-to-key "copy-lines" "k") ; ESC-k (bind-to-key "copy-lines" "K") ; ESC-K (bind-to-key "kill-word" "d") ; ESC-d (bind-to-key "kill-word" "D") ; ESC-D (bind-to-key "backward-kill-word" "h") ; ESC-h (bind-to-key "backward-kill-word" "H") ; ESC-H (bind-to-key "backward-kill-word" "") ; esc rubout (bind-to-key "kill-character" "") ; ^D (bind-to-key "backward-kill-character" "") ; ^H (bind-to-key "backward-kill-character" "") ; rubout (bind-to-key "append-next-kill" "") ; ESC-^W (bind-to-key "unkill" "") ;^Y (bind-to-key "unkill-pop" "y") ; ESC-y (bind-to-key "unkill-pop" "Y") ; ESC-Y ll-region (if (| (<= &MaxKillSize 0) (<= (region-size) &MaxKillSize)   09killring.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo" 0defun region-sizeval`setqB-dotmarkTif$>=bZTZ@ kill-regionL|><=  &MaxKillSizeZ=substrget-tty-stringtconcat.Do you really want to kill & characters? [no] ZZy6progn(2$previous-commandZH"c-append-region  erase-regionpl"next-killbufferHdelete-region-to-buffer killbuffer.  this-commandZ copy-regionZZ:~.copy-region-to-buffer4 LZfv,<0append-region-to-buffer^(exchange-dot-and-mark$ yank-buffer "t8append-next-kill<hZVunkillset-mark fZv unkill-popRZ8 x&previous-killbuffer>fset-up-killbufferB8@6KB-ringpos."+ZX"4>nringsvjr ^Lp@ZF"<Z*` forward-linesf2P&$&kill-lines-magicbolperror-occurred^prefix-argument-loop6search-forward  end-of-filelff`,eolp$forward-character end-of-line kill-linessave-excursion"Rprovide-prefix-argument"prefix-argument< copy-linesZ kill-word>,f,Hl  forward-worddbackward-kill-word>,  backward-wordFkill-character$hHnbackward-kill-characterDT26Z&backward-character(declare-global`HX.NZ. setq-default Z  P6!"is-boundZ, 8V,ZLF set-nrings(TNHargZ*Number of kill rings: ZwhileTZ R@d4Z(temp-use-buffer4&needs-checkpointingZ ,8 bind-to-keyZ"w"W  "hXk"F6K"$Pd".D"fh"DH"" zd Z :j"x "y"Yte  09learn.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Package for the emacs tutorial (defun (learn (save-window-excursion (delete-other-windows) (switch-to-buffer "emacs-tutorial") (erase-buffer) (insert-file "/emacs/databases/tutorial.txt") (setq needs-checkpointing 0) (recursive-edit) ) )) l-regionL|><=  &MaxKillSizeZ=substrget-tty-stringtconcat.  0:learn.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"defunlearnlsave-window-excursion(delete-other-windowsFswitch-to-buffer"emacs-tutorial  erase-bufferN insert-file0/emacs/databases/tutorial.txtFsetq&needs-checkpointingZ"recursive-editsubstrget-tty-stringtconcat.  0:lines.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl" (defun (display-line-number orig page line pagetop (save-excursion (setq orig (dot)) (beginning-of-file) (setq page 1) (setq pagetop (dot)) (while (& (! (error-occurred (search-forward " "))) ;^L (<= (dot) orig)) (setq page (+ page 1)) (setq pagetop (dot)) ) (goto-character pagetop) (setq line 1) (while (& (! (error-occurred (search-forward "\n"))) (<= (dot) orig)) (setq line (+ line 1)) ) ) (message "Line " line (if (> page 1) (concat " in page " page) "" ) ", " (- (dot) 1) " of " (buffer-size) " characters" ) ) (beginning-of-next-line (if (error-occurred (prefix-argument-loop (search-forward "\n"))) (end-of-file))) )  erase-regionpl"next-killbufferHdelete-region-to-buffer killbuffer.  this-commandZ copy-regionZZ:~  0:lines.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"defundisplay-line-numberorigpagelinepagetop:save-excursion4setqhdot$beginning-of-file:ZVwhile&l!Xerror-occurred6search-forward "<=N.Z"+@Z\(goto-character.d Zd>&  46  DZLmessageLine fif">Z<concat in page , "- Z of  buffer-size charactersbeginning-of-next-line^:.4prefix-argument-loop " end-of-fileange-dot-and-mark$ yank-buffer "t8append-next-kill<hZVunkillset-mark fZv unkill-popRZ8 x&previous-killbuffer>f  0;lisp.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl" (defun (paren-pause dot instabs temp (if (eolp) (delete-white-space)) (setq instabs (bolp)) (setq dot (dot)) (insert-character ')') (save-excursion (if (| (error-occurred (setq temp (ucb-backward-paren))) (! temp)) (message "Can't find balancing paren") (progn (if instabs (save-excursion descol (setq descol (current-column)) (goto-character dot) (to-col descol))) (if (dot-is-visible) (sit-for 5) (progn (beginning-of-line) (set-mark) (end-of-line) (message (region-to-string)) ) ) ) ) ) ) (nl-indent col dot bal (delete-white-space) (setq dot (dot)) (setq col (current-indent)) (save-excursion (beginning-of-line) (while (< (current-column) col) (forward-character)) (if (looking-at "elseif") (re-indent-thenelse 1) (| (looking-at "then") (looking-at "else")) (re-indent-thenelse 3))) (save-excursion (if (setq bal (ucb-backward-balanced-paren-line)) ; bal = 1 means hit beginning of line with ; paren count = 0; ; bal = -1 means hit too many left parens (progn (if (= bal -1) (if (bolp) (setq col 4) (progn (setq col (current-column)) (forward-character) (if (= (following-char) '(') (setq col (+ col 1)) (| (looking-at "prog ") (looking-at "let") (looking-at "bind") (looking-at "lambda") (looking-at "caseq")) (setq col (+ col 3)) (progn (use-syntax-table "wordall") (forward-skip-word) (forward-skip-non-word) (use-syntax-table Current-syntax-table) (if (| (> (dot) dot) (= (following-char) ';')) (setq col (+ col 3)) (setq col (current-column))))))) ; bal = 0 so we are at line with matching ; paren or on same line if no parens (progn (setq col (current-indent)) (while (< (current-column) col) (forward-character))  (if (| (looking-at "then") (looking-at "else")) (setq col (+ col 5)))))))) (newline) (to-col col)) ; arg 1 is amount past "(If" to skip (re-indent-thenelse col (set-mark) (setq col (current-indent)) (insert-character ')') (if (ucb-backward-paren) (progn (if (| (looking-at "(If") (looking-at "(if")) (setq col (+ (current-column) (arg 1)))))) (goto-character (mark)) (delete-next-character) (delete-white-space) (to-col col)) (re-indent-line (beginning-of-line) (delete-white-space) (if (looking-at "elseif") (re-indent-thenelse 1) (| (looking-at "then")(looking-at "else")) (re-indent-thenelse 3) (! (bobp)) (progn (backward-character) (nl-indent) (delete-next-character)))) (indent-sexpr start end (save-excursion (if (! (= (following-char) '(')) (error-message "Not sitting on left parenthesis") (progn (setq start (dot)) (ucb-forward-paren) (end-of-line) (setq end (dot)) (goto-character start) (next-line) (while (& (! (eobp)) (<= (dot) end)) (re-indent-line) (next-line) (if (! (eobp)) (beginning-of-line))))))) (indent-lisp-function (save-excursion (if (error-occurred (re-search-reverse "^(def")) (error-message "Can't find function")) (indent-sexpr) (message "Done!"))) (re-indent-funcs arg (progn (setq arg (get-tty-character)) (if (= arg '=') (re-indent-line) (= arg '%') (indent-sexpr) (= arg 'f') (indent-lisp-function) (error-message "Bad = option")))) (back-function (re-search-reverse "^(de")) (forw-function (re-search-forward "^(de")) (forward-sexpr (search-forward "(") (ucb-forward-paren)) (backward-sexpr (search-reverse ")") (ucb-backward-paren)) (semi-colon-comment (if (eolp) (progn (if (! (bolp)) (to-col comment-column)) (setq left-margin comment-column) (setq right-margin 77) (setq prefix-string "; ") (insert-string "; ")) (insert-character ';')) ) (ml-paren ; may be bound to the left paren "(" ; for mlisp command expansion (insert-character '(') (insert-string (get-tty-command " (")) (insert-character ' ') (novalue)) (lisp-mode (local-bind-to-key "paren-pause" ')') (local-bind-to-key "forward-paren" "\e)") (local-bind-to-key "backward-paren" "\e(") (local-bind-to-key "nl-indent" "\n") (local-bind-to-key "forward-sexpr" "\^x)") (local-bind-to-key "backward-sexpr" "\^x(") (local-bind-to-key "re-indent-funcs" "\^x=") (local-bind-to-key "indent-lisp-function" "\ej") (local-bind-to-key "re-indent-line" "\ei") (local-bind-to-key "back-function" "\^x[") (local-bind-to-key "forw-function" "^x]") (local-bind-to-key "semi-colon-comment" ";") (setq mode-string "lisp") (use-syntax-table "lisp") (setq Current-syntax-table "lisp") (novalue)) (mlisp-mode (lisp-mode) ; set up local keys (use-syntax-table "mlisp") (setq Current-syntax-table "mlisp") (local-bind-to-key "expand-mlisp-word" "\^x~") (local-bind-to-key "execute-mlisp-buffer" "\^x`") (setq mode-string "mlisp") (novalue)) ) ; the mlisp syntax table is like lisp except vertical bar is not quoting (use-syntax-table "mlisp") (modify-syntax-entry "() (") (modify-syntax-entry ")( )") (modify-syntax-entry """ '") (modify-syntax-entry """ """) (modify-syntax-entry "\\ \\") (modify-syntax-entry "w -+!$%^&=_~:/?|*<>") ; lisp syntax table (use-syntax-table "lisp") (modify-syntax-entry "() (") (modify-syntax-entry ")( )") (modify-syntax-entry """ |") (modify-syntax-entry """ """) (modify-syntax-entry "\\ \\") (modify-syntax-entry "w -+!$%^&=_~:/?*<>") ; this syntax table makes almost everything a word, making it easy ; to skip white space (use-syntax-table "wordall") (modify-syntax-entry "w -+!$%^&=_~:/?*<>|()""';") (declare-global Current-syntax-table) ) (while (< (current-column) col) (forward-character))   0;lisp.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"defun paren-pausedotinstabstempTifeolp&delete-white-space6setqfbolp,&,insert-characterZ)save-excursionb|Terror-occurred22&ucb-backward-paren!Hmessage.Can't find balancing parenprogn2descol.Z"current-column(goto-charactern to-colz"dot-is-visible"sit-forZ$beginning-of-lineset-mark end-of-line*T$region-to-string` nl-indentcol>bal."current-indent$\while <N$forward-character8 looking-atelseif.re-indent-thenelseZB@thenzelseZ|@Hr4 ucb-backward-balanced-paren-line6n0"=ZZn ^rPH0"following-charZ(.ft"+ZZ,prog letbind lambdacaseq :Z0>use-syntax-tablewordall$forward-skip-word(forward-skip-non-word.z(Current-syntax-tablerj:T >Z; ~Z^lzFT6D p  Znewline 4Z)&Rz>V(If:(if6$2*argZmark(delete-next-character re-indent-lineH \tZ < 0\Z bobp8d&backward-character indent-sexprstartendrlpnZ(R error-message2Not sitting on left parenthesisfRR$ucb-forward-parent.  next-line~T&neobp"<= |indent-lisp-functionRtB<re-search-reverse^(def,B&Can't find function|Done!re-indent-funcs~0$get-tty-characterzZ=6Z%Zf&@  Bad = option> back-function^(deJ forw-function*re-search-forward\ forward-sexpr6search-forward(^backward-sexpr6search-reverse) :semi-colon-commentZ: ("comment-column* left-margin.  right-marginZM<\  prefix-string; & insert-stringBZ;ml-parenZ(>8get-tty-command (Z novalueV lisp-mode2local-bind-to-keybZ)<  forward-paren)>"backward-paren( X "8)"("="j"Ti"`["l|^x] J^;<f mode-stringlisp 6 mlisp-modepmlisp@v$expand-mlisp-word~D6(execute-mlisp-buffer`.J 8@modify-syntax-entry() ( )( ) " ' " " d\ \0D*w -+!$%^&=_~:/?|*<>  ( < " | P d.(w -+!$%^&=_~:/?*<> <4~.w -+!$%^&=_~:/?*<>|()"';(declare-globalLprog letbind lambdacaseq :Z0>use-syntax-tablewordall$forward-skip-word(forward-skip-non-word.z(  1mark-ring.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(declare-global mark-number top-mark mark-ring-size Mark-0 Mark-1 Mark-2 Mark-3 Mark-4 Mark-5 Mark-6 Mark-7 Mark-8 Mark-9) (setq mark-number 0) (setq top-mark "Mark-0") (setq mark-ring-size 10) (defun (mark-cycle-ring (setq top-mark (concat "Mark-" (setq mark-number (% (+ mark-number (arg 1)) mark-ring-size))))) (mark-push (error-occurred (execute-mlisp-line (concat "(setq " (mark-cycle-ring 1) " (mark))"))) (set-mark)) (mark-pop n (setq n (execute-mlisp-line top-mark)) (if n (progn (pop-to-buffer n) (goto-character n) (exchange-dot-and-mark) (mark-cycle-ring -1)) (goto-character (mark)))) (mark-set/pop (if prefix-argument-provided (mark-pop) (mark-push))) ) Ti"`["l|^x] J^;<f mode-stringlisp 6 mlisp-modep  1mark-ring.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"declare-global mark-numbertop-mark"mark-ring-sizeMark-0Mark-1Mark-2Mark-3Mark-4Mark-5Mark-6Mark-7Mark-8Mark-9&setqZZ Hdefunmark-cycle-ring~6concatMark-^@R%8+argZ mark-pusherror-occurredpexecute-mlisp-lineJ(setq Z (mark))set-mark4mark-popn."<top-markifprogn& pop-to-buffern(goto-characterF(exchange-dot-and-marktZmarkt mark-set/popT,prefix-argument-provided~ mark-push)( ) " ' " " d\ \0D*w -+!$%^&=_~:/?|*<>  ( < " |  1newtime.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This package simply adds a time-of-day clock to the status line ; of every window. Uses a separate process /emacs/lib/emacstime to ; actually get the time, so therefore needs the process control facilities. ; Simply load this file and execute "time". The corresponding procedure ; "notime" will turn it back off and kill the emacstime process. (declare-global time-running) (setq time-running 0) (defun (time dead (if (| (setq dead (< (process-status "newtime") 0)) (! time-running)) (save-excursion (if (! dead) (kill-process "newtime")) (setq global-mode-string "time") (setq time-running 0) (save-excursion (temp-use-buffer "newtime") (erase-buffer) (setq needs-checkpointing 0)) (start-filtered-process "/emacs/lib/emacstime +n 60" "newtime" "newtime-filter"))) (novalue) ) ) (defun (notime (if (= (process-status "newtime") 1) (progn (kill-process "newtime") (setq global-mode-string "") (message """time"" killed"))  (error-message """time"" already dead")))) (defun (newtime-filter (setq global-mode-string (process-output)) (setq time-running 1) (sit-for 0) ) ) t mark-set/popT,prefix-argument-provided~ mark-push)( ) " ' " " d\ \0D*w -+!$%^&=_~:/?|*<>  ( < " |  1newtime.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Bdeclare-global  time-running&setqZdefuntimedeadJif|dlX<<process-statusnewtimeZ!save-excursion8: & kill-processt2&global-mode-stringb<Zd(temp-use-buffer  erase-buffer4&needs-checkpointingZstart-filtered-process./emacs/lib/emacstime +n 60N"newtime-filternovalueX notime(= Z~progn  0:message  "time" killedF error-message&"time" already deadpFj."process-outputZ"sit-forZ) ) ) t mark-set/popT,prefix-argument-provided~ mark-push)( ) " ' " " d\ \0D*w -+!$%^&=_~:/?|*<>  ( < " |  1normal-mode.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (normal-mode (setq right-margin 1000) (setq left-margin 1) (use-abbrev-table "normal-mode") (remove-all-local-bindings) (setq mode-string "Normal") (novalue) )) if|dlX<<process-statusnewtimeZ!save-excursion8: & kill-processt2&global-mode-stringb<ZdQ  R1normal-mode.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Pdefun8 normal-mode@setq  right-marginZ, left-marginZ*use-abbrev-tableV,remove-all-local-bindings>B mode-stringNormalnovalue!save-excursion8: & kill-processt2&global-mode-stringb<Zd    1occur.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(progn ; this code was modified on or about Thu Apr 9 06:36:37 1981 ; by Doug Philips to add the &occurrences-extra-lines variable. ; ; this code was written on or about Mon Feb 2 06:11:03 1981 ; by Doug Philips to imitate the $Xoccurrences command in Twenex Emacs ; Unfortunately, this emacs doesn't allow one to scribble on the screen, and ; then have emacs restore the screen, which would be the way to go with ; this command. ; ; What the global variable is used for: ; ; &occurrences-extra-lines is a global variable that controls how many extra ; surrounding lines are printed in addition to the line containing the ; string found. If this variable is 0 then NO additional lines are printed. ; If this variable is greater than 0 then it will print that many lines ; above and below the line on which the string was found. When printing ; more than one line per match in this fashion, it will also print a ; separator of '----------------' so you can tell where the different ; matches begin and end. At the end of the buffer it prints ; '<<>>'. ; (declare-global &occurrences-extra-lines) (if (= "" &occurrences-extra-lines)(setq &occurrences-extra-lines 0)) (defun (occurrences occ-string c buf-name bpp o-count l-count temp-pos Occur-String (setq o-count (setq l-count 0))(setq buf-name (current-buffer-name)) (setq bpp (dot)) (setq occ-string (get-tty-string "Search for all occurrences of: ")) (switch-to-buffer "excursions")(erase-buffer) (switch-to-buffer buf-name)(goto-character bpp) (while (! (error-occurred (search-forward occ-string))) (setq o-count (+ 1 o-count))(setq l-count &occurrences-extra-lines) (beginning-of-line)(setq temp-pos (dot)) (while (> l-count 0) (&PL-Begin) (setq l-count (- l-count 1))) (set-mark) (goto-character temp-pos) (&NL-Begin) (setq temp-pos (dot)) (setq l-count &occurrences-extra-lines) (while (> l-count 0) (&NL-Begin) (setq l-count (- l-count 1))) (setq Occur-String (region-to-string)) (switch-to-buffer "excursions") (end-of-file) (if (< 0 &occurrences-extra-lines) (progn (insert-string "----------------") (newline))) (insert-string Occur-String) (switch-to-buffer buf-name)(goto-character temp-pos) ) ;;; End of while loop searching (switch-to-buffer "excursions") (save-excursion (end-of-file)(insert-string "<<>>") (newline)) ; (setq user-mode-line 1) (setq mode-line-format (concat "Found " o-count " occurrences of '" occ-string "' after position: " bpp " in: " buf-name)) (beginning-of-file) (while (! (eobp)) (message "--More?--(space=next page, ^G=abort, anything else is executed)") (setq c (get-tty-character)) ; grab a character (if (= c ' ') (progn (end-of-window) ; keep going (if (! (eobp)) ; but not if on last page! (next-page) ) ) (= c 7) (end-of-file) ; quit (progn (push-back-character c); execute-it (end-of-file) ) ) ) (switch-to-buffer buf-name) (goto-character bpp) o-count ) ;;; End of occurrences (&NL-Begin (next-line) (beginning-of-line)) (&PL-Begin (previous-line) (beginning-of-line)) ) ) <= |indent-lisp-functionRtB<re-search-reverse^(def,B&Can't find function|Done!re-indent-funcs~0$get-tty-characterz  l  1occur.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo" prognNdeclare-global,&occurrences-extra-linesjif.=&setq|Zdefunl occurrences occ-stringcbuf-namebppo-countl-counttemp-pos  Occur-String Z2<&current-buffer-name"&dot``Tget-tty-string2Search for all occurrences of: Bswitch-to-buffer excursions  erase-buffer &(goto-characterwhile^!Jerror-occurred(search-forwardV."+ZJ$beginning-of-line~r">>Z &PL-Begin.:"-Zset-mark b &NL-BeginJ:@>*rZ XNLZ0dn$region-to-string 8V end-of-file"<Zxd8D insert-string$----------------newline  v T ^|Zsave-excursion,N&<<>>f$mode-line-formatconcatFound V$ occurrences of '&' after position:  in: $beginning-of-fileeobplmessageR?--More?--(space=next page, ^G=abort, anything else is executed)0h$get-tty-characterZ Tt  end-of-window.  next-page>Z8,push-back-characterZ |  (z next-line,  previous-line\mat (concat "Found " o-count " occurrences of '" occ-string "' after position: o k p1paragraphs.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(if (! (is-bound paragraph-delimiters)) (progn (declare-global paragraph-delimiters) (setq paragraph-delimiters "^\n\\|^[@.' \t].*\n") )) (defun (forward-paragraph (beginning-of-line) (re-search-forward paragraph-delimiters) (while (looking-at "") (search-forward ""))) ) (defun (backward-paragraph (beginning-of-line) (previous-line) (while (& (looking-at paragraph-delimiters) (! (bobp))) (progn (previous-line) (beginning-of-line))) (if (error-occurred (re-search-reverse "")) (beginning-of-file)) (while (looking-at "") (search-forward ""))) ) t-tty-string2Search for all occurrences of: Bswitch-to-buffer excursions  erase-buffer &(goto-characterwhile^!Jerror-occurred(search-forwardV."+ZJ$' j (1paragraphs.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"ifX!Dis-bound(paragraph-delimitersprogn(declare-global@setq"^ \|^[@.' ].* defunforward-paragraph$beginning-of-line*re-search-forwardrwhile2 looking-at(search-forward<6backward-paragraph  previous-lineV@>& >bobpvrLerror-occurred*re-search-reverse$beginning-of-filet  goto-characterwhile^!Jerror-occurred(search-forwardV."+ZJ$) i ) +process.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; This package provides assistance for using the process control facilities ; of emacs to run interactive programs in windows. ; marker for typeahead (declare-buffer-specific process-output-marker) ; for grab-last-line function (declare-buffer-specific last-line) (setq-default &shell-command "/bin/shell +e") (if (| (! (is-bound shell-prompt-template)) (= shell-prompt-template "")) (setq-default shell-prompt-template "^++ ")) ; Bound to carriage return. This function sends the last line of input to ; the current process. If we are in the middle of the buffer, we guess ; about how much to send to the process, then we copy it to the end and send ; it. If we're at the end of the buffer, we send the current region. (defun (pr-newline (pr-do-newline 0) ) ) ; Similar to pr-newline except that if it is invoked on a line in the middle ; of the buffer, that line is set to the subprocess and the rest of the ; buffer is erased. (defun (pr-newline-kill (pr-do-newline 1) ) ) ; Shared code for pr-newline and pr-newline-kill (defun (pr-do-newline (end-of-line) (if (eobp) (progn (newline) (if (= (dot) process-output-marker) (progn ; hack for special case (backward-character) (beginning-of-line) (if (looking-at shell-prompt-template) (region-around-match 0)) ) (goto-character process-output-marker)) (set-mark) (end-of-file) (setq last-line (region-to-string)) ) (progn (beginning-of-line) (if (look ing-at shell-prompt-template) (region-around-match 0)) (set-mark) (end-of-line) (forward-character) (setq last-line (region-to-string)) (if (= (arg 1) 0) (progn (end-of-file) (set-mark) (insert-string last-line) ) (progn (set-mark) (end-of-file) (erase-region) ) ) ) ) (string-to-process (active-process) last-line) (setq process-output-marker (dot)) (set-mark) ) ) ; Expand a file name inline (defun (expand-inline-filename (save-excursion (set-mark) (push-back-character ' ') (while (& (! (bolp)) (| (>= (preceding-char) 'A') (= (preceding-char) '$') (& (>= (preceding-char) '.') (<= (preceding-char) '9')))) (backward-character)) (push-back-string (region-to-string)) (erase-region)) (insert-string (get-tty-file ": file ") " "))) ; Send an end-of-file signal to the process if we're at the end of the ; buffer, else just do what this key normally does. (defun (send-eot (if (eobp) (progn (setq process-output-marker (dot)) (string-to-process (current-buffer-name) "\^d") ) (prefix-argument-loop (execute-mlisp-line (concat "(" (global-binding-of (last-key-struck)) ")")) ) ) ) ) ; Simulate keyboard interrupts. (defun (send-int-signal (end-of-file) (setq process-output-marker (dot)) (int-process (active-process)))) (defun (send-quit-signal (end-of-file) (setq process-output-marker (dot)) (quit-process (active-process)))) ; Insert the last line the user sent to the process in this buffer. (defun (grab-last-line (end-of-file) (insert-string last-line) (delete-previous-character) ) ) ; Insert this line at end of buffer for user. (defun (grab-current-line prompt line ; Find current prompt. (save-excursion (end-of-file) (set-mark) (beginning-of-line) (setq prompt (region-to-string))) ; If this line has same prompt, skip it. (beginning-of-line) (if (looking-at (quote prompt)) (provide-prefix-argument (length prompt) (forward-character))) ; Now grab text and insert it at end. (set-mark) (end-of-line) (setq line (region-to-string)) (end-of-file) (set-mark) (insert-string line) (novalue) ) ) ; Clever hook to cd emacs with shell cds. (defun (shell-cd (if (= (- (dot) (mark)) 2) (progn (if (error-occurred (cd (get-tty-file ": cd "))) (progn (delete-previous-word) (message "There is no such directory")) (progn (insert-string " " (working-directory)) (pr-newline))) 0) 1))) (defun (shell-chd (if (= (- (dot) (mark)) 3) (progn (if (error-occurred (cd (get-tty-file ": chd "))) (progn (delete-previous-word) (message "There is no such directory")) (progn (insert-string " " (working-directory)) (pr-newline))) 0) 1))) (defun (lisp-kill-output (end-of-file) (beginning-of-line) (set-mark) (previous-line) (re-search-reverse "^[0-9][0-9]*\.") (next-line) (erase-region) (backward-character) (insert-string " [output flushed]") (end-of-file) (setq process-output-marker (dot)) ) ) (defun (generic-kill-output prompt (end-of-file) (save-excursion (set-mark) (beginning-of-line) (setq prompt (region-to-string))) (beginning-of-line) (set-mark) (re-search-reverse (concat "^" (quote prompt))) (if (! (dot-is-visible)) (line-to-top-of-window)) (next-line) (erase-region) (insert-string "[output flushed]\n") (end-of-file) (setq process-output-marker (dot)) ) ) ; Go to a shell buffer and run a shell there. (defun (new-shell name (setq name (arg 1 ": new-shell (buffer name) ")) (pop-to-buffer name) (if (< (process-status name) 0) (progn (use-abbrev-table "shell") (use-syntax-table "shell") (setq abbrev-mode 1) (setq needs-checkpointing 0) (setq wrap-long-lines 0) (local-bind-to-key "generic-kill-output" "\^X\^K") (local-bind-to-key " expand-inline-filename" "\^J") (local-bind-to-key "pr-newline" "\^M") (local-bind-to-key "pr-newline-kill" "\e\^M") (local-bind-to-key "send-eot" "\^d") (local-bind-to-key "send-int-signal" "\^c") (local-bind-to-key "send-quit-signal" "\^\") (local-bind-to-key "grab-last-line" "\e=") (local-bind-to-key "grab-current-line" "\e+") (if (= shell-prompt-template "") ; hack for setq-default (setq shell-prompt-template "^++")) (error-occurred (shell-hook)) (end-of-file) (setq process-output-marker (dot)) (set-mark) (start-filtered-process &shell-command name "process-filter" "nothing") )) (end-of-file) (novalue) ) ) (defun (shell (new-shell "shell") ) ) ; Like the shell command for lisp (franz lisp) (defun (lisp (pop-to-buffer "lisp") (setq &lisp-process 1) (message "Starting up a franz-lisp process") (sit-for 10) (setq needs-checkpointing 0) (if (bobp)  (progn (lisp-mode) (local-bind-to-key "lisp-kill-output" "\^X\^K"))) (if (< (process-status "lisp") 0) (progn (local-bind-to-key "pr-newline" "\^M") (local-bind-to-key "pr-newline-kill" "\e\^M") (local-bind-to-key "send-eot" "\^d") (local-bind-to-key "send-int-signal" "\^c") (local-bind-to-key "send-quit-signal" "\^\") (local-bind-to-key "grab-last-line" "\e=") (local-bind-to-key "grab-current-line" "\e+") (error-occurred (shell-hook)) (end-of-file) (setq process-output-marker (dot)) (set-mark) (start-filtered-process "lisp" "lisp" "process-filter" "nothing") ) ) (end-of-file) (novalue) ) ) ; Like the shell command for common-lisp (defun (cl (pop-to-buffer "cl") (setq &cl-process 1) (message "Starting up a common-lisp process") (sit-for 10) (setq needs-checkpointing 0) (if (bobp) (progn (lisp-mode) (local-bind-to-key "lisp-kill-output" "\^X\^K"))) (if (< (process-status "cl") 0) (progn (local-bind-to-key "pr-newline" "\^M") (local-bind-to-key "pr-newline-kill" "\e\^M") (local-bind-to-key "send-eot" "\^d") (local-bind-to-key "send-int-signal" "\^c") (local-bind-to-key "send-quit-signal" "\^\") (local-bind-to-key "grab-last-line" "\e=") (local-bind-to-key "grab-current-line" "\e+") (error-occurred (shell-hook)) (end-of-file) (setq process-output-marker (dot))  (set-mark) (start-filtered-process "cl" "cl" "process-filter" "nothing") ) ) (end-of-file) (novalue) ) ) (defun (update-processes n1 n2 (setq n1 (current-file-name)) (if (string-suffix-equal n1 ".cl") (progn (if buffer-is-modified (write-current-file) ) (if (= &cl-process 0) (progn (cl) ) ) (pop-to-buffer "cl") (setq n1 (substr n1 1 (- (length n1) 3))) (insert-string (concat ":ld " n1)) (pr-newline) ) ; else not ".cl" (if (string-suffix-equal n1 ".l") (progn (if buffer-is-modified (write-current-file) ) (if (= &lisp-process 0) (progn (lisp) ) ) (pop-to-buffer "lisp") (insert-string (concat "(load \"" n1 "\")")) (pr-newline) ) ; else not ".cl" and not ".l" (message "This is not a \".cl\" nor a \".l\" buffer") ) ) ) ) (defun (string-suffix-equal s1 s2 n match (setq s1 (arg 1)) (setq s2 (arg 2)) (setq n (length s2)) (setq s1 (substr s1 (- 0 n) n)) (setq match 1) (while (> n 0) (setq match (& match (= (string-to-char s1) (string-to-char s2)))) (setq n (- n 1)) (setq s1 (substr s1 2 n)) (setq s2 (substr s2 2 n)) ) (+ match 0) ) ) ; insert output at process-output-marker (defun (process-filter pr-dot pr-buff (setq pr-buff (dot)) (temp-use-buffer MPX-process) (setq pr-dot (dot)) (goto!-character process-output-marker) (insert-string (process-output)) (if (= pr-dot process-output-marker) (setq pr-dot (dot)) ; move dot after new text ) ; if was at output-marker (if (= (mark) process-output-marker) (set-mark) ; drag mark along too ) (setq process-output-marker (dot)) ; move our mark after new text (goto-character pr-dot) ; where users dot was (pop-to-buffer pr-buff) (sit-for 0) ) ) ; Set up global stuff. (save-excursion (temp-use-buffer "shell") (use-abbrev-table "shell") (setq abbrev-mode 1) (define-local-abbrev "~" (getenv "HOME")) (define-hooked-local-abbrev "cd" "cd" "shell-cd") (define-hooked-local-abbrev "chd" "chd" "shell-chd") (use-syntax-table "shell") (modify-syntax-entry "w ~") (setq right-margin 10000) (bind-to-key "update-processes" "\e\m") (declare-global &lisp-process) (declare-global &cl-process) (novalue)) or 10) (setq needs-checkpointing 0) (if (bobp) $ h $ process.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Rdeclare-buffer-specific(process-output-marker" last-lineb setq-default"&shell-command  /bin/shell +eif|X!Dis-bound(shell-prompt-template.=$^++ ^defunF pr-newline( pr-do-newline:60pr-newline-kill:\pV end-of-linereobpprognnewline""dotT&backward-character$beginning-of-lineX$ looking-at.region-around-match:(goto-characterset-mark end-of-fileBsetqZ$region-to-string ^  :\$forward-characterfx@,arg::8& insert-string^2  erase-regionLstring-to-process"active-processl: expand-inline-filenamensave-excursion.push-back-character: while&bolp@>="preceding-char:A:$>x:.$<=:9*push-back-stringT: get-tty-file: file  \"Vsend-eot:,X.h@h&current-buffer-nameprefix-argument-loopexecute-mlisp-lineconcat(Fglobal-binding-of"last-key-struck)d^send-int-signal$ int-processhbbsend-quit-signalZr@& quit-processgrab-last-line< insert-str!ing last-line,delete-previous-characterdefungrab-current-linepromptlinevsave-excursion*Bsetq$region-to-stringif< looking-atquote nprovide-prefix-argument length$forward-characterT novalue shell-cd@2-Bmark:Fprogn&tVerror-occurred4cd@: cd v(delete-previous-wordHmessage.There is no such directoryT0J$working-directory pr-newline::T shell-chd :N\:vnh,& : chd 6 N&::0*lisp-kill-output   previous-lineDre-search-reverse  ^[0-9][0-9]*. next-lineh.^( [output flushed]44(process-output-marker8^2generic-kill-outputn$Jb,&^  V(z"dot-is-visible(line-to-top-of-window:*$[output flushed] >&8 new-shellnameH<<:.: new-shell (buffer name) & pop-to-buffervhD<(process-statusB:,<use-abbrev-tableshell*use-syntax-table,j abbrev-mode:4>&needs-checkpointing:0 "wrap-long-lines:@local-bind-to-key D*expand-inline-filename 0 >`"pr-newline-kill ("send-eot<"send-int-signal >"grab-last-line="`+~if4j(shell-prompt-templateV4setq^++$t shell-hookR4(process-output-markerset-markrstart-filtered-processJ"process-filternothingnovalue@defun(" new-shelllisp& pop-to-buffer.@  &lisp-process:Nmessage4 Starting up a franz-lisp process"sit-for: 4&needs-checkpointing:b$bobpD lisp-mode" $ :rZ."pr-newline-killhxr."send-int-signalVD2x d|cl ^, &cl-process::z4!Starting up a common-lisp process: @:"* :h|Pzr` L\V"6Jupdate-processesn1n20$current-file-nameb:Bstring-suffix-equal|.cl"R&buffer-is-modified&write-current-file&.: P \NBsubstr: :D insert-string$~:ld J"2.lx&: F@ R4BH<(load "") >R8%This is not a ".cl" nor a ".l" bufferbs1s2nmatch2:: |2rZ&N:f`@h:&">,:R,F  :(string-to-char  :&zn:&lj^:f"+`:tdnpr-dotpr-buffv@temp-use-buffer MPX-processx$(goto-character("process-output*\2`XFz Z h:save-excursion *use-abbrev-table|X:ldefine-local-abbrev~2getenvHOMEfdefine-hooked-local-abbrevcdshell-cd>chd shell-chd*use-syntax-table.@modify-syntax-entryw ~.  right-margin:': bind-to-key~m(declare-global Tsend-eot<"send-int-signal >"grab-last-line="`+~if4j(shell-prompt-templateV4setq^++$t shell-hookR4(process-output-markerset-markrstart-filtered-process g  profile.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(defun (help (info))) (autoload "info" "info.ml") (autoload "dired" "dired.ml") (autoload "incremental-search" "incr-search.ml") (autoload "reverse-incremental-search" "incr-search.ml") (autoload "electric-c-mode" "electric-c.ml") (autoload "lisp-mode" "lisp.ml") (autoload "mlisp-mode" "lisp.ml") (autoload "lisp" "process.ml") (autoload "cl" "process.ml") (setq quick-redisplay 1) (setq default-mode-line-format " %[Buffer: %b%* File: %f %M (%m) %p%]") (setq backup-before-writing 1) (setq backup-by-copyi"ng-when-linked 1) (load "killring") (load "buffer-edit") (setq-default &kill-lines-magic 1) (auto-execute "electric-c-mode" "*.c") (auto-execute "electric-c-mode" "*.h") (auto-execute "mlisp-mode" "*.ml") (auto-execute "lisp-mode" "*.l") (auto-execute "mlisp-mode" "*.emacs_pro") le.@modify-syntax-entryw ~.  right-margin:': bind-to-key~m(declare-global  f  (6profile.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Hdefun0helpinfo<autoloadinfo.ml:direddired.mlN&incremental-search"incr-search.ml:@.reverse-incremental-searchH"electric-c-mode  electric-c.ml< lisp-modelisp.ml* mlisp-mode<Xlisp process.ml"clBsetq"quick-redisplay:n,default-mode-line-format<( %[Buffer: %b%* File: %f %M (%m) %p%]6T(backup-before-writing:>0backup-by-copying-when-linked:4loadkillring$ buffer-editL setq-default$&kill-lines-magic:< auto-execute*.c"*.h$V*.ml"*.l*` *.emacs_proif4j(shell-prompt-templateV4setq^++$t shell-hookR4(process-output-markerset-markrstart-filtered-process e 1pwd.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(if (! (is-bound cdpath)) (setq-default cdpath ".:~")) (defun (path (pwd)(novalue))) (defun (pwd cwd cue (if (interactive) (setq cue ": pwd => ") (setq cue ": path => ")) (setq cwd (working-directory)) (message cue (if (& (= (substr cwd -1 1) "/") (> (length cwd) 1)) (substr cwd 1 -1) cwd)) (novalue)) (chd dir (setq dir (if (interactive) (get-tty-file ": chd ") (arg 1))) (cd dir) (novalue)) (cd dir path still-looking (setq dir (if (interactive) (get-tty-file ": cd ") (arg 1))) (if (= dir "") (setq dir "~")) (if (| (= (substr dir 1 1) "/") (= (substr dir 1 1) "~")) (setq still-looking (error-occurred (change-directory dir))) (save-excursion (temp-use-buffer "Scratch Stuff") (setq needs-checkpointing 0) (erase-buffer) (insert-string cdpath) (beginning-of-file) (while (progn (re-search-forward "[^:]*") (region-around-match 0) (setq path (region-to-strin#g)) (erase-region) (delete-next-character) (setq still-looking (error-occurred (change-directory (if (= path "") dir (concat path "/" dir))))) (& still-looking (! (eolp)))) (novalue)))) (if still-looking (error-message "There is no such directory") (progn (quietly-read-abbrev-file ".abbrevs") )) (novalue)) ) (process-output-markerset-markrstart-filtered-processs d t1pwd.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"ifJ!6is-boundcdpath< setq-default.:~`defunHpathpwdnovaluevcwdcue interactive:setq : pwd => * : path => 0J$working-directorymessage&X=0substrZZ/<> length`ZLZZ6 chddirpNd: get-tty-file: chd argZcdhLV  still-lookingD$8&Z@: cd \ZF   ~hd|(zZZ(RZZXLerror-occurred*change-directorysave-excursionBtemp-use-buffer  Scratch Stuff4&needs-checkpointingZ  erase-buffer& insert-stringT$beginning-of-filewhileprogn<re-search-forward[^:]*.region-around-matchZ0$region-to-string  erase-region(delete-next-characterb*~VPJb,concat6n*zeolp(@N error-message.There is no such directoryNHquietly-read-abbrev-file.abbrevszewline-killhxr."send-int-signalVD2x d|cl ^, &cl-process::z4!Starting up a common-lisp process: @: c 1readonly.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"#; Make the current buffer read only (defun (read-only (if read-only (progn (setq read-only 0) (if (= (substr mode-line-format -3 3) " RO") (setq mode-line-format (substr mode-line-format 1 -3))) (message "Buffer is now writable") ) (progn (setq read-only 1) (if (!= (substr mode-line-format -3 3) " RO") (setq mode-line-format (concat mode-line-format " RO"))) (message "Buffer is read-only") ) ) (novalue) ) ) ng-directoryI b J1readonly.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Hdefun0 read-onlyif(progn&setqZx=Nsubstr$mode-line-formatZZ RO(`ZZDmessage*Buffer is now writableZp8!=ZZ02&concat,6&Buffer is read-onlynovaluesubstrZZ/<> length`ZLZZ6 chddirpNd: get-tty-file: chd argZcdhLV  still-lookingD$8&Z@O a P1sentences.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"(if (! (is-bound sentence-delimiters)) (progn (declare-global sentence-delimiters) (setq sentence-delimiters "[.!?][ \n\t][ \n\t]*") )) (defun (forward-sentence (prefix-argument-loop (re-search-forward sentence-delimiters) (while (looking-at "") (search-forward ""))) ) ) (defun (backward-sentence stpos searchp (prefix-argument-loop (setq stpos (dot)) (preceding-char) (if (error-occurred (re-search-reverse sentence-delimiters))  (beginning-of-file)) (setq searchp (dot)) (while (looking-at "") (search-forward "")) (if (>= (dot) stpos) (progn (goto-character searchp) (if (error-occurred (re-search-reverse "")) (beginning-of-file)) (while (looking-at "") (search-forward ""))) ) ) ) ) : chd argZcdhLV  still-lookingD$8&Z@ ` 1 sentences.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"$ifV!Bis-bound&sentence-delimitersprogn(declare-globalBsetq$[.!?][ ][ ]*defunforward-sentenceprefix-argument-loop*re-search-forwardrwhile2 looking-at(search-forwardbackward-sentencestpossearchp"`dot"preceding-charvpLerror-occurred*re-search-reversej$beginning-of-file$Jd v ">= j(goto-charactert $B   okingD$8&Z@ _ 1 shift.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; shift the current window left or right (defun (dot-to-left-margin (setq left-offset (- (current-column) 1))) (dot-to-right-margin (setq left-offset (- (current-column) (window-width)))) (dot-to-centre (setq left-offset (- (current-column) (/ (window-width) 2)))) ) (bind-to-key "dot-to-left-margin" "\^x<") (bind-to-key "dot-to-right-margin" "\^x>") (bind-to-key "dot-to-centre" "\^x=") 2 looking-at(search-forward ^ 1 shift.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"jdefundot-to-left-margintsetq left-offset>-"current-columnZ^dot-to-right-margin8j|,  window-widthZ dot-to-centre:$.<J"/Z: bind-to-key<" >"H= ] 1 srccom.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; srccom: compare text in two windows ; To begin the comparison, place the dot at the beginning of one of the ; two pieces of text to be compared, switch to the other window, and place ; the dot at the beginning of the other piece of text. (If there are more ; than two windows, the two windows to be compared must be adjacent, and ; the dot must be left in the upper one.) When this function is invoked, ; it will search forward, stopping when either a difference is encountered ; or the end of the buffer is$ reached. ; HISTORY: ; Dec 14 1982 -- agin -- Completely rewritten for increased efficiency ; 1 June 1982 -- Jerry Agin at Carnegie-Mellon University -- created (defun (srccom m1 size (setq m1 (dot)) (setq size 1) (while (& (! (eobp)) (compare-strings size) ) (setq size (* size 2)) ) (if (! (eobp)) (while (> size 0) (compare-strings size) (setq size (/ size 2)) ) ) (if (= (dot) m1) (error-message "First characters are different!") ; ring the bell if dot didn't move ) ) (compare-strings csize s1 s2 cm1 cm2 (setq csize (arg 1)) (set-mark) (setq cm1 (dot)) (goto-character (+ cm1 csize)) (setq s1 (region-to-string)) (next-window) (set-mark) (setq cm2 (dot)) (goto-character (+ cm2 csize)) (setq s2 (region-to-string)) (if (= s1 s2) (progn (previous-window) 1 ) (progn (goto-character cm2) (previous-window) (goto-character cm1) 0 ) ) ) ) & insert-stringT$y \ z1 srccom.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"xdefun:srccomm1size4setqdotZwhileh&,!eobp(compare-strings*.<"*Zif lzb4">Z d."/Zx =<R error-message2First characters are different!&csizes1s2cm1cm2*argZset-markVhBgoto-character +J0 $region-to-string next-windowF\xhvBprogn"previous-windowZ, ^ 6Z)) (goto-character (+ cm1 csize)) (setq s1 (region-to-string)) (next-window) (set-mark) (setq cm2 (dot)) (goto-character (+ cm2 csize)) (setq s2 (region-to-string)) (if (= s1 s2) (progn (previous-window) 1 ) (progn (goto-character cm2) (previous-window) (goto-character cm1) 0 ) ) ) ) & insert-stringT$ [ 1 tags.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Edit 7 ; Fri Jul 16 18:05:28 1982 ; twenex-like tags package J. Gosling, November 81 ; ; A tag file is a sequence of lines of the following forms: ; ^_filename ; ^Atagline^Bposition ; A tagline/position pair refers to the preceeding file (declare-global last-search-tag) (defun (to-tag-buffer (temp-use-buffer "*TAG*") (if (& (= (buffer-size) 0) (= (current-file-name) "")) (progn (if (error-occurred (read-file ".tags")) (progn (write-named-file ".tags") (messa%ge "New tag file"))) (beginning-of-file))) )) (defun (visit-tag-table tagfn (setq tagfn (arg 1 ": visit-tag-table ")) (save-excursion (temp-use-buffer "*TAG*") (read-file tagfn)) )) (defun (goto-tag fn str pos restart (setq restart 0) (if (! prefix-argument-provided) (progn (setq last-search-tag (concat "\^A[^\^B]*" (quote (arg 1 ": goto-tag ")))) (setq restart 1))) (save-excursion (to-tag-buffer) (if restart (beginning-of-file)) (re-search-forward last-search-tag) (beginning-of-line) (re-search-forward "\^A\\([^\^B]*\\)\^B\\(.*\\)") (region-around-match 1) (setq str (region-to-string)) (region-around-match 2) (setq pos (- (region-to-string) 300)) (save-excursion (re-search-reverse "\^_\\(.*\\)") (region-around-match 1) (setq fn (region-to-string))) ) (visit-file fn) (goto-character pos) (if (error-occurred (search-forward str)) (search-reverse "")) (beginning-of-line) (line-to-top-of-window) )) (defun (find-pos-str (beginning-of-line) (setq pos (+ (dot) 0)) (set-mark) (end-of-line) (setq str (region-to-string)))) (defun (store-pos-str (insert-character '^A') (insert-string str) (insert-character '^B') (insert-string pos) (newline))) (defun (add-tag (save-excursion pos str fn (find-pos-str) (setq fn (current-file-name)) (to-tag-buffer) (beginning-of-file) (if (error-occurred (re-search-forward (concat "\^_" fn "[^\^_]*"))) (progn (beginning-of-file) (insert-character '^_') (insert-string fn) (newline))) (store-pos-str) (beginning-of-file)))) (defun (add-tag* pos str (find-pos-str) (save-excursion (temp-use-buffer "*TAG*") (store-pos-str)))) (defun (add-all-tags pattern fn (setq pattern (arg 1 ": add-all-tags (pattern) ")) (setq fn (current-file-name)) (save-excursion (to-tag-buffer) (if (error-occurred (search-forward (concat "\^_" fn "\n"))) (progn (beginning-of-file) (insert-character '^_') (insert-string fn) (newline)) (progn (set-mark) (while (= (following-char) '^A') (next-line)) (erase-region)) ) ) (save-excursion (error-occurred (beginning-of-file) (while 1 (re-search-forward pattern) (add-tag*)))) (novalue) ) ) (defun (add-typed-tags ext pattern (setq ext (substr (current-file-name) -2 2)) (add-all-tags (if (= ext ".l") "^(def" (= ext ".c") "^[A-z].*(.*)" (= ext "ml") "^(defun[ \t\n]*(" (= ext "ss") "@section\\|@chapter\\|@subsection" (= ext ".p") "function\\|procedure" (error (concat "Can't tag " (current-file-name))) ) ) )) (defun (tag-file fn (setq fn (arg 1 ": tag-file (filename) ")) (message (concat "Tagging " fn)) (save-window-excursion (error-occurred (visit-file fn) (add-typed-tags) (delete-buffer fn))))) ; deletes current buffers if they ; are also having tags computed (defun (recompute-all-tags (save-window-excursion (to-tag-buffer) (beginning-of-file) (error-occurred (while 1 (re-search-forward "\^_\\(.*\\)") (region-around-match 1) (tag-file (region-to-string))) ) (write-named-file ".tags")))) (defun (make-tag-table fns (setq fns (arg 1 ": make-tag-table (from filenames) ")) (save-window-excursion (temp-use-buffer "*TEMP*") (erase-buffer) (set-mark) (filter-region (concat "dir " fns)) (beginning-of-file) (while (! (eobp)) (set-mark) ; (end-of-line) (search-forward " ") (backward-character) (tag-file (region-to-string)) (next-line%) (beginning-of-line)) (delete-buffer "*TEMP*") (temp-use-buffer "*TAG*") (write-named-file ".tags")) (novalue) )) (defun (visit-function func (save-window-excursion (forward-character) (backward-word) (set-mark) (forward-word) (setq func (region-to-string)) (goto-tag func) (message "Type ^C to go back") (recursive-edit) ) )) (save-excursion (to-tag-buffer) (if restart' Z (1 tags.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"Ddeclare-global"last-search-tagdefun to-tag-buffer:temp-use-buffer*TAG*if&:= buffer-sizeZ>$current-file-nameprognJVerror-occurred4 read-file.tagsj*write-named-file:message  New tag file$beginning-of-filevisit-tag-tabletagfnbsetqDargZ&: visit-tag-table :save-excursion b~ rVgoto-tagfnstrposrestartZ@!,prefix-argument-providedN xconcat[^]*Dquote,PZ : goto-tag ZTv*re-search-forward8$beginning-of-line*$\([^]*\)\(.*\).region-around-matchZ0.$region-to-stringZ."-Z,d$>re-search-reverse\(.*\)&Zp(F$ visit-file(goto-character\..(search-forward(search-reversef(line-to-top-of-window2 find-pos-str>\@2+dotZset-mark end-of-line| store-pos-str,insert-characterZ& insert-string4Z 0newlineadd-taghpblvD>8>\[^]*,>Z LFadd-tag*v  : add-all-tagspatternzF:Z,: add-all-tags (pattern) p(n2(,D& ,fZ dwhile0"following-charZ next-line  erase-region2,4 nZ nfnovalue*$add-typed-tagsext<0substr.&ZZ".l^(def"`.c  ^[A-z].*(.*)"Pml"^(defun[ ]*(" ss2@section\|@chapter\|@subsection".p&function\|procedureBerror* Can't tag ttag-fileDx8Z*: tag-file (filename) .(Tagging fsave-window-excursion>  & delete-buffer~recompute-all-tagsXrxL:4Z 2Z X make-tag-tablefnsP&D8Z6": make-tag-table (from filenames) < *TEMP*  erase-buffervD filter-region$dir bneobp &backward-character 4   r>visit-functionfunc $forward-character  backward-word  forward-wordv td,(&Type ^C to go back"recursive-edit New tag file$beginning-of-filevisit-tag-tabletagfnbsetqDargZ&: visit-tag-table :save-excursion b~ rVgoto-tagfnstrposrestartZ@!,prefix-arg Y ;tek-fnkeys.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl" ; Bind a couple of the function keys, just to show how they work (bind-to-key "beginning-of-file" "\eOE") ; f1 (bind-to-key "end-of-file" "\eOF") ; f2 ; Bind the break key so that is aborts (bind-to-key "illegal-operation" "\eO@") ; break  r>visit-functionfunc $forward-character  backward-word  forward-wordv td,(&Type ^C to go   ;tek-fnkeys.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"X bind-to-key$beginning-of-fileOE: end-of-fileOF@r$illegal-operationO@egal-operation" "\eO@") ; break  r>visit-functionfunc $forward-character  backward-word  forward-wordv td,(&Type ^C to go &  ;tek-joydisk.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Bind the joydisk in all its modes (bind-to-key "previous-line" "\eOA") ; joydisk up (bind-to-key "next-line" "\eOB") ; joydisk down (bind-to-key "backward-character" "\eOD") ; joydisk left (bind-to-key "forward-character" "\eOC") ; joydisk right (bind-to-key "previous-page" "\eO!") ; shift joydisk up (bind-to-key "next-page" "\eO\"") ; shift joydisk down (bind-to-key "backward-word" "\eO$") ; shift joydisk left (bind-to-key "forward-word" "\eO#") ; shift joydisk right (bind-to-key "illegal-operation" "\eO1") ; control joydisk up (bind-to-key "illegal-operation" "\eO2") ; control joydisk down (bind-to-key "illegal-operation" "\eO4") ; control joydisk left (bind-to-key "illegal-operation" "\eO3") ; control joydisk right sit-tag-table :save-excursion b~ rVgoto-tagfnstrposrestartZ@!,prefix-arg  tek-joydisk.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"T bind-to-key  previous-lineOA8 next-lineOBBx&backward-characterOD@6$forward-characterOC<  previous-pageO!8 next-pageO"<  backward-wordO$<F  forward-wordO#@ $illegal-operationO1"O2"O4"O3disk left (bind-to-key "illegal-operation" "\eO3") ; control joydisk right sit-tag-table :save-excursion b~ rVgoto-tagfnstrposrestartZ@!,prefix-arg  tek-mouse.ml/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzl"; Tek 4400 Series mouse bindings and functions (declare-global cursor-type) ; 'b' or 'u' for block or underline, ; 'B' or 'U' for flashing b or u (setq cursor-type 'U') (declare-global xmouse) ; 'x' position of mouse cursor (declare-global ymouse) ; 'y' position of mouse cursor ; general mouse functions (defun (convert-to-decimal num ch (setq num 0) (while (& (>= (setq ch (get-tty-character)) '0') (<= ch '9')) (setq num (+ (- ch '0') (* num 10)))) (push-back-character ch) num ) ' (move-dot-to-mouse err (if (= ymouse 1) (previous-page) (= ymouse 30) (next-page) ) (if (error-occurred (move-dot-to-x-y xmouse ymouse)) ) ) (enable-mouse-down (send-string-to-terminal "Q1;1J") ) (enable-mouse-up (send-string-to-terminal "Q2;1J") ) (disable-mouse (send-string-to-terminal "Q0;1J") ) (enable-mouse-both-up-down (send-string-to-terminal "Q3;1J") ) (parse-mouse ; parse a mouse position report (setq ymouse (convert-to-decimal)) ; get row value (get-tty-character) ; throw away ';' (setq xmouse (convert-to-decimal)) ; get column value (get-tty-character) ; throw away the ESC (get-tty-character) ; throw away the BACKSLASH ) (mouse-ignore-button t (setq t (convert-to-decimal)) ; get row value and ignore it (get-tty-character) ; throw away ';' (setq t (convert-to-decimal)) ; get column value and ignore it (get-tty-character) ; throw away the ESC (get-tty-character) ; throw away the BACKSLASH ) ; left button functions (left-button (enable-mouse-both-up-down) ; activate mouse for both up and down (parse-mouse) (if (move-dot-to-mouse) (bind-to-key "left-up-out" "PA1U") (bind-to-key "left-up-in" "PA1U") ) (message "^^^|^^^1^^^|^^^2^^^|^^^3^^^|^^^4^^^|^^^5" "^^^|^^^6^^^|^^^7^^^|^^^8^^^|^^^9^^^|^^^" ) (novalue) ) (left-up-in xold yold (setq xold xmouse)  (setq yold ymouse) (parse-mouse) (if (&(= xold xmouse)(= yold ymouse)) (novalue) (move-dot-to-mouse) (move-%-buffer) (progn (set-mark) (move-dot-to-x-y xold yold) (exchange-dot-and-mark) (show-region) (send-string-to-terminal "=") (sit-for 3) ) ) (message "") (bind-to-key "mouse-ignore-button" "PA1U") ) (left-up-out (parse-mouse) (if (move-dot-to-mouse) (novalue) (move-%-buffer) ) (message "") (bind-to-key "mouse-ignore-button" "PA1U") ) (move-%-buffer (if (= xmouse 1) ; test (1) (beginning-of-file) ; (1) is true, otherwise next statement (= xmouse (window-width)) ; test (2) (end-of-file) ; (2) is true, otherwise: (goto-character ; the 100s are there for emacs integer math (/ (* (/ (* xmouse 100) (window-width)) (buffer-size)) 100) ) ) ) (l-ctrl-button (message " still block |  still u-line " "| flashing block | flashing u_line ") (mouse-ignore-button) (bind-to-key "cursor-menu" "PC1U") ) (cursor-menu (bind-to-key "mouse-ignore-button" "PC1U") (parse-mouse) (if (< 30 ymouse) (if (< 60 xmouse) (underline-flash-cursor) (< 40 xmouse) (block-flash-cursor) (< 20 xmouse) (underline-still-cursor) (block-still-cursor) ) ) ) ; middle button functions (middle-button (enable-mouse-both-up-down) (parse-mouse) (message "| show region | copy region | kill region | paste |") (bind-to-key "middle-up" "PA2U") ) (middle-up xold yold (setq xold xmouse) (setq yold ymouse) (parse-mouse) (if (= 32 ymouse) (progn (if (< 60 xmouse) (unkill) (< 40 xmouse) (kill-region) (< 20 xmouse) (copy-region) ) ) (if (& (= xold xmouse)(= yold ymouse)) (show-region) (exchange-dot-and-mark) (send-string-to-terminal "=") (sit-for 3) ) ) (message "") (bind-to-key "mouse-ignore-button" "PA2U") ) (show-region tmp (setq tmp cursor-type) (setq cursor-type 'b') (set-cursor) (exchange-dot-and-mark) (sit-for 9) (exchange-dot-and-mark) (sit-for 9) (setq cursor-type tmp) (set-cursor) (redraw-screen) (send-string-to-terminal "=") ' (sit-for 3) (message "") ) ; Cursor control from emacs (set-cursor ; set the cursor to cursor-type (if (= cursor-type 'U') (progn (send-string-to-terminal (concat "[>32l" ; blink it "[>31l") ; and underline ) (sit-for 5) ) (if (= cursor-type 'u') (progn (send-string-to-terminal (concat "[>32h" ; make it still "[>31l") ; and underline ) (sit-for 5) ) (if (= cursor-type 'B') (progn (send-string-to-terminal (concat "[>32l" ; blink it "[>31h") ; make it a block cursor ) (sit-for 5) ) (if (= cursor-type 'b') (progn (send-string-to-terminal (concat "[>32h" ; make it still "[>31h") ; make it a block cursor ) (sit-for 5) ) ) ) ) ) (novalue) ) ; We haven't anything fancy for the right button yet' (right-button (mouse-ignore-button) (bind-to-key "mouse-ignore-button" "") ) (block-flash-cursor (setq cursor-type 'B') (set-cursor) ) (block-still-cursor (setq cursor-type 'b') (set-cursor) ) (underline-flash-cursor (setq cursor-type 'U') (set-cursor) ) (underline-still-cursor (setq cursor-type 'u') (set-cursor) ) ) ; ; (set-cursor) ; put the cursor to our type (enable-mouse-both-up-down) ; activate mouse for both up and down ; normally, we want to ignore the upstroke on mouse-buttons (bind-to-key "mouse-ignore-button" "PA1U") ; left-up (bind-to-key "mouse-ignore-button" "PB1U") ; left-shift-up (bind-to-key "mouse-ignore-button" "PC1U") ; left-ctrl-up (bind-to-key "mouse-ignore-button" "PA2U") ; mid-up (bind-to-key "mouse-ignore-button" "PB2U") ; mid-shift-up (bind-to-key "mouse-ignore-button" "PC2U") ; mid-ctl-up (bind-to-key "mouse-ignore-button" "PA3U") ; rt-up (bind-to-key "mouse-ignore-button" "PB3U") ; rt-shift-up (bind-to-key "mouse-ignore-button" "PC3U") ; rt-ctl-up ; ignore downstroke on shift and control, too (bind-to-key "mouse-ignore-button" "PB1D") ; l-shift-down) (bind-to-key "mouse-ignore-button" "PB2D") ; mid-shift-down) (bind-to-key "mouse-ignore-button" "PC2D") ; mid-ctl-down) (bind-to-key "mouse-ignore-button" "PB3D") ; rt-shift-down) (bind-to-key "mouse-ignore-button" "PC3D") ; rt-ctl-down) ; now bind the three normal buttons (bind-to-key "left-button" "PA1D") (bind-to-key "l-ctrl-button" "PC1D") (bind-to-key "middle-button" "PA2D") (bind-to-key "right-button" "PA3D") (bind-to-key "left-button" "PA1D") 1U") ) (cursor-menu (bind-to-key "mouse-ignore-button" "PC1U") (parse-mouse) (if (< 30 ymouse) (if (< 60 xmouse) (underline-flash-cursor) (< 40 xmouse) (block-flash-cursor) (< 20 xmouse) (underline-still-cursor) (block-still-cursor) ) ) ) ; middle button  tek-mouse.mo/emacs/maclib_ ```0(` daaa 0(-z-z b<L0(b dCzo"@declare-global cursor-type&setqU xmouse ~ymouse|defunconvert-to-decimalnumch4while&N>=0$get-tty-character0$<=J9d X+"-