* progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
authorJuanma Barranquero <lekktu@gmail.com>
Fri, 7 May 2010 03:21:06 +0000 (05:21 +0200)
committerJuanma Barranquero <lekktu@gmail.com>
Fri, 7 May 2010 03:21:06 +0000 (05:21 +0200)
lisp/ChangeLog
lisp/progmodes/cperl-mode.el

index 4b3852b..a7343b2 100644 (file)
@@ -1,5 +1,7 @@
 2010-05-07  Juanma Barranquero  <lekktu@gmail.com>
 
+       * progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
+
        Fix use of `filter-buffer-substring' (4th arg NOPROPS removed).
        * emulation/cua-base.el (cua-repeat-replace-region):
        * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
index 2f751f2..d69cce7 100644 (file)
@@ -8980,6 +8980,18 @@ do extra unwind via `cperl-unwind-to-safe'."
     (substring v (match-beginning 1) (match-end 1)))
   "Version of IZ-supported CPerl package this file is based on.")
 
+(defun cperl-mode-unload-function ()
+  "Unload the Cperl mode library."
+  (let ((new-mode (if (eq (symbol-function 'perl-mode) 'cperl-mode)
+                     'fundamental-mode
+                   'perl-mode)))
+    (dolist (buf (buffer-list))
+      (with-current-buffer buf
+       (when (eq major-mode 'cperl-mode)
+         (funcall new-mode)))))
+  ;; continue standard unloading
+  nil)
+
 (provide 'cperl-mode)
 
 ;; arch-tag: 42e5b19b-e187-4537-929f-1a7408980ce6