-(if (not eshell-mode-syntax-table)
- (let ((i 0))
- (setq eshell-mode-syntax-table (make-syntax-table))
- (while (< i ?0)
- (modify-syntax-entry i "_ " eshell-mode-syntax-table)
- (setq i (1+ i)))
- (setq i (1+ ?9))
- (while (< i ?A)
- (modify-syntax-entry i "_ " eshell-mode-syntax-table)
- (setq i (1+ i)))
- (setq i (1+ ?Z))
- (while (< i ?a)
- (modify-syntax-entry i "_ " eshell-mode-syntax-table)
- (setq i (1+ i)))
- (setq i (1+ ?z))
- (while (< i 128)
- (modify-syntax-entry i "_ " eshell-mode-syntax-table)
- (setq i (1+ i)))
- (modify-syntax-entry ? " " eshell-mode-syntax-table)
- (modify-syntax-entry ?\t " " eshell-mode-syntax-table)
- (modify-syntax-entry ?\f " " eshell-mode-syntax-table)
- (modify-syntax-entry ?\n "> " eshell-mode-syntax-table)
- ;; Give CR the same syntax as newline, for selective-display.
- (modify-syntax-entry ?\^m "> " eshell-mode-syntax-table)
-;;; (modify-syntax-entry ?\; "< " eshell-mode-syntax-table)
- (modify-syntax-entry ?` "' " eshell-mode-syntax-table)
- (modify-syntax-entry ?' "' " eshell-mode-syntax-table)
- (modify-syntax-entry ?, "' " eshell-mode-syntax-table)
- ;; Used to be singlequote; changed for flonums.
- (modify-syntax-entry ?. "_ " eshell-mode-syntax-table)
- (modify-syntax-entry ?- "_ " eshell-mode-syntax-table)
- (modify-syntax-entry ?| ". " eshell-mode-syntax-table)
- (modify-syntax-entry ?# "' " eshell-mode-syntax-table)
- (modify-syntax-entry ?\" "\" " eshell-mode-syntax-table)
- (modify-syntax-entry ?\\ "/ " eshell-mode-syntax-table)
- (modify-syntax-entry ?\( "() " eshell-mode-syntax-table)
- (modify-syntax-entry ?\) ")( " eshell-mode-syntax-table)
- (modify-syntax-entry ?\{ "(} " eshell-mode-syntax-table)
- (modify-syntax-entry ?\} "){ " eshell-mode-syntax-table)
- (modify-syntax-entry ?\[ "(] " eshell-mode-syntax-table)
- (modify-syntax-entry ?\] ")[ " eshell-mode-syntax-table)
- ;; All non-word multibyte characters should be `symbol'.
- (if (featurep 'xemacs)
- (map-char-table
- (function
- (lambda (key val)
- (and (characterp key)
- (>= (char-int key) 256)
- (/= (char-syntax key) ?w)
- (modify-syntax-entry key "_ "
- eshell-mode-syntax-table))))
- (standard-syntax-table))
- (map-char-table
- (function
- (lambda (key val)
- (and (if (consp key)
- (and (>= (car key) 128)
- (/= (char-syntax (car key)) ?w))
- (and (>= key 256)
- (/= (char-syntax key) ?w)))
- (modify-syntax-entry key "_ "
- eshell-mode-syntax-table))))
- (standard-syntax-table)))))
+(defvar eshell-mode-syntax-table
+ (let ((st (make-syntax-table))
+ (i 0))
+ (while (< i ?0)
+ (modify-syntax-entry i "_ " st)
+ (setq i (1+ i)))
+ (setq i (1+ ?9))
+ (while (< i ?A)
+ (modify-syntax-entry i "_ " st)
+ (setq i (1+ i)))
+ (setq i (1+ ?Z))
+ (while (< i ?a)
+ (modify-syntax-entry i "_ " st)
+ (setq i (1+ i)))
+ (setq i (1+ ?z))
+ (while (< i 128)
+ (modify-syntax-entry i "_ " st)
+ (setq i (1+ i)))
+ (modify-syntax-entry ? " " st)
+ (modify-syntax-entry ?\t " " st)
+ (modify-syntax-entry ?\f " " st)
+ (modify-syntax-entry ?\n "> " st)
+ ;; Give CR the same syntax as newline, for selective-display.
+ (modify-syntax-entry ?\^m "> " st)
+ ;; (modify-syntax-entry ?\; "< " st)
+ (modify-syntax-entry ?` "' " st)
+ (modify-syntax-entry ?' "' " st)
+ (modify-syntax-entry ?, "' " st)
+ ;; Used to be singlequote; changed for flonums.
+ (modify-syntax-entry ?. "_ " st)
+ (modify-syntax-entry ?- "_ " st)
+ (modify-syntax-entry ?| ". " st)
+ (modify-syntax-entry ?# "' " st)
+ (modify-syntax-entry ?\" "\" " st)
+ (modify-syntax-entry ?\\ "/ " st)
+ (modify-syntax-entry ?\( "() " st)
+ (modify-syntax-entry ?\) ")( " st)
+ (modify-syntax-entry ?\{ "(} " st)
+ (modify-syntax-entry ?\} "){ " st)
+ (modify-syntax-entry ?\[ "(] " st)
+ (modify-syntax-entry ?\] ")[ " st)
+ ;; All non-word multibyte characters should be `symbol'.
+ (map-char-table
+ (if (featurep 'xemacs)
+ (lambda (key _val)
+ (and (characterp key)
+ (>= (char-int key) 256)
+ (/= (char-syntax key) ?w)
+ (modify-syntax-entry key "_ " st)))
+ (lambda (key _val)
+ (and (if (consp key)
+ (and (>= (car key) 128)
+ (/= (char-syntax (car key)) ?w))
+ (and (>= key 256)
+ (/= (char-syntax key) ?w)))
+ (modify-syntax-entry key "_ " st))))
+ (standard-syntax-table))
+ st))