]> git.donarmstrong.com Git - lilypond.git/blobdiff - elisp/server.el.patch
Imported Upstream version 2.18.0
[lilypond.git] / elisp / server.el.patch
diff --git a/elisp/server.el.patch b/elisp/server.el.patch
deleted file mode 100644 (file)
index fb3c59f..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From: Jan Nieuwenhuizen <janneke@gnu.org>
-Subject: Bugfix and feature for server.el
-To: emacs-devel@gnu.org
-cc: Han-Wen <hanwen@cs.uu.nl>
-Date: Sat, 10 Aug 2002 17:46:22 +0200
-Organization: Jan at Peder
-
-
-Find the following fix attached.  We had a problem with our
-application that uses `emacslient --no-wait' to edit input files.
-
-Emacs-21.2 (unlike previous versions), when invoked through
-`emacsclient --no-wait', wants to revert buffers whenever they have
-been edited, and does allow any editing, which is annoying.  When
-invoking with --no-wait, we are typically `moving around' and editing
-the same file all the time; and do not want to revert.
-
-When it does revert the buffer, it does not use the column argument of
-emacsclient; this is now fixed.
-
-Greetings,
-Han-Wen and Jan.
-
-
-Btw: this message was sent to bug-gnu-emacs about three weeks ago, but
-     that list seems to be slightly foobarred?  We both have current
-     disclaimers with GNU.
-
-
-ChangeLog:
-2002-07-21  Jan Nieuwenhuizen  <janneke@gnu.org>
-
-       * server.el (server-process-filter): Cleanup stray if.  Add
-       'no-revert to file list entry when emacsclient was invoked with
-       '--no-wait'.
-       (server-visit-files): New function goto-line-column.  Accept
-       'no-revert option.  Bugfix: also goto column when reverting
-       buffer.
-
---- server.el.~1.78.~  2001-12-18 17:42:38.000000000 +0100
-+++ server.el  2002-08-10 17:32:10.000000000 +0200
-@@ -251,40 +251,43 @@ Prefix arg means just kill any existing 
-                      (substring request (match-beginning 0) (1- (match-end 0))))
-                     (pos 0))
-                 (setq request (substring request (match-end 0)))
--                (if (string-match "\\`-nowait" arg)
--                    (setq nowait t)
--                  (cond
--                      ;; ARG is a line number option.
--                   ((string-match "\\`\\+[0-9]+\\'" arg)
-+                (cond
-+                 ((string-match "\\`-nowait" arg)
-+                  (setq nowait t))
-+                 ;; ARG is a line number option.
-+                 ((string-match "\\`\\+[0-9]+\\'" arg)
-                     (setq lineno (string-to-int (substring arg 1))))
--                   ;; ARG is line number:column option. 
--                   ((string-match "\\`+\\([0-9]+\\):\\([0-9]+\\)\\'" arg)
--                    (setq lineno (string-to-int (match-string 1 arg))
--                          columnno (string-to-int (match-string 2 arg))))
--                   (t
--                    ;; ARG is a file name.
--                    ;; Collapse multiple slashes to single slashes.
--                    (setq arg (command-line-normalize-file-name arg))
--                    ;; Undo the quoting that emacsclient does
--                    ;; for certain special characters.
--                    (while (string-match "&." arg pos)
--                      (setq pos (1+ (match-beginning 0)))
--                      (let ((nextchar (aref arg pos)))
--                        (cond ((= nextchar ?&)
--                               (setq arg (replace-match "&" t t arg)))
--                              ((= nextchar ?-)
--                               (setq arg (replace-match "-" t t arg)))
--                              (t
--                               (setq arg (replace-match " " t t arg))))))
--                    ;; Now decode the file name if necessary.
--                    (if coding-system
--                        (setq arg (decode-coding-string arg coding-system)))
--                    (setq files
--                          (cons (list arg lineno columnno)
--                                files))
--                    (setq lineno 1)
--                    (setq columnno 0))))))
--            (run-hooks 'pre-command-hook)
-+                 ;; ARG is line number:column option. 
-+                 ((string-match "\\`+\\([0-9]+\\):\\([0-9]+\\)\\'" arg)
-+                  (setq lineno (string-to-int (match-string 1 arg))
-+                        columnno (string-to-int (match-string 2 arg))))
-+                 (t
-+                  ;; ARG is a file name.
-+                  ;; Collapse multiple slashes to single slashes.
-+                  (setq arg (command-line-normalize-file-name arg))
-+                  ;; Undo the quoting that emacsclient does
-+                  ;; for certain special characters.
-+                  (while (string-match "&." arg pos)
-+                    (setq pos (1+ (match-beginning 0)))
-+                    (let ((nextchar (aref arg pos)))
-+                      (cond ((= nextchar ?&)
-+                             (setq arg (replace-match "&" t t arg)))
-+                            ((= nextchar ?-)
-+                             (setq arg (replace-match "-" t t arg)))
-+                            (t
-+                             (setq arg (replace-match " " t t arg))))))
-+                  ;; Now decode the file name if necessary.
-+                  (if coding-system
-+                      (setq arg (decode-coding-string arg coding-system)))
-+                  (setq files
-+                        ;; When invoking emacsclient with --no-wait, we are
-+                        ;; typically `moving around' and editing the same file;
-+                        ;; and do not want to revert.  Should make --no-revert
-+                        ;; option for emacsclient?
-+                        (cons (list arg lineno columnno (if nowait 'no-revert nil))
-+                              files))
-+                  (setq lineno 1)
-+                  (setq columnno 0)))))
-             (server-visit-files files client nowait)
-             (run-hooks 'post-command-hook)
-             ;; CLIENT is now a list (CLIENTNUM BUFFERS...)
-@@ -309,6 +312,13 @@ Prefix arg means just kill any existing 
- FILES is an alist whose elements are (FILENAME LINENUMBER COLUMNNUMBER).
- NOWAIT non-nil means this client is not waiting for the results,
- so don't mark these buffers specially, just visit them normally."
-+
-+  (defun goto-line-column (file-line-col)
-+    (goto-line (nth 1 file-line-col))
-+    (let ((column-number (nth 2 file-line-col)))
-+      (if (> column-number 0)
-+        (move-to-column (1- column-number)))))
-+  
-   ;; Bind last-nonmenu-event to force use of keyboard, not mouse, for queries.
-   (let (client-record (last-nonmenu-event t) (obuf (current-buffer)))
-     ;; Restore the current buffer afterward, but not using save-excursion,
-@@ -322,7 +332,8 @@ so don't mark these buffers specially, j
-         (let* ((filen (car (car files)))
-                (obuf (get-file-buffer filen)))
-           (push filen file-name-history)
--          (if (and obuf (set-buffer obuf))
-+          (if (and obuf (set-buffer obuf)
-+                   (not (memq 'no-revert (car files))))
-               (progn
-                 (cond ((file-exists-p filen)
-                        (if (or (not (verify-visited-file-modtime obuf))
-@@ -335,12 +346,9 @@ so don't mark these buffers specially, j
-                                     ", write buffer to file? "))
-                            (write-file filen))))
-                 (setq server-existing-buffer t)
--                (goto-line (nth 1 (car files))))
-+                (goto-line-column (car files)))
-             (set-buffer (find-file-noselect filen))
--            (goto-line (nth 1 (car files)))
--            (let ((column-number (nth 2 (car files))))
--              (when (> column-number 0)
--                (move-to-column (1- column-number))))
-+            (goto-line-column (car files))
-             (run-hooks 'server-visit-hook)))
-         (if (not nowait)
-             (setq server-buffer-clients
-
--- 
-Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond - The music typesetter
-http://www.xs4all.nl/~jantien       | http://www.lilypond.org
-
-
-
-