emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/files.el


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/lisp/files.el
Date: Mon, 01 Nov 2004 18:27:37 -0500

Index: emacs/lisp/files.el
diff -c emacs/lisp/files.el:1.717 emacs/lisp/files.el:1.718
*** emacs/lisp/files.el:1.717   Mon Nov  1 07:56:17 2004
--- emacs/lisp/files.el Mon Nov  1 23:16:42 2004
***************
*** 1896,1902 ****
            (if (not (functionp mode))
                (message "Ignoring unknown mode `%s'" mode)
              (setq done t)
!             (or (set-auto-mode-0 mode)
                  (throw 'nop nil)))))
        ;; If we didn't, look for an interpreter specified in the first line.
        ;; As a special case, allow for things like "#!/bin/env perl", which
--- 1896,1902 ----
            (if (not (functionp mode))
                (message "Ignoring unknown mode `%s'" mode)
              (setq done t)
!             (or (set-auto-mode-0 mode keep-mode-if-same)
                  (throw 'nop nil)))))
        ;; If we didn't, look for an interpreter specified in the first line.
        ;; As a special case, allow for things like "#!/bin/env perl", which
***************
*** 1911,1917 ****
            done (assoc (file-name-nondirectory mode)
                        interpreter-mode-alist))
        ;; If we found an interpreter mode to use, invoke it now.
!       (if done (set-auto-mode-0 (cdr done))))
      (if (and (not done) buffer-file-name)
        (let ((name buffer-file-name))
          ;; Remove backup-suffixes from file name.
--- 1911,1917 ----
            done (assoc (file-name-nondirectory mode)
                        interpreter-mode-alist))
        ;; If we found an interpreter mode to use, invoke it now.
!       (if done (set-auto-mode-0 (cdr done) keep-mode-if-same)))
      (if (and (not done) buffer-file-name)
        (let ((name buffer-file-name))
          ;; Remove backup-suffixes from file name.
***************
*** 1930,1956 ****
            (when mode
              (if xml (or (memq mode xml-based-modes)
                          (setq mode 'xml-mode)))
!             (set-auto-mode-0 mode)
              (setq done t)))))
      (and xml
         (not done)
!        (set-auto-mode-0 'xml-mode))))
  
  
  ;; When `keep-mode-if-same' is set, we are working on behalf of
  ;; set-visited-file-name.  In that case, if the major mode specified is the
  ;; same one we already have, don't actually reset it.  We don't want to lose
  ;; minor modes such as Font Lock.
! (defun set-auto-mode-0 (mode)
    "Apply MODE and return it.
! If `keep-mode-if-same' is non-nil MODE is chased of any aliases and
! compared to current major mode.  If they are the same, do nothing
! and return nil."
    (when keep-mode-if-same
      (while (symbolp (symbol-function mode))
        (setq mode (symbol-function mode)))
      (if (eq mode major-mode)
!       (setq mode)))
    (when mode
      (funcall mode)
      mode))
--- 1930,1956 ----
            (when mode
              (if xml (or (memq mode xml-based-modes)
                          (setq mode 'xml-mode)))
!             (set-auto-mode-0 mode keep-mode-if-same)
              (setq done t)))))
      (and xml
         (not done)
!        (set-auto-mode-0 'xml-mode keep-mode-if-same))))
  
  
  ;; When `keep-mode-if-same' is set, we are working on behalf of
  ;; set-visited-file-name.  In that case, if the major mode specified is the
  ;; same one we already have, don't actually reset it.  We don't want to lose
  ;; minor modes such as Font Lock.
! (defun set-auto-mode-0 (mode &optional keep-mode-if-same)
    "Apply MODE and return it.
! If optional arg KEEP-MODE-IF-SAME is non-nil, MODE is chased of
! any aliases and compared to current major mode.  If they are the
! same, do nothing and return nil."
    (when keep-mode-if-same
      (while (symbolp (symbol-function mode))
        (setq mode (symbol-function mode)))
      (if (eq mode major-mode)
!       (setq mode nil)))
    (when mode
      (funcall mode)
      mode))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]