aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJoakim Verona2013-02-22 00:04:19 +0100
committerJoakim Verona2013-02-22 00:04:19 +0100
commit77a72b7ae367eb0c98f1bcbe021076a9cb97e86f (patch)
tree213a3ada8ecea6f380f5545b1eae12c6aabd3694 /lisp
parentf0f34630a4c8b467df3ec7eb445ceedd93a12a71 (diff)
parentb59a2e9edb562fce9c63a73242db323cd4a9dc0f (diff)
downloademacs-77a72b7ae367eb0c98f1bcbe021076a9cb97e86f.tar.gz
emacs-77a72b7ae367eb0c98f1bcbe021076a9cb97e86f.zip
auto upstream
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog46
-rw-r--r--lisp/calc/calc-graph.el2
-rw-r--r--lisp/cmuscheme.el2
-rw-r--r--lisp/files.el18
-rw-r--r--lisp/info.el33
-rw-r--r--lisp/informat.el20
-rw-r--r--lisp/net/tramp-sh.el2
-rw-r--r--lisp/net/tramp.el20
-rw-r--r--lisp/progmodes/python.el65
9 files changed, 136 insertions, 72 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index abcf6578060..68cff2f6d29 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,49 @@
12013-02-21 Bastien Guerry <bzg@gnu.org>
2
3 * cmuscheme.el (scheme-buffer): Fix docstring. (Bug#13778)
4
52013-02-21 Fabián Ezequiel Gallina <fgallina@cuca>
6
7 * progmodes/python.el (python-info-current-defun): Enhance
8 match-data cluttering prevention.
9
102013-02-21 Glenn Morris <rgm@gnu.org>
11
12 * net/tramp.el (tramp-get-debug-buffer): Ensure outline.el is not
13 loaded while outline-regexp is let bound. (Bug#9584)
14
152013-02-21 Fabián Ezequiel Gallina <fgallina@cuca>
16
17 * progmodes/python.el (python-info-current-defun): Fix failed
18 defun name retrieval because of unwanted match-data cluttering.
19
202013-02-21 Michael Albinus <michael.albinus@gmx.de>
21
22 * net/tramp.el (tramp-ssh-controlmaster-template): Make it a
23 defconst. Apply independent check for ControlPersist.
24
25 * net/tramp-sh.el (tramp-sh-handle-set-file-times): Set $UTC only
26 temporarily, via "env".
27
282013-02-21 Glenn Morris <rgm@gnu.org>
29
30 * info.el (Info-enable-edit): Remove.
31 (Info-edit): Disable it rather than using Info-enable.
32 (Info-edit-mode-hook, Info-edit-map, Info-edit-mode, Info-edit)
33 (Info-cease-edit): Make editing of Info files obsolete.
34
35 * informat.el (Info-tagify):
36 Handle buffers not visiting files. (Bug#13763)
37
382013-02-21 Juanma Barranquero <lekktu@gmail.com>
39
40 * calc/calc-graph.el (calc-graph-show-dumb): Fix typo.
41
422013-02-21 Glenn Morris <rgm@gnu.org>
43
44 * files.el (basic-save-buffer): Move check for existing parent
45 directory after hooks. (Bug#13773)
46
12013-02-20 Stefan Monnier <monnier@iro.umontreal.ca> 472013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 48
3 * simple.el (command-execute): Move from C. Add obsolete check. 49 * simple.el (command-execute): Move from C. Add obsolete check.
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index c84c7fdf949..16fc6c09dbe 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -948,7 +948,7 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
948 (setq calc-dumb-map (make-sparse-keymap)) 948 (setq calc-dumb-map (make-sparse-keymap))
949 (define-key calc-dumb-map "\n" 'scroll-up-command) 949 (define-key calc-dumb-map "\n" 'scroll-up-command)
950 (define-key calc-dumb-map " " 'scroll-up-command) 950 (define-key calc-dumb-map " " 'scroll-up-command)
951 (define-key calc-dump-map [?\S-\ ] 'scroll-down-command) 951 (define-key calc-dumb-map [?\S-\ ] 'scroll-down-command)
952 (define-key calc-dumb-map "\177" 'scroll-down-command) 952 (define-key calc-dumb-map "\177" 'scroll-down-command)
953 (define-key calc-dumb-map "<" 'scroll-left) 953 (define-key calc-dumb-map "<" 'scroll-left)
954 (define-key calc-dumb-map ">" 'scroll-right) 954 (define-key calc-dumb-map ">" 'scroll-right)
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index d40822188ee..130eb374538 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -447,7 +447,7 @@ in the next one.")
447 "\"\)\n"))) 447 "\"\)\n")))
448 448
449 449
450(defvar scheme-buffer nil "*The current scheme process buffer. 450(defvar scheme-buffer nil "The current scheme process buffer.
451 451
452MULTIPLE PROCESS SUPPORT 452MULTIPLE PROCESS SUPPORT
453=========================================================================== 453===========================================================================
diff --git a/lisp/files.el b/lisp/files.el
index f9ed65b8ac0..f9d02511839 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4563,15 +4563,8 @@ Before and after saving the buffer, this function runs
4563 (not (file-exists-p buffer-file-name)))) 4563 (not (file-exists-p buffer-file-name))))
4564 (let ((recent-save (recent-auto-save-p)) 4564 (let ((recent-save (recent-auto-save-p))
4565 setmodes) 4565 setmodes)
4566 (if buffer-file-name
4567 (let ((dir (file-name-directory
4568 (expand-file-name buffer-file-name))))
4569 (unless (file-exists-p dir)
4570 (if (y-or-n-p
4571 (format "Directory `%s' does not exist; create? " dir))
4572 (make-directory dir t)
4573 (error "Canceled"))))
4574 ;; If buffer has no file name, ask user for one. 4566 ;; If buffer has no file name, ask user for one.
4567 (or buffer-file-name
4575 (let ((filename 4568 (let ((filename
4576 (expand-file-name 4569 (expand-file-name
4577 (read-file-name "File to save in: " 4570 (read-file-name "File to save in: "
@@ -4628,7 +4621,14 @@ Before and after saving the buffer, this function runs
4628 (run-hook-with-args-until-success 'write-file-functions) 4621 (run-hook-with-args-until-success 'write-file-functions)
4629 ;; If a hook returned t, file is already "written". 4622 ;; If a hook returned t, file is already "written".
4630 ;; Otherwise, write it the usual way now. 4623 ;; Otherwise, write it the usual way now.
4631 (setq setmodes (basic-save-buffer-1))) 4624 (let ((dir (file-name-directory
4625 (expand-file-name buffer-file-name))))
4626 (unless (file-exists-p dir)
4627 (if (y-or-n-p
4628 (format "Directory `%s' does not exist; create? " dir))
4629 (make-directory dir t)
4630 (error "Canceled")))
4631 (setq setmodes (basic-save-buffer-1))))
4632 ;; Now we have saved the current buffer. Let's make sure 4632 ;; Now we have saved the current buffer. Let's make sure
4633 ;; that buffer-file-coding-system is fixed to what 4633 ;; that buffer-file-coding-system is fixed to what
4634 ;; actually used for saving by binding it locally. 4634 ;; actually used for saving by binding it locally.
diff --git a/lisp/info.el b/lisp/info.el
index 24a7181ff52..3792857d47a 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -59,15 +59,6 @@ to the user."
59 :group 'info 59 :group 'info
60 :version "24.1") 60 :version "24.1")
61 61
62(defcustom Info-enable-edit nil
63 "Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node.
64This is convenient if you want to write Info files by hand.
65However, we recommend that you not do this.
66It is better to write a Texinfo file and generate the Info file from that,
67because that gives you a printed manual as well."
68 :type 'boolean
69 :group 'info)
70
71(defvar Info-enable-active-nodes nil 62(defvar Info-enable-active-nodes nil
72 "Non-nil allows Info to execute Lisp code associated with nodes. 63 "Non-nil allows Info to execute Lisp code associated with nodes.
73The Lisp code is executed when the node is selected.") 64The Lisp code is executed when the node is selected.")
@@ -375,6 +366,9 @@ with wrapping around the current Info node."
375(defvar Info-edit-mode-hook nil 366(defvar Info-edit-mode-hook nil
376 "Hooks run when `Info-edit-mode' is called.") 367 "Hooks run when `Info-edit-mode' is called.")
377 368
369(make-obsolete-variable 'Info-edit-mode-hook
370 "editing Info nodes by hand is not recommended." "24.4")
371
378(defvar Info-current-file nil 372(defvar Info-current-file nil
379 "Info file that Info is now looking at, or nil. 373 "Info file that Info is now looking at, or nil.
380This is the name that was specified in Info, not the actual file name. 374This is the name that was specified in Info, not the actual file name.
@@ -4253,6 +4247,10 @@ Advanced commands:
4253 map) 4247 map)
4254 "Local keymap used within `e' command of Info.") 4248 "Local keymap used within `e' command of Info.")
4255 4249
4250(make-obsolete-variable 'Info-edit-map
4251 "editing Info nodes by hand is not recommended."
4252 "24.4")
4253
4256;; Info-edit mode is suitable only for specially formatted data. 4254;; Info-edit mode is suitable only for specially formatted data.
4257(put 'Info-edit-mode 'mode-class 'special) 4255(put 'Info-edit-mode 'mode-class 'special)
4258 4256
@@ -4270,16 +4268,22 @@ which returns to Info mode for browsing.
4270 (buffer-enable-undo (current-buffer)) 4268 (buffer-enable-undo (current-buffer))
4271 (run-mode-hooks 'Info-edit-mode-hook)) 4269 (run-mode-hooks 'Info-edit-mode-hook))
4272 4270
4271(make-obsolete 'Info-edit-mode
4272 "editing Info nodes by hand is not recommended." "24.4")
4273
4273(defun Info-edit () 4274(defun Info-edit ()
4274 "Edit the contents of this Info node. 4275 "Edit the contents of this Info node."
4275Allowed only if variable `Info-enable-edit' is non-nil."
4276 (interactive) 4276 (interactive)
4277 (or Info-enable-edit
4278 (error "Editing Info nodes is not enabled"))
4279 (Info-edit-mode) 4277 (Info-edit-mode)
4280 (message "%s" (substitute-command-keys 4278 (message "%s" (substitute-command-keys
4281 "Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info"))) 4279 "Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info")))
4282 4280
4281(put 'Info-edit 'disabled "Editing Info nodes by hand is not recommended.
4282This feature will be removed in future.")
4283
4284(make-obsolete 'Info-edit
4285 "editing Info nodes by hand is not recommended." "24.4")
4286
4283(defun Info-cease-edit () 4287(defun Info-cease-edit ()
4284 "Finish editing Info node; switch back to Info proper." 4288 "Finish editing Info node; switch back to Info proper."
4285 (interactive) 4289 (interactive)
@@ -4296,6 +4300,9 @@ Allowed only if variable `Info-enable-edit' is non-nil."
4296 (and (marker-position Info-tag-table-marker) 4300 (and (marker-position Info-tag-table-marker)
4297 (buffer-modified-p) 4301 (buffer-modified-p)
4298 (message "Tags may have changed. Use Info-tagify if necessary"))) 4302 (message "Tags may have changed. Use Info-tagify if necessary")))
4303
4304(make-obsolete 'Info-cease-edit
4305 "editing Info nodes by hand is not recommended." "24.4")
4299 4306
4300(defvar Info-file-list-for-emacs 4307(defvar Info-file-list-for-emacs
4301 '("ediff" "eudc" "forms" "gnus" "info" ("Info" . "info") ("mh" . "mh-e") 4308 '("ediff" "eudc" "forms" "gnus" "info" ("Info" . "info") ("mh" . "mh-e")
diff --git a/lisp/informat.el b/lisp/informat.el
index d4412b8a86a..53b043fbbad 100644
--- a/lisp/informat.el
+++ b/lisp/informat.el
@@ -43,14 +43,17 @@
43 ;; save-restrictions would not work 43 ;; save-restrictions would not work
44 ;; because it records the old max relative to the end. 44 ;; because it records the old max relative to the end.
45 ;; We record it relative to the beginning. 45 ;; We record it relative to the beginning.
46 (if input-buffer-name
47 (message "Tagifying region in %s ..." input-buffer-name)
48 (message
49 "Tagifying %s ..." (file-name-nondirectory (buffer-file-name))))
50 (let ((omin (point-min)) 46 (let ((omin (point-min))
51 (omax (point-max)) 47 (omax (point-max))
52 (nomax (= (point-max) (1+ (buffer-size)))) 48 (nomax (= (point-max) (1+ (buffer-size))))
53 (opoint (point))) 49 (opoint (point))
50 (msg (format "Tagifying %s..."
51 (cond (input-buffer-name
52 (format "region in %s" input-buffer-name))
53 (buffer-file-name
54 (file-name-nondirectory (buffer-file-name)))
55 (t "buffer")))))
56 (message "%s" msg)
54 (unwind-protect 57 (unwind-protect
55 (progn 58 (progn
56 (widen) 59 (widen)
@@ -148,11 +151,8 @@
148 (insert "\^_\nEnd tag table\n"))))) 151 (insert "\^_\nEnd tag table\n")))))
149 (goto-char opoint) 152 (goto-char opoint)
150 (narrow-to-region omin (if nomax (1+ (buffer-size)) 153 (narrow-to-region omin (if nomax (1+ (buffer-size))
151 (min omax (point-max)))))) 154 (min omax (point-max)))))
152 (if input-buffer-name 155 (message "%sdone" msg)))
153 (message "Tagifying region in %s done" input-buffer-name)
154 (message
155 "Tagifying %s done" (file-name-nondirectory (buffer-file-name)))))
156 156
157 157
158;;;###autoload 158;;;###autoload
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 7388c570874..82cbda57086 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1410,7 +1410,7 @@ of."
1410 (utc (not (featurep 'xemacs)))) 1410 (utc (not (featurep 'xemacs))))
1411 (tramp-send-command-and-check 1411 (tramp-send-command-and-check
1412 v (format "%s touch -t %s %s" 1412 v (format "%s touch -t %s %s"
1413 (if utc "TZ=UTC; export TZ;" "") 1413 (if utc "env TZ=UTC" "")
1414 (if utc 1414 (if utc
1415 (format-time-string "%Y%m%d%H%M.%S" time t) 1415 (format-time-string "%Y%m%d%H%M.%S" time t)
1416 (format-time-string "%Y%m%d%H%M.%S" time)) 1416 (format-time-string "%Y%m%d%H%M.%S" time))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 89648b0e9a9..4bfe541f053 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -281,16 +281,24 @@ started on the local host. You should specify a remote host
281useful only in combination with `tramp-default-proxies-alist'.") 281useful only in combination with `tramp-default-proxies-alist'.")
282 282
283;;;###tramp-autoload 283;;;###tramp-autoload
284(defvar tramp-ssh-controlmaster-template 284(defconst tramp-ssh-controlmaster-template
285 (let (result)
285 (ignore-errors 286 (ignore-errors
286 (with-temp-buffer 287 (with-temp-buffer
287 (call-process "ssh" nil t nil "-o" "ControlMaster") 288 (call-process "ssh" nil t nil "-o" "ControlMaster")
288 (goto-char (point-min)) 289 (goto-char (point-min))
289 (when (search-forward-regexp "Missing ControlMaster argument" nil t) 290 (when (search-forward-regexp "Missing ControlMaster argument" nil t)
290 '("-o" "ControlPath=%t.%%r@%%h:%%p" 291 (setq result
291 "-o" "ControlMaster=auto" 292 '("-o" "ControlPath=%t.%%r@%%h:%%p"
292 "-o" "ControlPersist=no")))) 293 "-o" "ControlMaster=auto"))))
293 "Call ssh to detect whether it supports the ControlMaster argument. 294 (when result
295 (with-temp-buffer
296 (call-process "ssh" nil t nil "-o" "ControlPersist")
297 (goto-char (point-min))
298 (when (search-forward-regexp "Missing ControlPersist argument" nil t)
299 (setq result (append result '("-o" "ControlPersist=no")))))))
300 result)
301 "Call ssh to detect whether it supports the Control* arguments.
294Return a template to be used in `tramp-methods'.") 302Return a template to be used in `tramp-methods'.")
295 303
296(defcustom tramp-default-method 304(defcustom tramp-default-method
@@ -1346,6 +1354,8 @@ The outline level is equal to the verbosity of the Tramp message."
1346 (get-buffer-create (tramp-debug-buffer-name vec)) 1354 (get-buffer-create (tramp-debug-buffer-name vec))
1347 (when (bobp) 1355 (when (bobp)
1348 (setq buffer-undo-list t) 1356 (setq buffer-undo-list t)
1357 ;; So it does not get loaded while outline-regexp is let-bound.
1358 (require 'outline)
1349 ;; Activate `outline-mode'. This runs `text-mode-hook' and 1359 ;; Activate `outline-mode'. This runs `text-mode-hook' and
1350 ;; `outline-mode-hook'. We must prevent that local processes 1360 ;; `outline-mode-hook'. We must prevent that local processes
1351 ;; die. Yes: I've seen `flyspell-mode', which starts "ispell". 1361 ;; die. Yes: I've seen `flyspell-mode', which starts "ispell".
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index da56fe70329..f0f67d01845 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2959,39 +2959,40 @@ not inside a defun."
2959 (type)) 2959 (type))
2960 (catch 'exit 2960 (catch 'exit
2961 (while (python-nav-beginning-of-defun 1) 2961 (while (python-nav-beginning-of-defun 1)
2962 (when (and 2962 (when (save-match-data
2963 (or (not last-indent) 2963 (and
2964 (< (current-indentation) last-indent)) 2964 (or (not last-indent)
2965 (or 2965 (< (current-indentation) last-indent))
2966 (and first-run 2966 (or
2967 (and first-run
2968 (save-excursion
2969 ;; If this is the first run, we may add
2970 ;; the current defun at point.
2971 (setq first-run nil)
2972 (goto-char starting-pos)
2973 (python-nav-beginning-of-statement)
2974 (beginning-of-line 1)
2975 (looking-at-p
2976 python-nav-beginning-of-defun-regexp)))
2977 (< starting-pos
2967 (save-excursion 2978 (save-excursion
2968 ;; If this is the first run, we may add 2979 (let ((min-indent
2969 ;; the current defun at point. 2980 (+ (current-indentation)
2970 (setq first-run nil) 2981 python-indent-offset)))
2971 (goto-char starting-pos) 2982 (if (< starting-indentation min-indent)
2972 (python-nav-beginning-of-statement) 2983 ;; If the starting indentation is not
2973 (beginning-of-line 1) 2984 ;; within the min defun indent make the
2974 (looking-at-p 2985 ;; check fail.
2975 python-nav-beginning-of-defun-regexp))) 2986 starting-pos
2976 (< starting-pos 2987 ;; Else go to the end of defun and add
2977 (save-excursion 2988 ;; up the current indentation to the
2978 (let ((min-indent 2989 ;; ending position.
2979 (+ (current-indentation) 2990 (python-nav-end-of-defun)
2980 python-indent-offset))) 2991 (+ (point)
2981 (if (< starting-indentation min-indent) 2992 (if (>= (current-indentation) min-indent)
2982 ;; If the starting indentation is not 2993 (1+ (current-indentation))
2983 ;; within the min defun indent make the 2994 0)))))))))
2984 ;; check fail. 2995 (save-match-data (setq last-indent (current-indentation)))
2985 starting-pos
2986 ;; Else go to the end of defun and add
2987 ;; up the current indentation to the
2988 ;; ending position.
2989 (python-nav-end-of-defun)
2990 (+ (point)
2991 (if (>= (current-indentation) min-indent)
2992 (1+ (current-indentation))
2993 0))))))))
2994 (setq last-indent (current-indentation))
2995 (if (or (not include-type) type) 2996 (if (or (not include-type) type)
2996 (setq names (cons (match-string-no-properties 1) names)) 2997 (setq names (cons (match-string-no-properties 1) names))
2997 (let ((match (split-string (match-string-no-properties 0)))) 2998 (let ((match (split-string (match-string-no-properties 0))))