X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=elisp%2Fserver.el.patch;fp=elisp%2Fserver.el.patch;h=0000000000000000000000000000000000000000;hb=0ac07f31e0f95fc18e5916ce756b9c746af7cc58;hp=fb3c59f189ae700753bf8dbe0c4a1456e3c3307c;hpb=2f1263e2ccdddcac2eb9f7d8ce2ed92867d3d160;p=lilypond.git diff --git a/elisp/server.el.patch b/elisp/server.el.patch deleted file mode 100644 index fb3c59f189..0000000000 --- a/elisp/server.el.patch +++ /dev/null @@ -1,165 +0,0 @@ -From: Jan Nieuwenhuizen -Subject: Bugfix and feature for server.el -To: emacs-devel@gnu.org -cc: Han-Wen -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 - - * 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 | GNU LilyPond - The music typesetter -http://www.xs4all.nl/~jantien | http://www.lilypond.org - - - -