Now on revision 112330. ------------------------------------------------------------ revno: 112330 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14176 author: Thierry Volpiatto committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-04-19 01:11:16 -0400 message: * lisp/bookmark.el (bookmark-completing-read): Improve handling of empty string. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-19 04:09:08 +0000 +++ lisp/ChangeLog 2013-04-19 05:11:16 +0000 @@ -1,3 +1,8 @@ +2013-04-19 Thierry Volpiatto + + * bookmark.el (bookmark-completing-read): Improve handling of empty + string (bug#14176). + 2013-04-19 Stefan Monnier * vc/vc-dispatcher.el (vc-do-command): Get rid of default sentinel msg. === modified file 'lisp/bookmark.el' --- lisp/bookmark.el 2013-04-04 01:59:09 +0000 +++ lisp/bookmark.el 2013-04-19 05:11:16 +0000 @@ -427,8 +427,8 @@ "Prompting with PROMPT, read a bookmark name in completion. PROMPT will get a \": \" stuck on the end no matter what, so you probably don't want to include one yourself. -Optional second arg DEFAULT is a string to return if the user enters -the empty string." +Optional arg DEFAULT is a string to return if the user input is empty. +If DEFAULT is nil then return empty string for empty input." (bookmark-maybe-load-default-file) ; paranoia (if (listp last-nonmenu-event) (bookmark-menu-popup-paned-menu t prompt @@ -437,22 +437,17 @@ 'string-lessp) (bookmark-all-names))) (let* ((completion-ignore-case bookmark-completion-ignore-case) - (default default) + (default (unless (equal "" default) default)) (prompt (concat prompt (if default (format " (%s): " default) - ": "))) - (str - (completing-read prompt - (lambda (string pred action) - (if (eq action 'metadata) - '(metadata (category . bookmark)) - (complete-with-action - action bookmark-alist string pred))) - nil - 0 - nil - 'bookmark-history))) - (if (string-equal "" str) default str)))) + ": ")))) + (completing-read prompt + (lambda (string pred action) + (if (eq action 'metadata) + '(metadata (category . bookmark)) + (complete-with-action + action bookmark-alist string pred))) + nil 0 nil 'bookmark-history default)))) (defmacro bookmark-maybe-historicize-string (string) ------------------------------------------------------------ revno: 112329 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2013-04-19 00:09:08 -0400 message: * lisp/vc/vc-dispatcher.el (vc-do-command): Get rid of default sentinel msg. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-19 02:31:09 +0000 +++ lisp/ChangeLog 2013-04-19 04:09:08 +0000 @@ -1,3 +1,7 @@ +2013-04-19 Stefan Monnier + + * vc/vc-dispatcher.el (vc-do-command): Get rid of default sentinel msg. + 2013-04-19 Fabián Ezequiel Gallina New faster Imenu implementation (bug#14058). === modified file 'lisp/vc/vc-dispatcher.el' --- lisp/vc/vc-dispatcher.el 2013-01-01 09:11:05 +0000 +++ lisp/vc/vc-dispatcher.el 2013-04-19 04:09:08 +0000 @@ -329,7 +329,9 @@ command squeezed)))) (when vc-command-messages (message "Running %s in background..." full-command)) - ;;(set-process-sentinel proc (lambda (p msg) (delete-process p))) + ;; Get rid of the default message insertion, in case we don't + ;; set a sentinel explicitly. + (set-process-sentinel proc #'ignore) (set-process-filter proc 'vc-process-filter) (setq status proc) (when vc-command-messages ------------------------------------------------------------ revno: 112328 fixes bug: http://debbugs.gnu.org/14058 committer: Fabián Ezequiel Gallina branch nick: trunk timestamp: Thu 2013-04-18 23:31:09 -0300 message: New faster Imenu implementation. * lisp/progmodes/python.el: (python-imenu-prev-index-position): (python-imenu-format-item-label-function) (python-imenu-format-parent-item-label-function) (python-imenu-format-parent-item-jump-label-function): New vars. (python-imenu-format-item-label) (python-imenu-format-parent-item-label) (python-imenu-format-parent-item-jump-label) (python-imenu--put-parent, python-imenu--build-tree) (python-imenu-create-index, python-imenu-create-flat-index) (python-util-popn): New functions. (python-mode): Set imenu-create-index-function to python-imenu-create-index. * test/automated/python-tests.el (python-imenu-prev-index-position-1): Removed test. (python-imenu-create-index-1, python-imenu-create-flat-index-1): New tests. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-18 13:15:08 +0000 +++ lisp/ChangeLog 2013-04-19 02:31:09 +0000 @@ -1,3 +1,21 @@ +2013-04-19 Fabián Ezequiel Gallina + + New faster Imenu implementation (bug#14058). + * progmodes/python.el: + (python-imenu-prev-index-position): + (python-imenu-format-item-label-function) + (python-imenu-format-parent-item-label-function) + (python-imenu-format-parent-item-jump-label-function): + New vars. + (python-imenu-format-item-label) + (python-imenu-format-parent-item-label) + (python-imenu-format-parent-item-jump-label) + (python-imenu--put-parent, python-imenu--build-tree) + (python-imenu-create-index, python-imenu-create-flat-index) + (python-util-popn): New functions. + (python-mode): Set imenu-create-index-function to + python-imenu-create-index. + 2013-04-18 Stefan Monnier * winner.el (winner-active-region): Use region-active-p, activate-mark === modified file 'lisp/progmodes/python.el' --- lisp/progmodes/python.el 2013-04-17 22:23:13 +0000 +++ lisp/progmodes/python.el 2013-04-19 02:31:09 +0000 @@ -177,12 +177,14 @@ ;; might guessed you should run `python-shell-send-buffer' from time ;; to time to get better results too. -;; Imenu: This mode supports Imenu in its most basic form, letting it -;; build the necessary alist via `imenu-default-create-index-function' -;; by having set `imenu-extract-index-name-function' to -;; `python-info-current-defun' and -;; `imenu-prev-index-position-function' to -;; `python-imenu-prev-index-position'. +;; Imenu: There are two index building functions to be used as +;; `imenu-create-index-function': `python-imenu-create-index' (the +;; default one, builds the alist in form of a tree) and +;; `python-imenu-create-flat-index'. See also +;; `python-imenu-format-item-label-function', +;; `python-imenu-format-parent-item-label-function', +;; `python-imenu-format-parent-item-jump-label-function' variables for +;; changing the way labels are formatted in the tree version. ;; If you used python-mode.el you probably will miss auto-indentation ;; when inserting newlines. To achieve the same behavior you have @@ -1194,7 +1196,7 @@ (defun python-nav--syntactically (fn poscompfn &optional contextfn) "Move point using FN avoiding places with specific context. -FN must take no arguments. POSCOMPFN is a two arguments function +FN must take no arguments. POSCOMPFN is a two arguments function used to compare current and previous point after it is moved using FN, this is normally a less-than or greater-than comparison. Optional argument CONTEXTFN defaults to @@ -3008,15 +3010,192 @@ ;;; Imenu -(defun python-imenu-prev-index-position () - "Python mode's `imenu-prev-index-position-function'." - (let ((found)) - (while (and (setq found - (re-search-backward python-nav-beginning-of-defun-regexp nil t)) - (not (python-info-looking-at-beginning-of-defun)))) - (and found - (python-info-looking-at-beginning-of-defun) - (python-info-current-defun)))) +(defvar python-imenu-format-item-label-function + 'python-imenu-format-item-label + "Imenu function used to format an item label. +It must be a function with two arguments: TYPE and NAME.") + +(defvar python-imenu-format-parent-item-label-function + 'python-imenu-format-parent-item-label + "Imenu function used to format a parent item label. +It must be a function with two arguments: TYPE and NAME.") + +(defvar python-imenu-format-parent-item-jump-label-function + 'python-imenu-format-parent-item-jump-label + "Imenu function used to format a parent jump item label. +It must be a function with two arguments: TYPE and NAME.") + +(defun python-imenu-format-item-label (type name) + "Return imenu label for single node using TYPE and NAME." + (format "%s (%s)" name type)) + +(defun python-imenu-format-parent-item-label (type name) + "Return imenu label for parent node using TYPE and NAME." + (format "%s..." (python-imenu-format-item-label type name))) + +(defun python-imenu-format-parent-item-jump-label (type name) + "Return imenu label for parent node jump using TYPE and NAME." + (if (string= type "class") + "*class definition*" + "*function definition*")) + +(defun python-imenu--put-parent (type name pos num-children tree &optional root) + "Add the parent with TYPE, NAME, POS and NUM-CHILDREN to TREE. +Optional Argument ROOT must be non-nil when the node being +processed is the root of the TREE." + (let ((label + (funcall python-imenu-format-item-label-function type name)) + (jump-label + (funcall python-imenu-format-parent-item-jump-label-function type name))) + (if root + ;; This is the root, everything is a children. + (cons label (cons (cons jump-label pos) tree)) + ;; This is node a which may contain some children. + (cons + (cons label (cons (cons jump-label pos) + ;; Append all the children + (python-util-popn tree num-children))) + ;; All previous non-children nodes. + (nthcdr num-children tree))))) + +(defun python-imenu--build-tree (&optional min-indent prev-indent num-children tree) + "Recursively build the tree of nested definitions of a node. +Arguments MIN-INDENT PREV-INDENT NUM-CHILDREN and TREE are +internal and should not be passed explicitly unless you know what +you are doing." + (setq num-children (or num-children 0) + min-indent (or min-indent 0)) + (let* ((pos (python-nav-backward-defun)) + (type) + (name (when (and pos (looking-at python-nav-beginning-of-defun-regexp)) + (let ((split (split-string (match-string-no-properties 0)))) + (setq type (car split)) + (cadr split)))) + (label (when name + (funcall python-imenu-format-item-label-function type name))) + (indent (current-indentation))) + (cond ((not pos) + ;; No defun found, nothing to add. + tree) + ((equal indent 0) + (if (> num-children 0) + ;; Append it as the parent of everything collected to + ;; this point. + (python-imenu--put-parent type name pos num-children tree t) + ;; There are no children, this is a lonely defun. + (cons label pos))) + ((equal min-indent indent) + ;; Stop collecting nodes after moving to a position with + ;; indentation equaling min-indent. This is specially + ;; useful for navigating nested definitions recursively. + tree) + (t + (python-imenu--build-tree + min-indent + indent + ;; Add another children, either when this is the + ;; first call or when indentation is + ;; less-or-equal than previous. And do not + ;; discard the number of children, because the + ;; way code is scanned, all children are + ;; collected until a root node yet to be found + ;; appears. + (if (or (not prev-indent) + (and + (> indent min-indent) + (<= indent prev-indent))) + (1+ num-children) + num-children) + (cond ((not prev-indent) + ;; First call to the function: append this + ;; defun to the index. + (list (cons label pos))) + ((= indent prev-indent) + ;; Add another defun with the same depth + ;; as the previous. + (cons (cons label pos) tree)) + ((and (< indent prev-indent) + (< 0 num-children)) + ;; There are children to be appended and + ;; the previous defun had more + ;; indentation, the current one must be a + ;; parent. + (python-imenu--put-parent type name pos num-children tree)) + ((> indent prev-indent) + ;; There are children defuns deeper than + ;; current depth. Fear not, we already + ;; know how to treat them. + (cons + (prog1 + (python-imenu--build-tree + prev-indent indent 1 (list (cons label pos))) + ;; Adjustment: after scanning backwards + ;; for all deeper children, we need to + ;; continue our scan for a parent from + ;; the current defun we are looking at. + (python-nav-forward-defun)) + tree)))))))) + +(defun python-imenu-create-index () + "Return tree Imenu alist for the current python buffer. +Change `python-imenu-format-item-label-function', +`python-imenu-format-parent-item-label-function', +`python-imenu-format-parent-item-jump-label-function' to +customize how labels are formatted." + (goto-char (point-max)) + (let ((index) + (tree)) + (while (setq tree (python-imenu--build-tree)) + (setq index (cons tree index))) + index)) + +(defun python-imenu-create-flat-index (&optional alist prefix) + "Return flat outline of the current python buffer for Imenu. +Optional Argument ALIST is the tree to be flattened, when nil +`python-imenu-build-index' is used with +`python-imenu-format-parent-item-jump-label-function' +`python-imenu-format-parent-item-label-function' +`python-imenu-format-item-label-function' set to (lambda (type +name) name). Optional Argument PREFIX is used in recursive calls +and should not be passed explicitly. + +Converts this: + + \((\"Foo\" . 103) + (\"Bar\" . 138) + (\"decorator\" + (\"decorator\" . 173) + (\"wrap\" + (\"wrap\" . 353) + (\"wrapped_f\" . 393)))) + +To this: + + \((\"Foo\" . 103) + (\"Bar\" . 138) + (\"decorator\" . 173) + (\"decorator.wrap\" . 353) + (\"decorator.wrapped_f\" . 393))" + (apply + 'nconc + (mapcar + (lambda (item) + (let ((name (if prefix + (concat prefix "." (car item)) + (car item))) + (pos (cdr item))) + (cond ((or (numberp pos) (markerp pos)) + (list (cons name pos))) + ((listp pos) + (message "%S" item) + (cons + (cons name (cdar pos)) + (python-imenu-create-flat-index (cddr item) name)))))) + (or alist + (let ((python-imenu-format-item-label-function (lambda (type name) name)) + (python-imenu-format-parent-item-label-function (lambda (type name) name)) + (python-imenu-format-parent-item-jump-label-function (lambda (type name) name))) + (python-imenu-create-index)))))) ;;; Misc helpers @@ -3337,6 +3516,22 @@ (goto-char comment-start)) (forward-comment factor))) +(defun python-util-popn (lst n) + "Return LST first N elements. +N should be an integer, when it's a natural negative number its +opposite is used. When N is bigger than the length of LST, the +list is returned as is." + (let* ((n (min (abs n))) + (len (length lst)) + (acc)) + (if (> n len) + lst + (while (< 0 n) + (setq acc (cons (car lst) acc) + lst (cdr lst) + n (1- n))) + (reverse acc)))) + ;;;###autoload (define-derived-mode python-mode prog-mode "Python" @@ -3382,11 +3577,8 @@ (add-hook 'post-self-insert-hook 'python-indent-post-self-insert-function nil 'local) - (set (make-local-variable 'imenu-extract-index-name-function) - #'python-info-current-defun) - - (set (make-local-variable 'imenu-prev-index-position-function) - #'python-imenu-prev-index-position) + (set (make-local-variable 'imenu-create-index-function) + #'python-imenu-create-index) (set (make-local-variable 'add-log-current-defun-function) #'python-info-current-defun) === modified file 'test/ChangeLog' --- test/ChangeLog 2013-04-17 22:23:13 +0000 +++ test/ChangeLog 2013-04-19 02:31:09 +0000 @@ -1,3 +1,10 @@ +2013-04-19 Fabián Ezequiel Gallina + + * automated/python-tests.el (python-imenu-prev-index-position-1): + Removed test. + (python-imenu-create-index-1, python-imenu-create-flat-index-1): + New tests. + 2013-04-17 Fabián Ezequiel Gallina * automated/python-tests.el (python-nav-backward-defun-2) === modified file 'test/automated/python-tests.el' --- test/automated/python-tests.el 2013-04-17 22:23:13 +0000 +++ test/automated/python-tests.el 2013-04-19 02:31:09 +0000 @@ -1673,66 +1673,133 @@ ;;; Imenu -(ert-deftest python-imenu-prev-index-position-1 () - (require 'imenu) - (python-tests-with-temp-buffer - " -def decoratorFunctionWithArguments(arg1, arg2, arg3): - '''print decorated function call data to stdout. - - Usage: - - @decoratorFunctionWithArguments('arg1', 'arg2') - def func(a, b, c=True): - pass - ''' - - def wwrap(f): - print 'Inside wwrap()' - def wrapped_f(*args): - print 'Inside wrapped_f()' - print 'Decorator arguments:', arg1, arg2, arg3 - f(*args) - print 'After f(*args)' - return wrapped_f - return wwrap - -def test(): # Some comment - 'This is a test function' - print 'test' - -class C(object): - - def m(self): - self.c() - - def b(): - pass - - def a(): - pass - - def c(self): - pass -" - (let ((expected - '(("*Rescan*" . -99) - ("decoratorFunctionWithArguments" . 2) - ("decoratorFunctionWithArguments.wwrap" . 224) - ("decoratorFunctionWithArguments.wwrap.wrapped_f" . 273) - ("test" . 500) - ("C" . 575) - ("C.m" . 593) - ("C.m.b" . 628) - ("C.m.a" . 663) - ("C.c" . 698)))) - (mapc - (lambda (elt) - (should (= (cdr (assoc-string (car elt) expected)) - (if (markerp (cdr elt)) - (marker-position (cdr elt)) - (cdr elt))))) - (imenu--make-index-alist))))) + +(ert-deftest python-imenu-create-index-1 () + (python-tests-with-temp-buffer + " +class Foo(models.Model): + pass + + +class Bar(models.Model): + pass + + +def decorator(arg1, arg2, arg3): + '''print decorated function call data to stdout. + + Usage: + + @decorator('arg1', 'arg2') + def func(a, b, c=True): + pass + ''' + + def wrap(f): + print ('wrap') + def wrapped_f(*args): + print ('wrapped_f') + print ('Decorator arguments:', arg1, arg2, arg3) + f(*args) + print ('called f(*args)') + return wrapped_f + return wrap + + +class Baz(object): + + def a(self): + pass + + def b(self): + pass + + class Frob(object): + + def c(self): + pass +" + (goto-char (point-max)) + (should (equal + (list + (cons "Foo (class)" (copy-marker 2)) + (cons "Bar (class)" (copy-marker 38)) + (list + "decorator (def)" + (cons "*function definition*" (copy-marker 74)) + (list + "wrap (def)" + (cons "*function definition*" (copy-marker 254)) + (cons "wrapped_f (def)" (copy-marker 294)))) + (list + "Baz (class)" + (cons "*class definition*" (copy-marker 519)) + (cons "a (def)" (copy-marker 539)) + (cons "b (def)" (copy-marker 570)) + (list + "Frob (class)" + (cons "*class definition*" (copy-marker 601)) + (cons "c (def)" (copy-marker 626))))) + (python-imenu-create-index))))) + +(ert-deftest python-imenu-create-flat-index-1 () + (python-tests-with-temp-buffer + " +class Foo(models.Model): + pass + + +class Bar(models.Model): + pass + + +def decorator(arg1, arg2, arg3): + '''print decorated function call data to stdout. + + Usage: + + @decorator('arg1', 'arg2') + def func(a, b, c=True): + pass + ''' + + def wrap(f): + print ('wrap') + def wrapped_f(*args): + print ('wrapped_f') + print ('Decorator arguments:', arg1, arg2, arg3) + f(*args) + print ('called f(*args)') + return wrapped_f + return wrap + + +class Baz(object): + + def a(self): + pass + + def b(self): + pass + + class Frob(object): + + def c(self): + pass +" + (goto-char (point-max)) + (should (equal + (list (cons "Foo" (copy-marker 2)) + (cons "Bar" (copy-marker 38)) + (cons "decorator" (copy-marker 74)) + (cons "decorator.wrap" (copy-marker 254)) + (cons "decorator.wrap.wrapped_f" (copy-marker 294)) + (cons "Baz" (copy-marker 519)) + (cons "Baz.a" (copy-marker 539)) + (cons "Baz.b" (copy-marker 570)) + (cons "Baz.Frob" (copy-marker 601)) + (cons "Baz.Frob.c" (copy-marker 626))) + (python-imenu-create-flat-index))))) ;;; Misc helpers ------------------------------------------------------------ revno: 112327 fixes bug: http://debbugs.gnu.org/14068 author: John Marino committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-04-18 10:12:21 -0700 message: * configure.ac: Add DragonFly BSD, mostly same as FreeBSD (tiny change) diff: === modified file 'ChangeLog' --- ChangeLog 2013-04-18 05:03:53 +0000 +++ ChangeLog 2013-04-18 17:12:21 +0000 @@ -1,3 +1,7 @@ +2013-04-18 John Marino (tiny change) + + * configure.ac: Add DragonFly BSD, mostly same as FreeBSD. (Bug#14068) + 2013-04-18 Glenn Morris * configure.ac (AC_PROG_LN_S): Remove, too restrictive. === modified file 'configure.ac' --- configure.ac 2013-04-18 05:03:53 +0000 +++ configure.ac 2013-04-18 17:12:21 +0000 @@ -439,6 +439,11 @@ opsys=freebsd ;; + ## DragonFly ports + *-*-dragonfly* ) + opsys=dragonfly + ;; + ## FreeBSD kernel + glibc based userland *-*-kfreebsd*gnu* ) opsys=gnu-kfreebsd @@ -968,7 +973,7 @@ LD_SWITCH_SYSTEM= case "$opsys" in - freebsd) + freebsd|dragonfly) ## Let `ld' find image libs and similar things in /usr/local/lib. ## The system compiler, GCC, has apparently been modified to not ## look there, contrary to what a stock GCC would do. @@ -1054,7 +1059,7 @@ ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2. aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;; - freebsd) LIBS_SYSTEM="-lutil" ;; + freebsd|dragonfly) LIBS_SYSTEM="-lutil" ;; hpux*) LIBS_SYSTEM="-l:libdld.sl" ;; @@ -1095,7 +1100,7 @@ ## Adding -lm confuses the dynamic linker, so omit it. LIB_MATH= ;; - freebsd ) + freebsd | dragonfly ) SYSTEM_TYPE=berkeley-unix ;; gnu-linux | gnu-kfreebsd ) @@ -2866,7 +2871,7 @@ case "$opsys" in aix4-2) mail_lock="lockf" ;; - gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;; + gnu|freebsd|dragonfly|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;; ## On GNU/Linux systems, both methods are used by various mail programs. ## I assume most people are using newer mailers that have heard of flock. @@ -3038,7 +3043,7 @@ fi ;; - openbsd) LIBS_TERMCAP="-lncurses" ;; + openbsd | dragonfly) LIBS_TERMCAP="-lncurses" ;; ## hpux: Make sure we get select from libc rather than from libcurses ## because libcurses on HPUX 10.10 has a broken version of select. @@ -3461,7 +3466,7 @@ esac case $opsys in - darwin | freebsd | netbsd | openbsd ) + darwin | dragonfly | freebsd | netbsd | openbsd ) AC_DEFINE(DONT_REOPEN_PTY, 1, [Define if process.c does not need to close a pty to make it a controlling terminal (it is already a controlling terminal of the subprocess, because we did ioctl TIOCSCTTY).]) @@ -3567,7 +3572,7 @@ AC_DEFINE(FIRST_PTY_LETTER, ['p']) ;; - gnu-linux | gnu-kfreebsd | freebsd | netbsd ) + gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd ) dnl if HAVE_GRANTPT if test "x$ac_cv_func_grantpt" = xyes; then AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.]) @@ -3650,7 +3655,7 @@ case $opsys in dnl Perry Smith says this is correct for AIX. dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX. - aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd | darwin ) + aix4-2 | cygwin | gnu | irix6-5 | dragonfly | freebsd | netbsd | openbsd | darwin ) AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1) ;; @@ -3699,7 +3704,7 @@ case $opsys in darwin) AC_DEFINE(TAB3, OXTABS) ;; - gnu | freebsd | netbsd | openbsd ) + gnu | dragonfly | freebsd | netbsd | openbsd ) AC_DEFINE(TABDLY, OXTABS, [Undocumented.]) AC_DEFINE(TAB3, OXTABS) ;; @@ -3753,7 +3758,7 @@ else case $opsys in dnl irix: Tested on Irix 6.5. SCM worked on earlier versions. - freebsd | netbsd | openbsd | irix6-5 | sol2* ) + dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* ) AC_DEFINE(GC_SETJMP_WORKS, 1) ;; esac ------------------------------------------------------------ revno: 112326 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14225 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2013-04-18 09:15:08 -0400 message: * lisp/winner.el (winner-active-region): Use region-active-p, activate-mark and deactivate-mark. * lisp/simple.el (deactivate-mark): Don't inline it. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-18 12:47:01 +0000 +++ lisp/ChangeLog 2013-04-18 13:15:08 +0000 @@ -1,3 +1,10 @@ +2013-04-18 Stefan Monnier + + * winner.el (winner-active-region): Use region-active-p, activate-mark + and deactivate-mark (bug#14225). + + * simple.el (deactivate-mark): Don't inline it. + 2013-04-18 Michael Albinus * net/tramp-sh.el (tramp-remote-process-environment): Add "TMOUT=0". === modified file 'lisp/simple.el' --- lisp/simple.el 2013-04-18 00:12:33 +0000 +++ lisp/simple.el 2013-04-18 13:15:08 +0000 @@ -4177,7 +4177,7 @@ (marker-position (mark-marker)) (signal 'mark-inactive nil))) -(defsubst deactivate-mark (&optional force) +(defun deactivate-mark (&optional force) "Deactivate the mark. If Transient Mark mode is disabled, this function normally does nothing; but if FORCE is non-nil, it deactivates the mark anyway. === modified file 'lisp/winner.el' --- lisp/winner.el 2013-01-01 09:11:05 +0000 +++ lisp/winner.el 2013-04-18 13:15:08 +0000 @@ -45,10 +45,8 @@ (if (featurep 'xemacs) `(if ,store (zmacs-activate-region) (zmacs-deactivate-region)) - `(setq mark-active ,store))))) - (if (boundp 'mark-active) - mark-active - (region-active-p))) + `(if ,store (activate-mark) (deactivate-mark)))))) + (region-active-p)) (defalias 'winner-edges (if (featurep 'xemacs) 'window-pixel-edges 'window-edges)) ------------------------------------------------------------ revno: 112325 committer: Michael Albinus + + * net/tramp-sh.el (tramp-remote-process-environment): Add "TMOUT=0". + 2013-04-18 Tassilo Horn * files.el (auto-mode-alist): Delete OpenDocument and StarOffice === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2013-03-13 11:42:21 +0000 +++ lisp/net/tramp-sh.el 2013-04-18 12:47:01 +0000 @@ -422,7 +422,7 @@ ;;;###tramp-autoload (defcustom tramp-remote-process-environment - `("HISTFILE=$HOME/.tramp_history" "HISTSIZE=1" "LC_ALL=C" + `("HISTFILE=$HOME/.tramp_history" "HISTSIZE=1" "TMOUT=0" "LC_ALL=C" ,(format "TERM=%s" tramp-terminal-type) "EMACS=t" ;; Deprecated. ,(format "INSIDE_EMACS='%s,tramp:%s'" emacs-version tramp-version) ------------------------------------------------------------ revno: 112324 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-04-18 06:17:38 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2013-04-07 10:19:05 +0000 +++ autogen/Makefile.in 2013-04-18 10:17:38 +0000 @@ -663,7 +663,7 @@ LIB_PTHREAD = @LIB_PTHREAD@ LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ LIB_TIMER_TIME = @LIB_TIMER_TIME@ -LN_S = @LN_S@ +LN_S_FILEONLY = @LN_S_FILEONLY@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@ === modified file 'autogen/configure' --- autogen/configure 2013-04-13 10:17:45 +0000 +++ autogen/configure 2013-04-18 10:17:38 +0000 @@ -1363,7 +1363,7 @@ PAXCTL GZIP_PROG INSTALL_INFO -LN_S +LN_S_FILEONLY GNULIB_WARN_CFLAGS WARN_CFLAGS WERROR_CFLAGS @@ -8115,18 +8115,36 @@ -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works for files in the same directory" >&5 +$as_echo_n "checking whether ln -s works for files in the same directory... " >&6; } +rm -f conf$$ conf$$.file + +LN_S_FILEONLY='cp -p' + +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + LN_S_FILEONLY='ln -s' + elif ln conf$$.file conf$$ 2>/dev/null; then + LN_S_FILEONLY=ln + fi +fi + +rm -f conf$$ conf$$.file + +if test "$LN_S_FILEONLY" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S_FILEONLY" >&5 +$as_echo "no, using $LN_S_FILEONLY" >&6; } fi + + # Extract the first word of "install-info", so it can be a program name with args. set dummy install-info; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ------------------------------------------------------------ revno: 112323 committer: Tassilo Horn branch nick: trunk timestamp: Thu 2013-04-18 08:24:10 +0200 message: * files.el (auto-mode-alist): Delete OpenDocument and StarOffice file extensions from the archive-mode entry in order to prefer doc-view-mode-maybe with archive-mode as fallback (bug#14188). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-04-18 02:20:12 +0000 +++ lisp/ChangeLog 2013-04-18 06:24:10 +0000 @@ -1,3 +1,9 @@ +2013-04-18 Tassilo Horn + + * files.el (auto-mode-alist): Delete OpenDocument and StarOffice + file extensions from the archive-mode entry in order to prefer + doc-view-mode-maybe with archive-mode as fallback (bug#14188). + 2013-04-18 Leo Liu * bindings.el (help-event-list): Add ?\?. === modified file 'lisp/files.el' --- lisp/files.el 2013-04-14 21:57:21 +0000 +++ lisp/files.el 2013-04-18 06:24:10 +0000 @@ -2312,7 +2312,7 @@ ("\\.\\(\ arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|\ ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" . archive-mode) - ("\\.\\(sx[dmicw]\\|od[fgpst]\\|oxt\\)\\'" . archive-mode) ;OpenOffice.org + ("\\.oxt\\'" . archive-mode) ;(Open|Libre)Office extensions. ("\\.\\(deb\\|[oi]pk\\)\\'" . archive-mode) ; Debian/Opkg packages. ;; Mailer puts message to be edited in ;; /tmp/Re.... or Message