diff options
author | Kenichi Handa <handa@m17n.org> | 2010-10-02 11:05:56 +0900 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2010-10-02 11:05:56 +0900 |
commit | 58ff7eb1527a999044bbd99a07e372e7d442ca7a (patch) | |
tree | 444641c566ff2abb1cfabb0b8e64583471b6b3a5 | |
parent | 1911a33b9dc4beefaf75f67719ea7f6cf447b3ff (diff) | |
parent | b336bfcdf39f1e4d35bff4a7bd01d3b4bca8f516 (diff) | |
download | emacs-58ff7eb1527a999044bbd99a07e372e7d442ca7a.tar.gz |
merge emacs-23
-rw-r--r-- | lib-src/ChangeLog | 5 | ||||
-rw-r--r-- | lib-src/emacsclient.c | 13 | ||||
-rw-r--r-- | lisp/ChangeLog | 9 | ||||
-rw-r--r-- | lisp/minibuffer.el | 22 |
4 files changed, 45 insertions, 4 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 6b3584eb90f..11da74f63b0 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2010-10-01 Glenn Morris <rgm@gnu.org> + + * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back + DARWIN_USER_TEMP_DIR. (Bug#3992) + 2010-05-07 Chong Yidong <cyd@stupidchicken.com> * Version 23.2 released. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 01241b518bb..05f01b3b097 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1249,7 +1249,18 @@ set_local_socket () { tmpdir = egetenv ("TMPDIR"); if (!tmpdir) - tmpdir = "/tmp"; + { +#ifdef DARWIN_OS + size_t n = confstr (_CS_DARWIN_USER_TEMP_DIR, NULL, (size_t) 0); + if (n > 0) + { + tmpdir = alloca (n); + confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir, n); + } + else +#endif + tmpdir = "/tmp"; + } socket_name = alloca (strlen (tmpdir) + strlen (server_name) + EXTRA_SPACE); sprintf (socket_name, "%s/emacs%d/%s", diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 22cc8f3a3ed..696941f93cd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-09-30 Stefan Monnier <monnier@iro.umontreal.ca> + + * minibuffer.el (completion--replace): + Better preserve markers (bug#7138). + 2010-09-29 Juanma Barranquero <lekktu@gmail.com> * server.el (server-process-filter): Doc fix. @@ -10,8 +15,8 @@ * Makefile.in (ELCFILES): Update. - * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Avoid - infinite recursion on erroneous lambda form. (Bug#7114) + * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + Avoid infinite recursion on erroneous lambda form. (Bug#7114) 2010-09-27 Kenichi Handa <handa@m17n.org> diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 93a222053f6..9a477020421 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -475,10 +475,30 @@ in the last `cdr'." (defun completion--replace (beg end newtext) "Replace the buffer text between BEG and END with NEWTEXT. Moves point to the end of the new text." - ;; This should be in subr.el. + ;; Maybe this should be in subr.el. ;; You'd think this is trivial to do, but details matter if you want ;; to keep markers "at the right place" and be robust in the face of ;; after-change-functions that may themselves modify the buffer. + (let ((prefix-len 0)) + ;; Don't touch markers in the shared prefix (if any). + (while (and (< prefix-len (length newtext)) + (< (+ beg prefix-len) end) + (eq (char-after (+ beg prefix-len)) + (aref newtext prefix-len))) + (setq prefix-len (1+ prefix-len))) + (unless (zerop prefix-len) + (setq beg (+ beg prefix-len)) + (setq newtext (substring newtext prefix-len)))) + (let ((suffix-len 0)) + ;; Don't touch markers in the shared suffix (if any). + (while (and (< suffix-len (length newtext)) + (< beg (- end suffix-len)) + (eq (char-before (- end suffix-len)) + (aref newtext (- (length newtext) suffix-len 1)))) + (setq suffix-len (1+ suffix-len))) + (unless (zerop suffix-len) + (setq end (- end suffix-len)) + (setq newtext (substring newtext 0 (- suffix-len))))) (goto-char beg) (insert newtext) (delete-region (point) (+ (point) (- end beg)))) |