]> git.donarmstrong.com Git - lilypond.git/commitdiff
emacsclient too.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 28 Oct 2006 21:06:26 +0000 (23:06 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 28 Oct 2006 21:06:26 +0000 (23:06 +0200)
elisp/emacsclient.patch [new file with mode: 0644]

diff --git a/elisp/emacsclient.patch b/elisp/emacsclient.patch
new file mode 100644 (file)
index 0000000..e2df3ed
--- /dev/null
@@ -0,0 +1,148 @@
+diff -ur emacs-20.5/lib-src/ChangeLog emacs-hanwen/lib-src/ChangeLog
+--- emacs-20.5/lib-src/ChangeLog       Fri Dec 10 17:25:36 1999
++++ emacs-hanwen/lib-src/ChangeLog     Sun Jul 16 23:00:54 2000
+@@ -1,3 +1,7 @@
++2000-07-16  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
++      
++      * emacsclient.c: Added support for +LINE:COLUMN style arguments.
++
+ 1999-12-04  Gerd Moellmann  <gerd@gnu.org>
+       * Version 20.5 released.
+Only in emacs-hanwen/lib-src: ChangeLog~
+diff -ur emacs-20.5/lib-src/emacsclient.c emacs-hanwen/lib-src/emacsclient.c
+--- emacs-20.5/lib-src/emacsclient.c   Wed Nov  3 14:12:46 1999
++++ emacs-hanwen/lib-src/emacsclient.c Sun Jul 16 22:10:35 2000
+@@ -27,6 +27,7 @@
+ #undef close
+ #undef signal
++#include <ctype.h> 
+ #include <stdio.h>
+ #include <getopt.h>
+ #ifdef STDC_HEADERS
+@@ -323,7 +324,7 @@
+       if (*argv[i] == '+')
+       {
+         char *p = argv[i] + 1;
+-        while (*p >= '0' && *p <= '9') p++;
++        while (isdigit (*p) || *p == ':') p++;
+         if (*p != 0)
+           fprintf (out, "%s/", quote_file_name (cwd));
+       }
+@@ -466,7 +467,8 @@
+       if (*modified_arg == '+')
+       {
+         char *p = modified_arg + 1;
+-        while (*p >= '0' && *p <= '9') p++;
++        while (isdigit (*p) || *p == ':')
++          p++;
+         if (*p != 0)
+           need_cwd = 1;
+       }
+Only in emacs-hanwen/lib-src: emacsclient.c~
+diff -ur emacs-20.5/lib-src/emacsserver.c emacs-hanwen/lib-src/emacsserver.c
+--- emacs-20.5/lib-src/emacsserver.c   Mon Feb 22 21:44:14 1999
++++ emacs-hanwen/lib-src/emacsserver.c Sun Jul 16 22:09:52 2000
+@@ -61,6 +61,7 @@
+ #include <errno.h>
+ #include <sys/stat.h>
++
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+Only in emacs-hanwen/lib-src: emacsserver.c~
+Only in emacs-hanwen/lib-src: suf.el~
+diff -ur emacs-20.5/lisp/ChangeLog emacs-hanwen/lisp/ChangeLog
+--- emacs-20.5/lisp/ChangeLog  Fri Dec 10 17:25:02 1999
++++ emacs-hanwen/lisp/ChangeLog        Sun Jul 16 23:00:04 2000
+@@ -1,3 +1,8 @@
++2000-07-16  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
++
++      * server.el (server-process-filter,server-visit-files): add support for "LINE:COLUMN"
++      style emacsclient calls.
++
+ 1999-12-04  Gerd Moellmann  <gerd@gnu.org>
+       * Version 20.5 released.
+Only in emacs-hanwen/lisp: ChangeLog~
+diff -ur emacs-20.5/lisp/server.el emacs-hanwen/lisp/server.el
+--- emacs-20.5/lisp/server.el  Sat Mar 13 01:20:25 1999
++++ emacs-hanwen/lisp/server.el        Sun Jul 16 23:04:41 2000
+@@ -215,7 +215,8 @@
+                                 default-file-name-coding-system)))
+         client nowait
+         (files nil)
+-        (lineno 1))
++        (lineno 1)
++        (columnno 0))
+       ;; Remove this line from STRING.
+       (setq string (substring string (match-end 0)))    
+       (if (string-match "^Error: " request)
+@@ -232,9 +233,17 @@
+                 (setq request (substring request (match-end 0)))
+                 (if (string-match "\\`-nowait" arg)
+                     (setq nowait t)
+-                  (if (string-match "\\`\\+[0-9]+\\'" arg)
+-                      ;; ARG is a line number option.
+-                      (setq lineno (read (substring arg 1)))
++                  (cond
++                      ;; ARG is a line number option.
++                   ((string-match "\\`\\+[0-9]+\\'" arg)
++                    (setq lineno (read (substring arg 1)))
++                    )
++                   ;; ARG is line number / column option. 
++                   ((string-match "\\`\\+[0-9]+:[0-9]+\\'" arg)
++                    (setq lineno (read (substring arg 1 (string-match ":" arg))))
++                    (setq columnno (read (substring arg (+ 1 (string-match ":" arg)))))
++                    )
++                   (t
+                     ;; ARG is a file name.
+                     ;; Collapse multiple slashes to single slashes.
+                     (setq arg (command-line-normalize-file-name arg))
+@@ -253,9 +262,11 @@
+                     (if coding-system
+                         (setq arg (decode-coding-string arg coding-system)))
+                     (setq files
+-                          (cons (list arg lineno)
++                          (cons (list arg lineno columnno)
+                                 files))
+-                    (setq lineno 1)))))
++                    (setq lineno 1)
++                    (setq columnno 0)
++                    )))))
+             (server-visit-files files client nowait)
+             ;; CLIENT is now a list (CLIENTNUM BUFFERS...)
+             (or nowait
+@@ -267,9 +278,11 @@
+   ;; Save for later any partial line that remains.
+   (setq server-previous-string string))
++
++
+ (defun server-visit-files (files client &optional nowait)
+   "Finds FILES and returns the list CLIENT with the buffers nconc'd.
+-FILES is an alist whose elements are (FILENAME LINENUMBER).
++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."
+   ;; Bind last-nonmenu-event to force use of keyboard, not mouse, for queries.
+@@ -297,6 +310,7 @@
+             (set-buffer (find-file-noselect filen))
+             (run-hooks 'server-visit-hook)))
+         (goto-line (nth 1 (car files)))
++        (move-to-column (nth 2 (car files)))
+         (if (not nowait)
+             (setq server-buffer-clients
+                   (cons (car client) server-buffer-clients)))
+@@ -304,6 +318,7 @@
+         (setq files (cdr files)))
+       (set-buffer obuf))
+     (nconc client client-record)))
++
\f
+ (defun server-buffer-done (buffer &optional for-killing)
+   "Mark BUFFER as \"done\" for its client(s).
+Only in emacs-hanwen/lisp: server.el.orig
+Only in emacs-hanwen/lisp: server.el~