(FILECREATED "24-May-84 11:25:22" {DSK}TEDITABBREV.;2 2341   

      changes to:  (FNS \TEDIT.ABBREV.EXPAND)

      previous date: "21-Apr-84 01:47:43" {DSK}TEDITABBREV.;1)


(PRETTYCOMPRINT TEDITABBREVCOMS)

(RPAQQ TEDITABBREVCOMS [(FILES TEDITCOMMAND)
			(FNS \TEDIT.ABBREV.EXPAND)
			(GLOBALVARS TEDIT.ABBREVS)
			(VARS (TEDIT.ABBREVS (LIST [CONS "b" (MKSTRING (CHARACTER (CHARCODE #7]
						   [CONS "n" (MKSTRING (CHARACTER (CHARCODE #↑%[]
						   [CONS "m" (MKSTRING (CHARACTER (CHARCODE #↑\]
						   (QUOTE ("%"" . "``"])
(FILESLOAD TEDITCOMMAND)
(DEFINEQ

(\TEDIT.ABBREV.EXPAND
  [LAMBDA (STREAM)                                           (* jds "14-Feb-84 16:30")
                                                             (* Expand an abbvreviation)
    (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM))
	   SEL CH# (CH NIL)
	   EXPANSION)
          (SETQ SEL (fetch SEL of TEXTOBJ))
          (SETQ CH# (SELECTQ (fetch POINT of SEL)
			     (LEFT (SUB1 (fetch CH# of SEL)))
			     (RIGHT (fetch CHLIM of SEL))
			     0))
          [COND
	    ((ZEROP CH#)                                     (* If we're off the front of the document, don't bother 
							     trying.)
	      (RETURN))
	    ((ZEROP (fetch DCH of SEL))                      (* Point Selection, so use the character to the left)
	      (\SETUPGETCH CH# TEXTOBJ)
	      [SETQ CH (MKSTRING (CHARACTER (\BIN STREAM]
	      (TEDIT.SETSEL STREAM CH# 1 (QUOTE LEFT)))
	    (T                                               (* We have a selection that isn't just a caret.
							     Use it.)
	       (SETQ CH (TEDIT.SEL.AS.STRING STREAM]
          (SETQ EXPANSION (SASSOC CH TEDIT.ABBREVS))         (* Find the abbreviation's expansion)
          (COND
	    (EXPANSION                                       (* It exists, so insert it where the abbrev used to be)
		       (TEDIT.DELETE TEXTOBJ SEL)
		       (TEDIT.INSERT STREAM (CDR EXPANSION)
				     SEL])
)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(ADDTOVAR GLOBALVARS TEDIT.ABBREVS)
)

(RPAQ TEDIT.ABBREVS (LIST [CONS "b" (MKSTRING (CHARACTER (CHARCODE #7]
			  [CONS "n" (MKSTRING (CHARACTER (CHARCODE #↑%[]
			  [CONS "m" (MKSTRING (CHARACTER (CHARCODE #↑\]
			  (QUOTE ("%"" . "``"))))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (564 2038 (\TEDIT.ABBREV.EXPAND 574 . 2036)))))
STOP