Now on revision 113964. ------------------------------------------------------------ revno: 113964 fixes bug: http://debbugs.gnu.org/15129 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-08-20 23:11:50 -0700 message: Port close-on-exec pty creation to FreeBSD 9.1-RELEASE. * configure.ac (PTY_OPEN): If posix_openpt with O_CLOEXEC fails and reports EINVAL, try it again without O_CLOEXEC. This should port PTY_OPEN to FreeBSD 9, which stupidly rejects O_CLOEXEC. What were they thinking? diff: === modified file 'ChangeLog' --- ChangeLog 2013-08-20 08:30:24 +0000 +++ ChangeLog 2013-08-21 06:11:50 +0000 @@ -1,3 +1,11 @@ +2013-08-21 Paul Eggert + + Port close-on-exec pty creation to FreeBSD 9.1-RELEASE (Bug#15129). + * configure.ac (PTY_OPEN): If posix_openpt with O_CLOEXEC fails + and reports EINVAL, try it again without O_CLOEXEC. This should + port PTY_OPEN to FreeBSD 9, which stupidly rejects O_CLOEXEC. + What were they thinking? + 2013-08-20 Paul Eggert * Makefile.in (distclean, bootstrap-clean, maintainer-clean): === modified file 'configure.ac' --- configure.ac 2013-08-15 16:37:15 +0000 +++ configure.ac 2013-08-21 06:11:50 +0000 @@ -3994,7 +3994,7 @@ AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) dnl if HAVE_POSIX_OPENPT if test "x$ac_cv_func_posix_openpt" = xyes; then - AC_DEFINE(PTY_OPEN, [fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY)]) + AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (0)]) AC_DEFINE(PTY_NAME_SPRINTF, []) dnl if HAVE_GETPT elif test "x$ac_cv_func_getpt" = xyes; then ------------------------------------------------------------ revno: 113963 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-08-20 22:39:51 -0700 message: * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag. We can't portably rely on PTY_OPEN doing that, even if it calls posix_openpt with O_CLOEXEC. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-20 14:56:03 +0000 +++ src/ChangeLog 2013-08-21 05:39:51 +0000 @@ -1,3 +1,9 @@ +2013-08-21 Paul Eggert + + * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag. + We can't portably rely on PTY_OPEN doing that, even if + it calls posix_openpt with O_CLOEXEC. + 2013-08-20 Kenichi Handa * character.c (string_char): Improve commentary. === modified file 'src/process.c' --- src/process.c 2013-08-19 05:46:17 +0000 +++ src/process.c 2013-08-21 05:39:51 +0000 @@ -687,6 +687,15 @@ if (fd >= 0) { +#ifdef PTY_OPEN + /* Set FD's close-on-exec flag. This is needed even if + PT_OPEN calls posix_openpt with O_CLOEXEC, since POSIX + doesn't require support for that combination. + Multithreaded platforms where posix_openpt ignores + O_CLOEXEC (or where PTY_OPEN doesn't call posix_openpt) + have a race condition between the PTY_OPEN and here. */ + fcntl (fd, F_SETFD, FD_CLOEXEC); +#endif /* check to make certain that both sides are available this avoids a nasty yet stupid bug in rlogins */ #ifdef PTY_TTY_NAME_SPRINTF ------------------------------------------------------------ revno: 113962 committer: Sam Steingold branch nick: trunk timestamp: Tue 2013-08-20 21:16:27 -0400 message: Add rudimentary inferior shell interaction * lisp/progmodes/sh-script.el (sh-shell-process): New buffer-local variable. (sh-set-shell): Reset it. (sh-show-shell, sh-cd-here, sh-send-line-or-region-and-step): New commands (bound to C-c C-z, C-c C-d, and C-c C-n). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-20 22:13:29 +0000 +++ lisp/ChangeLog 2013-08-21 01:16:27 +0000 @@ -1,3 +1,11 @@ +2013-08-21 Sam Steingold + + Add rudimentary inferior shell interaction + * progmodes/sh-script.el (sh-shell-process): New buffer-local variable. + (sh-set-shell): Reset it. + (sh-show-shell, sh-cd-here, sh-send-line-or-region-and-step): New + commands (bound to C-c C-z, C-c C-d, and C-c C-n). + 2013-08-20 Stefan Monnier * align.el: Use lexical-binding. === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2013-07-20 19:20:33 +0000 +++ lisp/progmodes/sh-script.el 2013-08-21 01:16:27 +0000 @@ -497,6 +497,9 @@ (define-key map "\C-c+" 'sh-add) (define-key map "\C-\M-x" 'sh-execute-region) (define-key map "\C-c\C-x" 'executable-interpret) + (define-key map "\C-c\C-n" 'sh-send-line-or-region-and-step) + (define-key map "\C-c\C-d" 'sh-cd-here) + (define-key map "\C-c\C-z" 'sh-show-shell) (define-key map [remap delete-backward-char] 'backward-delete-char-untabify) @@ -1462,6 +1465,61 @@ frequently editing existing scripts with different styles.") +;; inferior shell interaction +;; TODO: support multiple interactive shells +(defvar sh-shell-process nil + "The inferior shell process for interaction.") +(make-variable-buffer-local 'sh-shell-process) +(defun sh-shell-process (force) + "Get a shell process for interaction. +If FORCE is non-nil and no process found, create one." + (if (and sh-shell-process (process-live-p sh-shell-process)) + sh-shell-process + (setq sh-shell-process + (let ((found nil) proc + (procs (process-list))) + (while (and (not found) procs + (process-live-p (setq proc (pop procs))) + (process-command proc)) + (when (string-equal sh-shell (file-name-nondirectory + (car (process-command proc)))) + (setq found proc))) + (or found + (and force + (get-buffer-process + (let ((explicit-shell-file-name sh-shell-file)) + (shell))))))))) + +(defun sh-show-shell () + "Pop the shell interaction buffer." + (interactive) + (pop-to-buffer (process-buffer (sh-shell-process t)))) + +(defun sh-send-text (text) + "Send the text to the `sh-shell-process'." + (comint-send-string (sh-shell-process t) (concat text "\n"))) + +(defun sh-cd-here () + "Change directory in the current interaction shell to the current one." + (interactive) + (sh-send-text (concat "cd " default-directory))) + +(defun sh-send-line-or-region-and-step () + "Send the current line to the inferior shell and step to the next line. +When the region is active, send the region instead." + (interactive) + (let (from to end) + (if (use-region-p) + (setq from (region-beginning) + to (region-end) + end to) + (setq from (line-beginning-position) + to (line-end-position) + end (1+ to))) + (sh-send-text (buffer-substring-no-properties from to)) + (goto-char end))) + + ;; mode-command and utility functions ;;;###autoload @@ -2169,6 +2227,7 @@ (setq font-lock-set-defaults nil) (font-lock-set-defaults) (font-lock-fontify-buffer)) + (setq sh-shell-process nil) (run-hooks 'sh-set-shell-hook)) ------------------------------------------------------------ revno: 113961 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-08-20 18:13:29 -0400 message: * lisp/align.el: Use lexical-binding. (align-region): Simplify accordingly. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-20 10:04:13 +0000 +++ lisp/ChangeLog 2013-08-20 22:13:29 +0000 @@ -1,3 +1,8 @@ +2013-08-20 Stefan Monnier + + * align.el: Use lexical-binding. + (align-region): Simplify accordingly. + 2013-08-20 Michael Albinus * minibuffer.el (completion--sifn-requote): Bind `non-essential'. === modified file 'lisp/align.el' --- lisp/align.el 2013-07-26 02:45:15 +0000 +++ lisp/align.el 2013-08-20 22:13:29 +0000 @@ -1,4 +1,4 @@ -;;; align.el --- align text to a specific column, by regexp +;;; align.el --- align text to a specific column, by regexp -*- lexical-binding:t -*- ;; Copyright (C) 1999-2013 Free Software Foundation, Inc. @@ -1325,7 +1325,7 @@ (unless (or (and modes (not (memq major-mode (eval (cdr modes))))) (and run-if (not (funcall (cdr run-if))))) - (let* ((current-case-fold case-fold-search) + (let* ((case-fold-search case-fold-search) (case-fold (assq 'case-fold rule)) (regexp (cdr (assq 'regexp rule))) (regfunc (and (functionp regexp) regexp)) @@ -1403,215 +1403,202 @@ ;; reports back that the region is ok, then align it. (when (or (not func) (funcall func beg end rule)) - (unwind-protect - (let (rule-beg exclude-areas) - ;; determine first of all where the exclusions - ;; lie in this region - (when exclude-rules - ;; guard against a problem with recursion and - ;; dynamic binding vs. lexical binding, since - ;; the call to `align-region' below will - ;; re-enter this function, and rebind - ;; `exclude-areas' - (set (setq exclude-areas - (make-symbol "align-exclude-areas")) - nil) - (align-region - beg end 'entire - exclude-rules nil - `(lambda (b e mode) - (or (and mode (listp mode)) - (set (quote ,exclude-areas) - (cons (cons b e) - ,exclude-areas))))) - (setq exclude-areas - (sort (symbol-value exclude-areas) - (function - (lambda (l r) - (>= (car l) (car r))))))) - - ;; set `case-fold-search' according to the - ;; (optional) `case-fold' property - (and case-fold - (setq case-fold-search (cdr case-fold))) - - ;; while we can find the rule in the alignment - ;; region.. - (while (and (< (point) end-mark) - (setq search-start (point)) - (if regfunc - (funcall regfunc end-mark nil) - (re-search-forward regexp - end-mark t))) - - ;; give the user some indication of where we - ;; are, if it's a very large region being - ;; aligned - (if report - (let ((symbol (car rule))) - (if (and symbol (symbolp symbol)) - (message - "Aligning `%s' (rule %d of %d) %d%%..." - (symbol-name symbol) rule-index rule-count - (/ (* (- (point) real-beg) 100) - (- end-mark real-beg))) - (message - "Aligning %d%%..." - (/ (* (- (point) real-beg) 100) - (- end-mark real-beg)))))) - - ;; if the search ended us on the beginning of - ;; the next line, move back to the end of the - ;; previous line. - (if (and (bolp) (> (point) search-start)) - (forward-char -1)) - - ;; lookup the `group' attribute the first time - ;; that we need it - (unless group-c - (setq groups (or (cdr (assq 'group rule)) 1)) - (unless (listp groups) - (setq groups (list groups))) - (setq first (car groups))) - - (unless spacing-c - (setq spacing (cdr (assq 'spacing rule)) - spacing-c t)) - - (unless tab-stop-c - (setq tab-stop - (let ((rule-ts (assq 'tab-stop rule))) - (cond (rule-ts - (cdr rule-ts)) - ((symbolp align-to-tab-stop) - (symbol-value align-to-tab-stop)) - (t - align-to-tab-stop))) - tab-stop-c t)) - - ;; test whether we have found a match on the same - ;; line as a previous match - (when (> (point) eol) - (setq same nil) - (align--set-marker eol (line-end-position))) - - ;; lookup the `repeat' attribute the first time - (or repeat-c - (setq repeat (cdr (assq 'repeat rule)) - repeat-c t)) - - ;; lookup the `valid' attribute the first time - (or valid-c - (setq valid (assq 'valid rule) - valid-c t)) - - ;; remember the beginning position of this rule - ;; match, and save the match-data, since either - ;; the `valid' form, or the code that searches for - ;; section separation, might alter it - (setq rule-beg (match-beginning first) - save-match-data (match-data)) - - (or rule-beg - (error "No match for subexpression %s" first)) - - ;; unless the `valid' attribute is set, and tells - ;; us that the rule is not valid at this point in - ;; the code.. - (unless (and valid (not (funcall (cdr valid)))) - - ;; look to see if this match begins a new - ;; section. If so, we should align what we've - ;; collected so far, and then begin collecting - ;; anew for the next alignment section - (when (and last-point - (align-new-section-p last-point rule-beg - thissep)) - (align-regions regions align-props rule func) - (setq regions nil) - (setq align-props nil)) - (align--set-marker last-point rule-beg t) - - ;; restore the match data - (set-match-data save-match-data) - - ;; check whether the region to be aligned - ;; straddles an exclusion area - (let ((excls exclude-areas)) - (setq exclude-p nil) - (while excls - (if (and (< (match-beginning (car groups)) - (cdar excls)) - (> (match-end (car (last groups))) - (caar excls))) - (setq exclude-p t - excls nil) - (setq excls (cdr excls))))) - - ;; go through the parenthesis groups - ;; matching whitespace to be contracted or - ;; expanded (or possibly justified, if the - ;; `justify' attribute was set) - (unless exclude-p - (dolist (g groups) - ;; We must use markers, since - ;; `align-areas' may modify the buffer. - ;; Avoid polluting the markers. - (let* ((group-beg (copy-marker - (match-beginning g) t)) - (group-end (copy-marker - (match-end g) t)) - (region (cons group-beg group-end)) - (props (cons (if (listp spacing) - (car spacing) - spacing) - (if (listp tab-stop) - (car tab-stop) - tab-stop)))) - (push group-beg markers) - (push group-end markers) - (setq index (if same (1+ index) 0)) - (cond - ((nth index regions) - (setcar (nthcdr index regions) - (cons region - (nth index regions)))) - (regions - (nconc regions - (list (list region))) - (nconc align-props (list props))) - (t - (setq regions - (list (list region))) - (setq align-props (list props))))) - ;; If any further rule matches are found - ;; before `eol', they are on the same - ;; line as this one; this can only - ;; happen if the `repeat' attribute is - ;; non-nil. - (if (listp spacing) - (setq spacing (cdr spacing))) - (if (listp tab-stop) - (setq tab-stop (cdr tab-stop))) - (setq same t)) - - ;; if `repeat' has not been set, move to - ;; the next line; don't bother searching - ;; anymore on this one - (if (and (not repeat) (not (bolp))) - (forward-line)) - - ;; if the search did not change point, - ;; move forward to avoid an infinite loop - (if (= (point) search-start) - (forward-char))))) - - ;; when they are no more matches for this rule, - ;; align whatever was left over - (if regions - (align-regions regions align-props rule func))) - - (setq case-fold-search current-case-fold))))))) + (let (rule-beg exclude-areas) + ;; determine first of all where the exclusions + ;; lie in this region + (when exclude-rules + (align-region + beg end 'entire + exclude-rules nil + (lambda (b e mode) + (or (and mode (listp mode)) + (setq exclude-areas + (cons (cons b e) + exclude-areas))))) + (setq exclude-areas + (nreverse + (sort exclude-areas #'car-less-than-car)))) + + ;; set `case-fold-search' according to the + ;; (optional) `case-fold' property + (and case-fold + (setq case-fold-search (cdr case-fold))) + + ;; while we can find the rule in the alignment + ;; region.. + (while (and (< (point) end-mark) + (setq search-start (point)) + (if regfunc + (funcall regfunc end-mark nil) + (re-search-forward regexp + end-mark t))) + + ;; give the user some indication of where we + ;; are, if it's a very large region being + ;; aligned + (if report + (let ((symbol (car rule))) + (if (and symbol (symbolp symbol)) + (message + "Aligning `%s' (rule %d of %d) %d%%..." + (symbol-name symbol) rule-index rule-count + (/ (* (- (point) real-beg) 100) + (- end-mark real-beg))) + (message + "Aligning %d%%..." + (/ (* (- (point) real-beg) 100) + (- end-mark real-beg)))))) + + ;; if the search ended us on the beginning of + ;; the next line, move back to the end of the + ;; previous line. + (if (and (bolp) (> (point) search-start)) + (forward-char -1)) + + ;; lookup the `group' attribute the first time + ;; that we need it + (unless group-c + (setq groups (or (cdr (assq 'group rule)) 1)) + (unless (listp groups) + (setq groups (list groups))) + (setq first (car groups))) + + (unless spacing-c + (setq spacing (cdr (assq 'spacing rule)) + spacing-c t)) + + (unless tab-stop-c + (setq tab-stop + (let ((rule-ts (assq 'tab-stop rule))) + (cond (rule-ts + (cdr rule-ts)) + ((symbolp align-to-tab-stop) + (symbol-value align-to-tab-stop)) + (t + align-to-tab-stop))) + tab-stop-c t)) + + ;; test whether we have found a match on the same + ;; line as a previous match + (when (> (point) eol) + (setq same nil) + (align--set-marker eol (line-end-position))) + + ;; lookup the `repeat' attribute the first time + (or repeat-c + (setq repeat (cdr (assq 'repeat rule)) + repeat-c t)) + + ;; lookup the `valid' attribute the first time + (or valid-c + (setq valid (assq 'valid rule) + valid-c t)) + + ;; remember the beginning position of this rule + ;; match, and save the match-data, since either + ;; the `valid' form, or the code that searches for + ;; section separation, might alter it + (setq rule-beg (match-beginning first) + save-match-data (match-data)) + + (or rule-beg + (error "No match for subexpression %s" first)) + + ;; unless the `valid' attribute is set, and tells + ;; us that the rule is not valid at this point in + ;; the code.. + (unless (and valid (not (funcall (cdr valid)))) + + ;; look to see if this match begins a new + ;; section. If so, we should align what we've + ;; collected so far, and then begin collecting + ;; anew for the next alignment section + (when (and last-point + (align-new-section-p last-point rule-beg + thissep)) + (align-regions regions align-props rule func) + (setq regions nil) + (setq align-props nil)) + (align--set-marker last-point rule-beg t) + + ;; restore the match data + (set-match-data save-match-data) + + ;; check whether the region to be aligned + ;; straddles an exclusion area + (let ((excls exclude-areas)) + (setq exclude-p nil) + (while excls + (if (and (< (match-beginning (car groups)) + (cdar excls)) + (> (match-end (car (last groups))) + (caar excls))) + (setq exclude-p t + excls nil) + (setq excls (cdr excls))))) + + ;; go through the parenthesis groups + ;; matching whitespace to be contracted or + ;; expanded (or possibly justified, if the + ;; `justify' attribute was set) + (unless exclude-p + (dolist (g groups) + ;; We must use markers, since + ;; `align-areas' may modify the buffer. + ;; Avoid polluting the markers. + (let* ((group-beg (copy-marker + (match-beginning g) t)) + (group-end (copy-marker + (match-end g) t)) + (region (cons group-beg group-end)) + (props (cons (if (listp spacing) + (car spacing) + spacing) + (if (listp tab-stop) + (car tab-stop) + tab-stop)))) + (push group-beg markers) + (push group-end markers) + (setq index (if same (1+ index) 0)) + (cond + ((nth index regions) + (setcar (nthcdr index regions) + (cons region + (nth index regions)))) + (regions + (nconc regions + (list (list region))) + (nconc align-props (list props))) + (t + (setq regions + (list (list region))) + (setq align-props (list props))))) + ;; If any further rule matches are found + ;; before `eol', they are on the same + ;; line as this one; this can only + ;; happen if the `repeat' attribute is + ;; non-nil. + (if (listp spacing) + (setq spacing (cdr spacing))) + (if (listp tab-stop) + (setq tab-stop (cdr tab-stop))) + (setq same t)) + + ;; if `repeat' has not been set, move to + ;; the next line; don't bother searching + ;; anymore on this one + (if (and (not repeat) (not (bolp))) + (forward-line)) + + ;; if the search did not change point, + ;; move forward to avoid an infinite loop + (if (= (point) search-start) + (forward-char))))) + + ;; when they are no more matches for this rule, + ;; align whatever was left over + (if regions + (align-regions regions align-props rule func)))))))) (setq rules (cdr rules) rule-index (1+ rule-index))) ;; This function can use a lot of temporary markers, so instead of ------------------------------------------------------------ revno: 113960 author: Kenichi Handa committer: Eli Zaretskii branch nick: trunk timestamp: Tue 2013-08-20 17:56:03 +0300 message: src/character.c (string_char): Improve commentary. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-20 00:51:35 +0000 +++ src/ChangeLog 2013-08-20 14:56:03 +0000 @@ -1,3 +1,7 @@ +2013-08-20 Kenichi Handa + + * character.c (string_char): Improve commentary. + 2013-08-20 Paul Eggert * image.c (SIGNATURE_DIGESTSIZE): Remove. === modified file 'src/character.c' --- src/character.c 2013-04-02 01:54:56 +0000 +++ src/character.c 2013-08-20 14:56:03 +0000 @@ -174,11 +174,14 @@ if (*p < 0x80 || ! (*p & 0x20) || ! (*p & 0x10)) { + /* 1-, 2-, and 3-byte sequences can be handled by the macro. */ c = STRING_CHAR_ADVANCE (p); } else if (! (*p & 0x08)) { - c = ((((p)[0] & 0xF) << 18) + /* A 4-byte sequence of this form: + 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ + c = ((((p)[0] & 0x7) << 18) | (((p)[1] & 0x3F) << 12) | (((p)[2] & 0x3F) << 6) | ((p)[3] & 0x3F)); @@ -186,7 +189,14 @@ } else { - c = ((((p)[1] & 0x3F) << 18) + /* A 5-byte sequence of this form: + + 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + + Note that the top 4 `x's are always 0, so shifting p[1] can + never exceed the maximum valid character codepoint. */ + c = (/* (((p)[0] & 0x3) << 24) ... always 0, so no need to shift. */ + (((p)[1] & 0x3F) << 18) | (((p)[2] & 0x3F) << 12) | (((p)[3] & 0x3F) << 6) | ((p)[4] & 0x3F)); ------------------------------------------------------------ revno: 113959 fixes bug: http://debbugs.gnu.org/15130 committer: Eli Zaretskii branch nick: trunk timestamp: Tue 2013-08-20 17:49:09 +0300 message: Document problems with Windows file names that end in blanks. doc/lispref/files.texi (Information about Files): Mention file names with trailing blanks on MS-Windows. (Bug#15130) diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-08-18 23:12:32 +0000 +++ doc/lispref/ChangeLog 2013-08-20 14:49:09 +0000 @@ -1,3 +1,8 @@ +2013-08-20 Eli Zaretskii + + * files.texi (Information about Files): Mention file names with + trailing blanks on MS-Windows. (Bug#15130) + 2013-08-18 Xue Fuqiao * positions.texi (Positions): Improve indexing. === modified file 'doc/lispref/files.texi' --- doc/lispref/files.texi 2013-07-24 13:10:38 +0000 +++ doc/lispref/files.texi 2013-08-20 14:49:09 +0000 @@ -776,6 +776,14 @@ arguments must all exist as actual files or directories unless otherwise noted. +@cindex file names, trailing whitespace +@cindex trailing blanks in file names +Be careful with file names that end in blanks: some filesystems +(notably, MS-Windows) will ignore trailing whitespace in file names, +and return information about the file after stripping those blanks +from the name, not about the file whose name you passed to the +functions described in this section. + @menu * Testing Accessibility:: Is a given file readable? Writable? * Kinds of Files:: Is it a directory? A symbolic link? ------------------------------------------------------------ revno: 113958 committer: Michael Albinus branch nick: trunk timestamp: Tue 2013-08-20 12:04:13 +0200 message: * minibuffer.el (completion--sifn-requote): Bind `non-essential'. * rfn-eshadow.el (rfn-eshadow-update-overlay): Move binding of `non-essential' up. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-17 10:20:15 +0000 +++ lisp/ChangeLog 2013-08-20 10:04:13 +0000 @@ -1,3 +1,10 @@ +2013-08-20 Michael Albinus + + * minibuffer.el (completion--sifn-requote): Bind `non-essential'. + + * rfn-eshadow.el (rfn-eshadow-update-overlay): Move binding of + `non-essential' up. + 2013-08-17 Michael Albinus * net/tramp.el: === modified file 'lisp/minibuffer.el' --- lisp/minibuffer.el 2013-07-30 20:42:15 +0000 +++ lisp/minibuffer.el 2013-08-20 10:04:13 +0000 @@ -2246,7 +2246,8 @@ ;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin" ;; (substitute-in-file-name "C:\") => "/" ;; (substitute-in-file-name "C:\bi") => "/bi" - (let* ((ustr (substitute-in-file-name qstr)) + (let* ((non-essential t) + (ustr (substitute-in-file-name qstr)) (uprefix (substring ustr 0 upos)) qprefix) ;; Main assumption: nothing after qpos should affect the text before upos, === modified file 'lisp/rfn-eshadow.el' --- lisp/rfn-eshadow.el 2013-01-01 09:11:05 +0000 +++ lisp/rfn-eshadow.el 2013-08-20 10:04:13 +0000 @@ -176,11 +176,11 @@ `file-name-shadow-mode'; the minibuffer should have already been set up by `rfn-eshadow-setup-minibuffer'." (condition-case nil - (let ((goal (substitute-in-file-name (minibuffer-contents))) - (mid (overlay-end rfn-eshadow-overlay)) - (start (minibuffer-prompt-end)) - (end (point-max)) - (non-essential t)) + (let* ((non-essential t) + (goal (substitute-in-file-name (minibuffer-contents))) + (mid (overlay-end rfn-eshadow-overlay)) + (start (minibuffer-prompt-end)) + (end (point-max))) (unless ;; Catch the common case where the shadow does not need to move. (and mid ------------------------------------------------------------ revno: 113957 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-08-20 01:30:24 -0700 message: * Makefile.in (distclean, bootstrap-clean, maintainer-clean): Fix shell-operator precedence problem in previous change. diff: === modified file 'ChangeLog' --- ChangeLog 2013-08-20 06:36:10 +0000 +++ ChangeLog 2013-08-20 08:30:24 +0000 @@ -1,3 +1,8 @@ +2013-08-20 Paul Eggert + + * Makefile.in (distclean, bootstrap-clean, maintainer-clean): + Fix shell-operator precedence problem in previous change. + 2013-08-20 Glenn Morris * Makefile.in (distclean, bootstrap-clean, maintainer-clean): === modified file 'Makefile.in' --- Makefile.in 2013-08-20 06:36:10 +0000 +++ Makefile.in 2013-08-20 08:30:24 +0000 @@ -859,8 +859,9 @@ (cd leim; $(MAKE) $(MFLAGS) distclean) (cd lisp; $(MAKE) $(MFLAGS) distclean) (cd nextstep && $(MAKE) $(MFLAGS) distclean) - [ ! -d test/automated ] || \ - cd test/automated && $(MAKE) $(MFLAGS) distclean + [ ! -d test/automated ] || { \ + cd test/automated && $(MAKE) $(MFLAGS) distclean; \ + } ${top_distclean} ### `bootstrap-clean' @@ -880,8 +881,9 @@ (cd leim; $(MAKE) $(MFLAGS) maintainer-clean) (cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean) (cd nextstep && $(MAKE) $(MFLAGS) maintainer-clean) - [ ! -d test/automated ] || \ - cd test/automated && $(MAKE) $(MFLAGS) bootstrap-clean + [ ! -d test/automated ] || { \ + cd test/automated && $(MAKE) $(MFLAGS) bootstrap-clean; \ + } [ ! -f config.log ] || mv -f config.log config.log~ ${top_bootclean} @@ -902,8 +904,9 @@ maintainer-clean: bootstrap-clean FRC (cd src; $(MAKE) $(MFLAGS) maintainer-clean) (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean) - [ ! -d test/automated ] || \ - cd test/automated && $(MAKE) $(MFLAGS) maintainer-clean + [ ! -d test/automated ] || { \ + cd test/automated && $(MAKE) $(MFLAGS) maintainer-clean; \ + } ${top_maintainer_clean} ### This doesn't actually appear in the coding standards, but Karl ------------------------------------------------------------ revno: 113956 committer: Glenn Morris branch nick: trunk timestamp: Mon 2013-08-19 23:39:17 -0700 message: Remove stray execute bit diff: === modified file 'test/automated/package-test.el' (properties changed: +x to -x) === modified file 'test/automated/package-x-test.el' (properties changed: +x to -x)