]> code.delx.au - gnu-emacs/blobdiff - lisp/progmodes/perl-mode.el
CC Mode update to version 5.29. This is for testing; it's not a released
[gnu-emacs] / lisp / progmodes / perl-mode.el
index c6a90cc0dd0acc7b447de7925b7f35627b435080..eba70b86f5298a339228dca28a402145e7f5bf69 100644 (file)
   :prefix "perl-"
   :group 'languages)
 
+(defvar perl-mode-abbrev-table nil
+  "Abbrev table in use in perl-mode buffers.")
+(define-abbrev-table 'perl-mode-abbrev-table ())
+
 (defvar perl-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map "{" 'perl-electric-terminator)
@@ -279,7 +283,7 @@ create a new comment."
   :group 'perl)
 \f
 ;;;###autoload
-(define-derived-mode perl-mode nil "Perl"
+(defun perl-mode ()
   "Major mode for editing Perl code.
 Expression and list commands understand all Perl brackets.
 Tab indents for Perl code.
@@ -326,6 +330,13 @@ Various indentation styles:       K&R  BSD  BLK  GNU  LW
   perl-label-offset               -5   -8   -2   -2   -2
 
 Turning on Perl mode runs the normal hook `perl-mode-hook'."
+  (interactive)
+  (kill-all-local-variables)
+  (use-local-map perl-mode-map)
+  (setq major-mode 'perl-mode)
+  (setq mode-name "Perl")
+  (setq local-abbrev-table perl-mode-abbrev-table)
+  (set-syntax-table perl-mode-syntax-table)
   (make-local-variable 'paragraph-start)
   (setq paragraph-start (concat "$\\|" page-delimiter))
   (make-local-variable 'paragraph-separate)
@@ -359,7 +370,8 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'."
   ;; Tell imenu how to handle Perl.
   (make-local-variable 'imenu-generic-expression)
   (setq imenu-generic-expression perl-imenu-generic-expression)
-  (setq imenu-case-fold-search nil))
+  (setq imenu-case-fold-search nil)
+  (run-hooks 'perl-mode-hook))
 \f
 ;; This is used by indent-for-comment
 ;; to decide how much to indent a comment in Perl code
@@ -481,7 +493,7 @@ changed by, or (parse-state) if line starts in a quoted string."
     (beginning-of-line)
     (setq beg (point))
     (setq shift-amt
-         (cond ((= (char-after bof) ?=) 0)
+         (cond ((eq (char-after bof) ?=) 0)
                ((listp (setq indent (perl-calculate-indent bof))) indent)
                ((looking-at (or nochange perl-nochange)) 0)
                (t