+(defun mail-abbrev-make-syntax-table ()
+ (make-local-variable 'mail-abbrev-syntax-table)
+ (unless mail-abbrev-syntax-table
+ (let ((tab (copy-syntax-table (syntax-table)))
+ (_ (aref (standard-syntax-table) ?_))
+ (w (aref (standard-syntax-table) ?w)))
+ (map-char-table
+ (function (lambda (key value)
+ (if (null value)
+ ;; Fetch the inherited value
+ (setq value (aref tab key)))
+ (if (equal value _)
+ (set-char-table-range tab key w))))
+ tab)
+ (modify-syntax-entry ?@ "w" tab)
+ (modify-syntax-entry ?% "w" tab)
+ (modify-syntax-entry ?! "w" tab)
+ (modify-syntax-entry ?. "w" tab)
+ (modify-syntax-entry ?_ "w" tab)
+ (modify-syntax-entry ?- "w" tab)
+ (setq mail-abbrev-syntax-table tab))))