summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2010-10-02 11:05:56 +0900
committerKenichi Handa <handa@m17n.org>2010-10-02 11:05:56 +0900
commit58ff7eb1527a999044bbd99a07e372e7d442ca7a (patch)
tree444641c566ff2abb1cfabb0b8e64583471b6b3a5
parent1911a33b9dc4beefaf75f67719ea7f6cf447b3ff (diff)
parentb336bfcdf39f1e4d35bff4a7bd01d3b4bca8f516 (diff)
downloademacs-58ff7eb1527a999044bbd99a07e372e7d442ca7a.tar.gz
merge emacs-23
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/emacsclient.c13
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/minibuffer.el22
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))))