------------------------------------------------------------ revno: 116732 committer: martin rudalics branch nick: trunk timestamp: Tue 2014-03-11 08:20:49 +0100 message: Add comment for revisions 116716 and 116727. diff: === modified file 'src/w32term.c' --- src/w32term.c 2014-03-10 18:53:39 +0000 +++ src/w32term.c 2014-03-11 07:20:49 +0000 @@ -4684,6 +4684,10 @@ { bool iconified = FRAME_ICONIFIED_P (f); + /* The following was made unconditional in a + pathetic attempt to fix bug#16967 in revision + 116716 but, considered counterproductive was made + conditional again in revision 116727. martin */ if (iconified) SET_FRAME_VISIBLE (f, 1); SET_FRAME_ICONIFIED (f, 0); ------------------------------------------------------------ revno: 116731 committer: Dmitry Antipov branch nick: trunk timestamp: Tue 2014-03-11 10:50:01 +0400 message: * xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor. * xterm.c (x_free_frame_resources): Free all allocated cursors. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-03-10 18:53:39 +0000 +++ src/ChangeLog 2014-03-11 06:50:01 +0000 @@ -1,3 +1,8 @@ +2014-03-11 Dmitry Antipov + + * xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor. + * xterm.c (x_free_frame_resources): Free all allocated cursors. + 2014-03-10 Eli Zaretskii * w32.c (fstatat): Don't add an extra slash if the argument ends === modified file 'src/xfns.c' --- src/xfns.c 2014-02-04 07:36:58 +0000 +++ src/xfns.c 2014-03-11 06:50:01 +0000 @@ -716,6 +716,7 @@ XRecolorCursor (dpy, hand_cursor, &fore_color, &back_color); XRecolorCursor (dpy, hourglass_cursor, &fore_color, &back_color); XRecolorCursor (dpy, horizontal_drag_cursor, &fore_color, &back_color); + XRecolorCursor (dpy, vertical_drag_cursor, &fore_color, &back_color); } if (FRAME_X_WINDOW (f) != 0) === modified file 'src/xterm.c' --- src/xterm.c 2014-03-06 11:18:22 +0000 +++ src/xterm.c 2014-03-11 06:50:01 +0000 @@ -9305,6 +9305,22 @@ f->output_data.x->black_relief.gc = 0; } + /* Free cursors. */ + if (f->output_data.x->text_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->text_cursor); + if (f->output_data.x->nontext_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->nontext_cursor); + if (f->output_data.x->modeline_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->modeline_cursor); + if (f->output_data.x->hand_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->hand_cursor); + if (f->output_data.x->hourglass_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->hourglass_cursor); + if (f->output_data.x->horizontal_drag_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->horizontal_drag_cursor); + if (f->output_data.x->vertical_drag_cursor != 0) + XFreeCursor (FRAME_X_DISPLAY (f), f->output_data.x->vertical_drag_cursor); + XFlush (FRAME_X_DISPLAY (f)); } ------------------------------------------------------------ revno: 116730 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2014-03-11 02:44:51 +0100 message: lisp/frameset.el: Let-bind frameset--target-display. * frameset.el (frameset--target-display): Remove definition; declare. (frameset-save, frameset-restore): Let-bind frameset--target-display. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-11 01:22:24 +0000 +++ lisp/ChangeLog 2014-03-11 01:44:51 +0000 @@ -1,3 +1,8 @@ +2014-03-11 Juanma Barranquero + + * frameset.el (frameset--target-display): Remove definition; declare. + (frameset-save, frameset-restore): Let-bind frameset--target-display. + 2014-03-11 Stefan Monnier * emacs-lisp/nadvice.el (advice--make-1): Fix autoloading avoidance. === modified file 'lisp/frameset.el' --- lisp/frameset.el 2014-03-11 00:46:07 +0000 +++ lisp/frameset.el 2014-03-11 01:44:51 +0000 @@ -417,11 +417,11 @@ ;; `frameset-filter-params' can be useful, even if you're not using ;; framesets. The interface of `frameset-filter-params' is generic ;; and does not depend of global state, with one exception: it uses -;; the internal variable `frameset--target-display' to decide if, and -;; how, to modify the `display' parameter of FILTERED. But that -;; should not represent any problem, because it's only meaningful -;; when restoring, and customized uses of `frameset-filter-params' -;; are likely to use their own filter alist and just call +;; the dynamically bound variable `frameset--target-display' to decide +;; if, and how, to modify the `display' parameter of FILTERED. That +;; should not represent a problem, because it's only meaningful when +;; restoring, and customized uses of `frameset-filter-params' are +;; likely to use their own filter alist and just call ;; ;; (setq my-filtered (frameset-filter-params my-params my-filters t)) ;; @@ -522,13 +522,13 @@ Frame parameters not on this alist are passed intact, as if they were defined with ACTION = nil.") -(defvar frameset--target-display nil - ;; Either (minibuffer . VALUE) or nil. - ;; This refers to the current frame config being processed inside - ;; `frameset-restore' and its auxiliary functions (like filtering). - ;; If nil, there is no need to change the display. - ;; If non-nil, display parameter to use when creating the frame. - "Internal use only.") +;; Dynamically bound in `frameset-save', `frameset-restore'. +(defvar frameset--target-display) +;; Either (display . VALUE) or nil. +;; This refers to the current frame config being processed with +;; `frameset-filter-params' and its auxiliary filtering functions. +;; If nil, there is no need to change the display. +;; If non-nil, display parameter to use when creating the frame. (defun frameset-switch-to-gui-p (parameters) "True when switching to a graphic display. @@ -760,6 +760,7 @@ should be saved; if PREDICATE is nil, all frames from FRAME-LIST are saved. PROPERTIES is a user-defined property list to add to the frameset." (let* ((list (or (copy-sequence frame-list) (frame-list))) + (frameset--target-display nil) (frames (cl-delete-if-not #'frame-live-p (if predicate (cl-delete-if-not predicate list) @@ -1141,16 +1142,15 @@ (force-display (if (functionp force-display) (funcall force-display frame-cfg window-cfg) force-display)) + (frameset--target-display nil) frame to-tty duplicate) ;; Only set target if forcing displays and the target display is different. - (cond ((frameset-keep-original-display-p force-display) - (setq frameset--target-display nil)) - ((eq (frame-parameter nil 'display) (cdr (assq 'display frame-cfg))) - (setq frameset--target-display nil)) - (t - (setq frameset--target-display (cons 'display - (frame-parameter nil 'display)) - to-tty (null (cdr frameset--target-display))))) + (unless (or (frameset-keep-original-display-p force-display) + (eq (frame-parameter nil 'display) + (cdr (assq 'display frame-cfg)))) + (setq frameset--target-display (cons 'display + (frame-parameter nil 'display)) + to-tty (null (cdr frameset--target-display)))) ;; Time to restore frames and set up their minibuffers as they were. ;; We only skip a frame (thus deleting it) if either: ;; - we're switching displays, and the user chose the option to delete, or @@ -1210,9 +1210,6 @@ ;; other frames are already visible (discussed in thread for bug#14841). (sit-for 0 t) - ;; Clean temporary caches - (setq frameset--target-display nil) - ;; Clean up the frame list (when cleanup-frames (let ((map nil) ------------------------------------------------------------ revno: 116729 committer: Stefan Monnier branch nick: trunk timestamp: Mon 2014-03-10 21:22:24 -0400 message: * lisp/emacs-lisp/nadvice.el (advice--make-1): Fix autoloading avoidance. (advice-add): Add a :advice--pending marker, so advice--make-1 knows when the advice is pending. (advice-remove): Remove this marker when not needed any more. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-11 00:46:07 +0000 +++ lisp/ChangeLog 2014-03-11 01:22:24 +0000 @@ -1,3 +1,10 @@ +2014-03-11 Stefan Monnier + + * emacs-lisp/nadvice.el (advice--make-1): Fix autoloading avoidance. + (advice-add): Add a :advice--pending marker, so advice--make-1 knows + when the advice is pending. + (advice-remove): Remove this marker when not needed any more. + 2014-03-11 Juanma Barranquero * frameset.el: Separate options for reusing frames and cleaning up. === modified file 'lisp/emacs-lisp/nadvice.el' --- lisp/emacs-lisp/nadvice.el 2014-02-02 02:25:05 +0000 +++ lisp/emacs-lisp/nadvice.el 2014-03-11 01:22:24 +0000 @@ -141,11 +141,12 @@ (let ((adv-sig (gethash main advertised-signature-table)) (advice (apply #'make-byte-code 128 byte-code - (vector #'apply function main props) stack-depth - nil + (vector #'apply function main props) stack-depth nil (and (or (commandp function) (commandp main)) - (not (and (symbolp main) ;; Don't autoload too eagerly! - (autoloadp (symbol-function main)))) + ;; If we're adding the advice on advice--pending, don't + ;; build an interactive-form, which won't be used anyway + ;; and would risk autoloading `main' (or `function'). + (not (eq main :advice--pending)) (list (advice--make-interactive-form function main)))))) (when adv-sig (puthash advice adv-sig advertised-signature-table)) @@ -392,6 +393,8 @@ ;; - `autoload' does nothing if the function is ;; not an autoload or undefined. ((or (not nf) (autoloadp nf)) + (unless (get symbol 'advice--pending) + (put symbol 'advice--pending :advice--pending)) (get symbol 'advice--pending)) (t (symbol-function symbol))) function props) @@ -416,6 +419,8 @@ function) (unless (advice--p (advice--symbol-function symbol)) ;; Not advised any more. + (when (eq (get symbol 'advice--pending) :advice--pending) + (put symbol 'advice--pending nil)) (remove-function (get symbol 'defalias-fset-function) #'advice--defalias-fset) (let ((asr (get symbol 'advice--saved-rewrite))) ------------------------------------------------------------ revno: 116728 committer: Juanma Barranquero branch nick: trunk timestamp: Tue 2014-03-11 01:46:07 +0100 message: lisp/frameset.el: Separate frame reusing from cleaning up. * lisp/desktop.el (desktop-restore-forces-onscreen) (desktop-restore-reuses-frames): Use non-keyword values. (desktop-restore-frameset): Use CLEANUP-FRAMES arg of frameset-restore. * lisp/frameset.el: Separate options for reusing frames and cleaning up. (frameset--reuse-list): Remove definition; declare. (frameset--action-map): Declare. (frameset--find-frame-if): Doc fix. (frameset--restore-frame): Cache frame action. (frameset-restore): New keyword arg CLEANUP-FRAMES, allows to select how to clean up the frame list after restoring. Remove cleaning options from REUSE-FRAMES. Change all keyword values to symbols. (frameset--jump-to-register): Simplify by using CLEANUP-FRAMES. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-10 18:48:35 +0000 +++ lisp/ChangeLog 2014-03-11 00:46:07 +0000 @@ -1,3 +1,19 @@ +2014-03-11 Juanma Barranquero + + * frameset.el: Separate options for reusing frames and cleaning up. + (frameset--reuse-list): Remove definition; declare. + (frameset--action-map): Declare. + (frameset--find-frame-if): Doc fix. + (frameset--restore-frame): Cache frame action. + (frameset-restore): New keyword arg CLEANUP-FRAMES, allows to select + how to clean up the frame list after restoring. Remove cleaning + options from REUSE-FRAMES. Change all keyword values to symbols. + (frameset--jump-to-register): Simplify by using CLEANUP-FRAMES. + + * desktop.el (desktop-restore-forces-onscreen) + (desktop-restore-reuses-frames): Use non-keyword values. + (desktop-restore-frameset): Use CLEANUP-FRAMES arg of frameset-restore. + 2014-03-10 Glenn Morris * files.el (find-file): Doc fix: update info node name. === modified file 'lisp/desktop.el' --- lisp/desktop.el 2014-03-10 02:18:29 +0000 +++ lisp/desktop.el 2014-03-11 00:46:07 +0000 @@ -404,12 +404,12 @@ (defcustom desktop-restore-forces-onscreen t "If t, offscreen frames are restored onscreen instead. -If `:all', frames that are partially offscreen are also forced onscreen. +If `all', frames that are partially offscreen are also forced onscreen. NOTE: Checking of frame boundaries is only approximate and can fail to reliably detect frames whose onscreen/offscreen state depends on a few pixels, especially near the right / bottom borders of the screen." :type '(choice (const :tag "Only fully offscreen frames" t) - (const :tag "Also partially offscreen frames" :all) + (const :tag "Also partially offscreen frames" all) (const :tag "Do not force frames onscreen" nil)) :group 'desktop :version "24.4") @@ -417,7 +417,7 @@ (defcustom desktop-restore-reuses-frames t "If t, restoring frames reuses existing frames. If nil, existing frames are deleted. -If `:keep', existing frames are kept and not reused." +If `keep', existing frames are kept and not reused." :type '(choice (const :tag "Reuse existing frames" t) (const :tag "Delete existing frames" nil) (const :tag "Keep existing frames" :keep)) @@ -692,7 +692,7 @@ (frame-parameter frame 'desktop-dont-clear)) (delete-frame frame)) (error - (delay-warning 'desktop (error-message-string err)))))))) + (delay-warning 'desktop (error-message-string err)))))))) ;; ---------------------------------------------------------------------------- (unless noninteractive @@ -1058,7 +1058,8 @@ being set (usually, by reading it from the desktop)." (when (desktop-restoring-frameset-p) (frameset-restore desktop-saved-frameset - :reuse-frames desktop-restore-reuses-frames + :reuse-frames (eq desktop-restore-reuses-frames t) + :cleanup-frames (not (eq desktop-restore-reuses-frames 'keep)) :force-display desktop-restore-in-current-display :force-onscreen desktop-restore-forces-onscreen))) === modified file 'lisp/frameset.el' --- lisp/frameset.el 2014-03-08 22:26:20 +0000 +++ lisp/frameset.el 2014-03-11 00:46:07 +0000 @@ -786,10 +786,9 @@ ;; Restoring framesets -(defvar frameset--reuse-list nil - "The list of frames potentially reusable. -Its value is only meaningful during execution of `frameset-restore'. -Internal use only.") +;; Dynamically bound in `frameset-restore'. +(defvar frameset--reuse-list) +(defvar frameset--action-map) (defun frameset-compute-pos (value left/top right/bottom) "Return an absolute positioning value for a frame. @@ -871,7 +870,7 @@ (modify-frame-parameters frame params)))))) (defun frameset--find-frame-if (predicate display &rest args) - "Find a frame in `frameset--reuse-list' satisfying PREDICATE. + "Find a reusable frame satisfying PREDICATE. Look through available frames whose display property matches DISPLAY and return the first one for which (PREDICATE frame ARGS) returns t. If PREDICATE is nil, it is always satisfied. Internal use only." @@ -982,16 +981,20 @@ (push visible alt-cfg) (push (cons 'fullscreen fullscreen) alt-cfg))) - ;; Time to find or create a frame an apply the big bunch of parameters. - ;; If a frame needs to be created and it falls partially or fully offscreen, - ;; sometimes it gets "pushed back" onscreen; however, moving it afterwards is - ;; allowed. So we create the frame as invisible and then reapply the full - ;; parameter alist (including position and size parameters). - (setq frame (or (and frameset--reuse-list - (frameset--reuse-frame display filtered-cfg)) - (make-frame-on-display display - (cons '(visibility) - (frameset--initial-params filtered-cfg))))) + ;; Time to find or create a frame and apply the big bunch of parameters. + (setq frame (and frameset--reuse-list + (frameset--reuse-frame display filtered-cfg))) + (if frame + (puthash frame :reused frameset--action-map) + ;; If a frame needs to be created and it falls partially or fully offscreen, + ;; sometimes it gets "pushed back" onscreen; however, moving it afterwards is + ;; allowed. So we create the frame as invisible and then reapply the full + ;; parameter alist (including position and size parameters). + (setq frame (make-frame-on-display display + (cons '(visibility) + (frameset--initial-params filtered-cfg)))) + (puthash frame :created frameset--action-map)) + (modify-frame-parameters frame (if (eq (frame-parameter frame 'fullscreen) fullscreen) ;; Workaround for bug#14949 @@ -1038,7 +1041,8 @@ ;;;###autoload (cl-defun frameset-restore (frameset &key predicate filters reuse-frames - force-display force-onscreen) + force-display force-onscreen + cleanup-frames) "Restore a FRAMESET into the current display(s). PREDICATE is a function called with two arguments, the parameter alist @@ -1050,58 +1054,79 @@ FILTERS is an alist of parameter filters; if nil, the value of `frameset-filter-alist' is used instead. -REUSE-FRAMES selects the policy to use to reuse frames when restoring: - t Reuse existing frames if possible, and delete those not reused. - nil Restore frameset in new frames and delete existing frames. - :keep Restore frameset in new frames and keep the existing ones. - LIST A list of frames to reuse; only these are reused (if possible). - Remaining frames in this list are deleted; other frames not - included on the list are left untouched. +REUSE-FRAMES selects the policy to reuse frames when restoring: + t All existing frames can be reused. + nil No existing frame can be reused. + match Only frames with matching frame ids can be reused. + PRED A predicate function; it receives as argument a live frame, + and must return non-nil to allow reusing it, nil otherwise. FORCE-DISPLAY can be: t Frames are restored in the current display. nil Frames are restored, if possible, in their original displays. - :delete Frames in other displays are deleted instead of restored. + delete Frames in other displays are deleted instead of restored. PRED A function called with two arguments, the parameter alist and the window state (in that order). It must return t, nil or - `:delete', as above but affecting only the frame that will + `delete', as above but affecting only the frame that will be created from that parameter alist. FORCE-ONSCREEN can be: t Force onscreen only those frames that are fully offscreen. nil Do not force any frame back onscreen. - :all Force onscreen any frame fully or partially offscreen. + all Force onscreen any frame fully or partially offscreen. PRED A function called with three arguments, - the live frame just restored, - a list (LEFT TOP WIDTH HEIGHT), describing the frame, - a list (LEFT TOP WIDTH HEIGHT), describing the workarea. It must return non-nil to force the frame onscreen, nil otherwise. +CLEANUP-FRAMES allows to \"clean up\" the frame list after restoring a frameset: + t Delete all frames that were not created or restored upon. + nil Keep all frames. + FUNC A function called with two arguments: + - FRAME, a live frame. + - ACTION, which can be one of + :rejected Frame existed, but was not a candidate for reuse. + :ignored Frame existed, was a candidate, but wasn't reused. + :reused Frame existed, was a candidate, and restored upon. + :created Frame didn't exist, was created and restored upon. + Return value is ignored. + Note the timing and scope of the operations described above: REUSE-FRAMES affects existing frames; PREDICATE, FILTERS and FORCE-DISPLAY affect the frame -being restored before that happens; and FORCE-ONSCREEN affects the frame once -it has been restored. +being restored before that happens; FORCE-ONSCREEN affects the frame once +it has been restored; and CLEANUP-FRAMES affects all frames alive after the +restoration, including those that have been reused or created anew. All keyword parameters default to nil." (cl-assert (frameset-valid-p frameset)) - (let (other-frames) + (let* ((frames (frame-list)) + (frameset--action-map (make-hash-table :test #'eq)) + ;; frameset--reuse-list is a list of frames potentially reusable. Later we + ;; will decide which ones can be reused, and how to deal with any leftover. + (frameset--reuse-list + (pcase reuse-frames + (`t + frames) + (`nil + nil) + (`match + (cl-loop for (state) in (frameset-states frameset) + when (frameset-frame-with-id (frameset-cfg-id state) frames) + collect it)) + ((pred functionp) + (cl-remove-if-not reuse-frames frames)) + (_ + (error "Invalid arg :reuse-frames %s" reuse-frames))))) - ;; frameset--reuse-list is a list of frames potentially reusable. Later we - ;; will decide which ones can be reused, and how to deal with any leftover. - (pcase reuse-frames - ((or `nil `:keep) - (setq frameset--reuse-list nil - other-frames (frame-list))) - ((pred consp) - (setq frameset--reuse-list (copy-sequence reuse-frames) - other-frames (cl-delete-if (lambda (frame) - (memq frame frameset--reuse-list)) - (frame-list)))) - (_ - (setq frameset--reuse-list (frame-list) - other-frames nil))) + ;; Mark existing frames in the map; candidates to reuse are marked as :ignored; + ;; they will be reassigned later, if chosen. + (dolist (frame frames) + (puthash frame + (if (memq frame frameset--reuse-list) :ignored :rejected) + frameset--action-map)) ;; Sort saved states to guarantee that minibufferless frames will be created ;; after the frames that contain their minibuffer windows. @@ -1131,17 +1156,15 @@ ;; - we're switching displays, and the user chose the option to delete, or ;; - we're switching to tty, and the frame to restore is minibuffer-only. (unless (and frameset--target-display - (or (eq force-display :delete) + (or (eq force-display 'delete) (and to-tty (eq (cdr (assq 'minibuffer frame-cfg)) 'only)))) ;; To avoid duplicating frame ids after restoration, we note any ;; existing frame whose id matches a frame configuration in the ;; frameset. Once the frame config is properly restored, we can ;; reset the old frame's id to nil. - (setq duplicate (and other-frames - (or (eq reuse-frames :keep) (consp reuse-frames)) - (frameset-frame-with-id (frameset-cfg-id frame-cfg) - other-frames))) + (setq duplicate (frameset-frame-with-id (frameset-cfg-id frame-cfg) + frames)) ;; Restore minibuffers. Some of this stuff could be done in a filter ;; function, but it would be messy because restoring minibuffers affects ;; global state; it's best to do it here than add a bunch of global @@ -1187,20 +1210,27 @@ ;; other frames are already visible (discussed in thread for bug#14841). (sit-for 0 t) - ;; Delete remaining frames, but do not fail if some resist being deleted. - (unless (eq reuse-frames :keep) - (dolist (frame (sort (nconc (if (listp reuse-frames) nil other-frames) - frameset--reuse-list) - ;; Minibufferless frames must go first to avoid - ;; errors when attempting to delete a frame whose - ;; minibuffer window is used by another frame. - #'frameset-minibufferless-first-p)) - (condition-case err - (delete-frame frame) - (error - (delay-warning 'frameset (error-message-string err)))))) - (setq frameset--reuse-list nil - frameset--target-display nil) + ;; Clean temporary caches + (setq frameset--target-display nil) + + ;; Clean up the frame list + (when cleanup-frames + (let ((map nil) + (cleanup (if (eq cleanup-frames t) + (lambda (frame action) + (when (memq action '(:rejected :ignored)) + (delete-frame frame))) + cleanup-frames))) + (maphash (lambda (frame _action) (push frame map)) frameset--action-map) + (dolist (frame (sort map + ;; Minibufferless frames must go first to avoid + ;; errors when attempting to delete a frame whose + ;; minibuffer window is used by another frame. + #'frameset-minibufferless-first-p)) + (condition-case-unless-debug err + (funcall cleanup frame (gethash frame frameset--action-map)) + (error + (delay-warning 'frameset (error-message-string err) :warning)))))) ;; Make sure there's at least one visible frame. (unless (or (daemonp) (visible-frame-list)) @@ -1212,23 +1242,21 @@ (defun frameset--jump-to-register (data) "Restore frameset from DATA stored in register. Called from `jump-to-register'. Internal use only." - (let ((fs (aref data 0)) - reuse-frames iconify-list) - (if current-prefix-arg - ;; Reuse all frames and delete any left unused - (setq reuse-frames t) - ;; Reuse matching frames and leave others to be iconified - (setq iconify-list (frame-list)) - (dolist (state (frameset-states fs)) - (let ((frame (frameset-frame-with-id (frameset-cfg-id (car state)) - iconify-list))) - (when frame - (push frame reuse-frames) - (setq iconify-list (delq frame iconify-list)))))) - (frameset-restore fs - :filters frameset-session-filter-alist - :reuse-frames reuse-frames) - (mapc #'iconify-frame iconify-list)) + (frameset-restore + (aref data 0) + :filters frameset-session-filter-alist + :reuse-frames (if current-prefix-arg t 'match) + :cleanup-frames (if current-prefix-arg + ;; delete frames + nil + ;; iconify frames + (lambda (frame action) + (pcase action + (`rejected (iconify-frame frame)) + ;; In the unexpected case that a frame was a candidate + ;; (matching frame id) and yet not restored, remove it + ;; because it is in fact a duplicate. + (`ignored (delete-frame frame)))))) ;; Restore selected frame, buffer and point. (let ((frame (frameset-frame-with-id (aref data 1))) ------------------------------------------------------------ revno: 116727 committer: martin rudalics branch nick: trunk timestamp: Mon 2014-03-10 19:53:39 +0100 message: Revert last change to w32_read_socket. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-03-10 17:26:45 +0000 +++ src/ChangeLog 2014-03-10 18:53:39 +0000 @@ -4,11 +4,6 @@ with a slash: this fails the subsequent call to stat_worker on Windows 9X. Reported by oslsachem . -2014-03-10 Martin Rudalics - - * w32term.c (w32_read_socket): In SIZE_RESTORED case - unconditionally set visibility of frame to 1. - 2014-03-09 Martin Rudalics * xdisp.c (Fwindow_text_pixel_size): Adjust doc-string. === modified file 'src/w32term.c' --- src/w32term.c 2014-03-10 10:31:13 +0000 +++ src/w32term.c 2014-03-10 18:53:39 +0000 @@ -4684,7 +4684,8 @@ { bool iconified = FRAME_ICONIFIED_P (f); - SET_FRAME_VISIBLE (f, 1); + if (iconified) + SET_FRAME_VISIBLE (f, 1); SET_FRAME_ICONIFIED (f, 0); /* wait_reading_process_output will notice this ------------------------------------------------------------ revno: 116726 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-03-10 14:48:35 -0400 message: * lisp/files.el (find-file): Doc fix: update info node name. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-10 18:16:13 +0000 +++ lisp/ChangeLog 2014-03-10 18:48:35 +0000 @@ -1,5 +1,7 @@ 2014-03-10 Glenn Morris + * files.el (find-file): Doc fix: update info node name. + * emacs-lisp/advice.el (ad-add-advice, defadvice): Doc fix: remove references to deleted info nodes. === modified file 'lisp/files.el' --- lisp/files.el 2014-03-05 18:58:16 +0000 +++ lisp/files.el 2014-03-10 18:48:35 +0000 @@ -1429,7 +1429,7 @@ like /ssh:SOME_REMOTE_MACHINE:FILE for the file name. You can also visit local files as a different user by specifying /sudo::FILE for the file name. -See the Info node `(tramp)Filename Syntax' in the Tramp Info +See the Info node `(tramp)File name Syntax' in the Tramp Info manual, for more about this. Interactively, or if WILDCARDS is non-nil in a call from Lisp, ------------------------------------------------------------ revno: 116725 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-03-10 14:16:13 -0400 message: * lisp/emacs-lisp/advice.el (ad-add-advice, defadvice): Doc fix remove references to deleted info nodes. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-10 13:36:39 +0000 +++ lisp/ChangeLog 2014-03-10 18:16:13 +0000 @@ -1,3 +1,8 @@ +2014-03-10 Glenn Morris + + * emacs-lisp/advice.el (ad-add-advice, defadvice): + Doc fix: remove references to deleted info nodes. + 2014-03-10 Michael Albinus * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): === modified file 'lisp/emacs-lisp/advice.el' --- lisp/emacs-lisp/advice.el 2014-02-10 01:34:22 +0000 +++ lisp/emacs-lisp/advice.el 2014-03-10 18:16:13 +0000 @@ -2079,9 +2079,7 @@ If FUNCTION was not advised already, its advice info will be initialized. Redefining a piece of advice whose name is part of -the cache-id will clear the cache. - -See Info node `(elisp)Computed Advice' for detailed documentation." +the cache-id will clear the cache." (cond ((not (ad-is-advised function)) (ad-initialize-advice-info function) (ad-set-advice-info-field @@ -3149,7 +3147,6 @@ advice state that will be used during activation if appropriate. Only use this if the `defadvice' gets actually compiled. -See Info node `(elisp)Advising Functions' for comprehensive documentation. usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) [DOCSTRING] [INTERACTIVE-FORM] BODY...)" ------------------------------------------------------------ revno: 116724 committer: Paul Eggert branch nick: trunk timestamp: Mon 2014-03-10 11:12:25 -0700 message: Fix "\" problem in tutorials by using natural-language quotes. * tutorials/TUTORIAL, tutorials/TUTORIAL.cs, tutorials/TUTORIAL.eo: * tutorials/TUTORIAL.es, tutorials/TUTORIAL.it, tutorials/TUTORIAL.ja: * tutorials/TUTORIAL.ko, tutorials/TUTORIAL.nl, tutorials/TUTORIAL.pl: * tutorials/TUTORIAL.pt_BR, tutorials/TUTORIAL.ro: * tutorials/TUTORIAL.ru, tutorials/TUTORIAL.sk, tutorials/TUTORIAL.sv: * tutorials/TUTORIAL.th: Avoid using ` for natural-language quotes. Instead, work around the problem with "\" by using non-" quotation marks appropriate for the natural language in question, e.g., «...» for Spanish. For English “...” could be used, but use '...' instead so that TUTORIAL continues to be encoded in ASCII. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-03-10 14:05:54 +0000 +++ etc/ChangeLog 2014-03-10 18:12:25 +0000 @@ -1,3 +1,18 @@ +2014-03-10 Paul Eggert + + Fix "\" problem in tutorials by using natural-language quotes. + * tutorials/TUTORIAL, tutorials/TUTORIAL.cs, tutorials/TUTORIAL.eo: + * tutorials/TUTORIAL.es, tutorials/TUTORIAL.it, tutorials/TUTORIAL.ja: + * tutorials/TUTORIAL.ko, tutorials/TUTORIAL.nl, tutorials/TUTORIAL.pl: + * tutorials/TUTORIAL.pt_BR, tutorials/TUTORIAL.ro: + * tutorials/TUTORIAL.ru, tutorials/TUTORIAL.sk, tutorials/TUTORIAL.sv: + * tutorials/TUTORIAL.th: + Avoid using ` for natural-language quotes. Instead, work around + the problem with "\" by using non-" quotation marks appropriate + for the natural language in question, e.g., «...» for Spanish. + For English “...” could be used, but use '...' instead so that + TUTORIAL continues to be encoded in ASCII. + 2014-03-10 Bastien Guerry * tutorials/TUTORIAL.fr: Adapt to the recent changes in TUTORIAL. === modified file 'etc/tutorials/TUTORIAL' --- etc/tutorials/TUTORIAL 2014-03-06 01:59:47 +0000 +++ etc/tutorials/TUTORIAL 2014-03-10 18:12:25 +0000 @@ -312,7 +312,7 @@ graphical display, little curved arrows appear in the narrow spaces on each side of the text area (the left and right "fringes"), to indicate where a line has been continued. If you're using a text terminal, the -continued line is indicated by a backslash (`\') on the rightmost +continued line is indicated by a backslash ('\') on the rightmost screen column. >> Insert text until you reach the right margin, and keep on inserting. @@ -646,7 +646,7 @@ back to the same Emacs session afterward. When Emacs is running on a text terminal, C-z "suspends" Emacs; that is, it returns to the shell but does not destroy the Emacs job. In the most common shells, you -can resume Emacs with the `fg' command or with `%emacs'. +can resume Emacs with the "fg" command or with "%emacs". The time to use C-x C-c is when you are about to log out. It's also the right thing to use to exit an Emacs invoked for a quick edit, such @@ -835,7 +835,7 @@ you want to search for. terminates a search. >> Now type C-s to start a search. SLOWLY, one letter at a time, - type the word 'cursor', pausing after you type each + type the word "cursor", pausing after you type each character to notice what happens to the cursor. Now you have searched for "cursor", once. >> Type C-s again, to search for the next occurrence of "cursor". @@ -844,7 +844,7 @@ Did you see what happened? Emacs, in an incremental search, tries to go to the occurrence of the string that you've typed out so far. To -go to the next occurrence of 'cursor' just type C-s again. If no such +go to the next occurrence of "cursor" just type C-s again. If no such occurrence exists, Emacs beeps and tells you the search is currently "failing". C-g would also terminate the search. @@ -1060,7 +1060,7 @@ >> Type C-x 1 to delete the help window. C-h i Read included Manuals (a.k.a. Info). This command puts - you into a special buffer called `*info*' where you + you into a special buffer called "*info*" where you can read manuals for the packages installed on your system. Type m emacs to read the Emacs manual. If you have never before used Info, type ? and Emacs @@ -1131,4 +1131,3 @@ Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software! - === modified file 'etc/tutorials/TUTORIAL.cs' --- etc/tutorials/TUTORIAL.cs 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.cs 2014-03-10 18:12:25 +0000 @@ -304,7 +304,7 @@ Když se řádek textu zvětší natolik, že přesáhne jeden řádek obrazovky, je zobrazen na více řádcích obrazovky. Řádek textu, který pokračuje na -dalším řádku obrazovky, je indikován zpětným lomítkem (`\') na pravém +dalším řádku obrazovky, je indikován zpětným lomítkem („\“) na pravém okraji obrazovky. >> Vkládejte text, až dosáhnete pravého okraje, a pokračujte ve vkládání. @@ -599,13 +599,13 @@ Na systémech, které to umožňují, C-z Emacs "pozastaví"; tzn. vrátí vás do shellu, avšak Emacs neukončí. V nejběžnějších shellech se můžete do -Emacsu vrátit příkazem `fg' nebo pomocí `%emacs'. +Emacsu vrátit příkazem "fg" nebo pomocí "%emacs". Na systémech, které pozastavování procesů nemají implementováno, C-z vytvoří subshell běžící pod Emacsem, aby vám dal šanci spustit jiné programy a pak se do Emacsu vrátit; neprovede tedy pravé opuštění Emacsu. V tom případě je obvyklou cestou návratu ze subshellu do Emacsu -shellovský příkaz `exit'. +shellovský příkaz "exit". Chvíle pro použití C-x C-c nastane, když se chystáte odhlásit ze systému. Správné je to také při ukončování Emacsu vyvolaného poštovním @@ -788,7 +788,7 @@ a čeká, až mu zadáte, co chcete hledat. hledání ukončí. >> Nyní zahajte hledání stiskem C-s. POMALU, písmeno po písmenu, pište - slovo 'kurzor'. Po každém písmenu si všimněte, co se děje s kurzorem. + slovo "kurzor". Po každém písmenu si všimněte, co se děje s kurzorem. Teď jste vyhledali "kurzor" poprvé. >> Stiskněte C-s znovu, abyste nalezli další výskyt "kurzor". >> Nyní čtyřikrát stiskněte a pozorujte, jak se kurzor @@ -797,7 +797,7 @@ Viděli jste, co se stalo? Emacs se v inkrementálním hledání pokouší přejít na další výskyt řetězce, který jste dosud napsali. Chcete-li -přejít na další výskyt 'kurzor', jednoduše stiskněte C-s znovu. +přejít na další výskyt "kurzor", jednoduše stiskněte C-s znovu. Jestliže už žádný takový výskyt není, Emacs pípne a řekne vám, že hledání momentálně "selhává", C-g hledání ukončí. @@ -983,7 +983,7 @@ >> Stiskněte C-x 1 pro smazání okna s nápovědou. C-h i Čtení on-line manuálů (též Info). Tento příkaz - vás přepne do speciálního bufferu s názvem `*info*', + vás přepne do speciálního bufferu s názvem "*info*", ve kterém můžete číst on-line manuály pro balíky nainstalované na vašem systému. Pokud stisknete m emacs můžete si například přečíst manuál === modified file 'etc/tutorials/TUTORIAL.eo' --- etc/tutorials/TUTORIAL.eo 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.eo 2014-03-10 18:12:25 +0000 @@ -318,7 +318,7 @@ kopio por vi. Kiam linio da teksto iĝas pli longa ol la ekrana linio, la teksta -linio transiras sur la sekvan ekranan linion. Retroklino (`\') -- aŭ, +linio transiras sur la sekvan ekranan linion. Retroklino (“\”) -- aŭ, en grafika fenestrosistemo, kurba sageto -- en la dekstra marĝeno indikas tian transiron. === modified file 'etc/tutorials/TUTORIAL.es' --- etc/tutorials/TUTORIAL.es 2014-03-08 20:12:42 +0000 +++ etc/tutorials/TUTORIAL.es 2014-03-10 18:12:25 +0000 @@ -332,7 +332,7 @@ flechas curvas en las estrechas franjas vacías (los "márgenes" derecho e izquierdo) a cada lado del área de texto, para indicar que la línea continúa. Si está utilizando una terminal, la continuación se señala -mediante una barra invertida (`\') en la última columna de la derecha. +mediante una barra invertida («\») en la última columna de la derecha. >> Inserte texto hasta que llegue al margen derecho, y siga insertando. Verá aparecer una línea de continuación. @@ -682,7 +682,7 @@ ejecutándose en una terminal, C-z "suspende" Emacs; esto es, se regresa al intérprete de comandos pero no se destruye Emacs. En los intérpretes de comandos más comunes, puede reanudar Emacs con el -comando `fg' o con `%emacs'. +comando "fg" o con "%emacs". El momento para usar C-x C-c es cuando está listo para salir del sistema. Es además el paso correcto para salir de un Emacs invocado @@ -885,7 +885,7 @@ quiere buscar. termina una búsqueda. >> Ahora teclee C-s para comenzar la búsqueda. LENTAMENTE, una letra - a la vez, teclee la palabra 'cursor', haciendo pausa después de + a la vez, teclee la palabra "cursor", haciendo pausa después de cada carácter para notar lo que pasa con el cursor. Ahora ha buscado "cursor", una vez. >> Teclee C-s de nuevo, para buscar la siguiente ocurrencia de @@ -895,7 +895,7 @@ ¿Vió lo que ocurrió? Emacs, en una búsqueda incremental, trata de ir a la ocurrencia de la cadena que ha tecleado hasta el momento. Para -ir a la próxima ocurrencia de 'cursor' solo teclee C-s de nuevo. Si +ir a la próxima ocurrencia de "cursor" solo teclee C-s de nuevo. Si tal ocurrencia no existe, Emacs pita y le dice que la búsqueda actual está fallando ("failing"). C-g también termina la búsqueda. @@ -1123,7 +1123,7 @@ >> Teclee C-x 1 para borrar la ventana de ayuda. C-h i Leer los manuales incluidos (alias Info). Este comando - lo pone en un buffer especial llamado `*info*' donde + lo pone en un buffer especial llamado "*info*" donde puede leer manuales de los paquetes instalados en su sistema. Teclee m emacs para leer el manual de Emacs. Si nunca ha usado Info, teclee ? y Emacs y === modified file 'etc/tutorials/TUTORIAL.it' --- etc/tutorials/TUTORIAL.it 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.it 2014-03-10 18:12:25 +0000 @@ -319,7 +319,7 @@ Quando una riga di testo diventa troppo lunga per essere visualizzata su una riga di schermo essa viene "continuata" su una seconda riga dello -schermo. Un carattere barra retroversa (`\') posto accanto al margine +schermo. Un carattere barra retroversa («\») posto accanto al margine sinistro indica la prosecuzione della riga precedente. Quando si usa un sistema a finestre grafico, invece della barra retroversa comparirà una piccola freccia ricurva. @@ -379,7 +379,7 @@ C-SPC. Emacs dovrebbe mostrarti il messaggio "Mark set" nella parte bassa dello schermo. Muovi il cursore sulla s di "estremi" del paragrafo precedente. Premi C-w. Questo cancellerà il testo a partire - dalla `P' e fino alla lettera che precede `s'. + dalla "P" e fino alla lettera che precede "s". La differenza tra "killing" (eliminazione) e "deleting" (cancellazione) è che il testo "eliminato" può essere inserito di nuovo, mentre quello che @@ -628,13 +628,13 @@ Su sistemi che lo permettono C-z "sospende" Emacs, cioè riporta alla shell che lo aveva invocato senza però porre termine alla sessione attuale. Nelle shell più comuni si può riaprire la sessione in corso con il comando -`fg' oppure con `%emacs'. +"fg" oppure con "%emacs". Su sistemi che non prevedono la possibilità di "sospensione", C-z crea una subshell che funziona all'interno di Emacs per dare la possibilità di usare altri programmi e poi tornare a Emacs successivamente; in pratica non fa "uscire" veramente da Emacs. In questo caso il comando di shell -`exit' è il modo comune per tornare ad Emacs dalla subshell. +"exit" è il modo comune per tornare ad Emacs dalla subshell. Il momento di usare C-x C-c è quando si sta per effettuare il log-out dal sistema. È anche il comando giusto quando si deve chiudere Emacs che è @@ -838,7 +838,7 @@ cercare. serve a concludere la ricerca. >> Adesso usa C-s per inziare la ricerca. LENTAMENTE, una lettera alla - volta, inserisci la parola `cursore', facendo una pausa dopo ogni + volta, inserisci la parola "cursore", facendo una pausa dopo ogni carattere scritto per vedere cosa succede al cursore. Hai cercato "cursore" una volta sola. >> Usa C-s un'altra volta per trovare il punto in cui la parola "cursore" @@ -849,7 +849,7 @@ Hai visto cos'è successo? Durante una ricerca incrementale Emacs prova ad andare al punto successivo in cui compare la stringa indicata fino a quel momento. Per raggiungere il punto successivo in cui compare di nuovo -`cursore' basta solo premere C-s ancora una volta. Se la stringa cercata +"cursore" basta solo premere C-s ancora una volta. Se la stringa cercata non compare in alcun punto successivo Emacs emette un "beep" e informa che la ricerca non è andata a buon fine ("failing"). C-g è un modo alternativo per concludere la ricerca. @@ -1045,7 +1045,7 @@ >> Usa C-x 1 per eliminare la finestra di aiuto. C-h i Leggi la documentazione. Questo comando apre un buffer - speciale chiamato `*info*' in cui puoi leggere i manuali + speciale chiamato "*info*" in cui puoi leggere i manuali on-line dei pacchetti installati sul tuo sistema. Batti m emacs per leggere il manuale di Emacs. Se non hai mai usato il sistema Info prima d'ora premi ? ed Emacs ti === modified file 'etc/tutorials/TUTORIAL.ja' --- etc/tutorials/TUTORIAL.ja 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.ja 2014-03-10 18:12:25 +0000 @@ -309,7 +309,7 @@ $BJ8>O$N0l9T$,2hLL$K<}$^$i$J$$DxD9$/$J$C$?>l9g!"$=$N9T$O2hLL>e$N.$5$J6J$C$?Lp0u!K$O!"$=$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#(B >> $B2hLL$N1&C<$^$GJ8>O$rF~NO$7!"$5$i$KF~NO$rB3$1$F2<$5$$!#(B @@ -608,13 +608,13 @@ $B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B Emacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B Emacs $B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$NI8(B -$B=`E*$J%7%'%k$J$i!"(B`fg' $B%3%^%s%I$b$7$/$O(B `%emacs' $B$K$h$C$F(B Emacs $B$r:F3+(B +$B=`E*$J%7%'%k$J$i!"!V(Bfg$B!W(B $B%3%^%s%I$b$7$/$O(B $B!V(B%emacs$B!W(B $B$K$h$C$F(B Emacs $B$r:F3+(B $B$G$-$^$9!#(B $B!VCfCG!W5!G=$r$N%W%m%0%i%`$rAv$i$;$F$+$i$^$?(B Emacs $B$KLa$k$3$H$,$G$-(B $B$k$h$&$K$7$^$9!#$3$N>l9gK\Ev$K(B Emacs $B$+$iH4$1=P$k$o$1$G$O$"$j$^$;$s$N(B -$B$G!"%7%'%k%3%^%s%I$N(B `exit' $B$,$=$N%5%V%7%'%k$+$i(B Emacs $B$KLa$kIaDL$N$d(B +$B$G!"%7%'%k%3%^%s%I$N(B $B!V(Bexit$B!W(B $B$,$=$N%5%V%7%'%k$+$i(B Emacs $B$KLa$kIaDL$N$d(B $B$jJ}$G$9!#(B C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail @@ -695,7 +695,7 @@ L $B$H$=$l$KB3$/?t;z$O8=:_$N9THV9f$r<($7$F$$$^$9!#(B $B@hF,6a$/$N@10u$O!"$"$J$?$,J8>O$rJQ99$7$?$3$H$r<($7$F$$$^$9!#%U%!%$%k$r(B -$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B `-' +$B3+$$$?D>8e$d!"%;!<%V$7$?D>8e$O!"$=$NItJ,$K$O@10u$NBe$o$j$K%@%C%7%e(B $B!V(B-$B!W(B $B$,I=<($5$l$^$9!#(B $B3g8L$K0O$^$l$?ItJ,$O$I$s$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B @@ -996,7 +996,7 @@ >> C-x 1 $B$G%X%k%W%&%#%s%I%&$r>C$7$F2<$5$$!#(B C-h i $BImB0%^%K%e%"%k!J(BInfo$B!K$rFI$`!#$3$N%3%^%s%I$r;H$&$H!"$"(B - $B$J$?$O(B `*info*' $B$H$$$&L>$NFC$NFC$B$H%?%$%W$9$l$P(B Emacs $B$N%^%K%e%"%k$,FI$a$^$9!#$b$7(B Info$B$r;H$&$N$,=i$a(B === modified file 'etc/tutorials/TUTORIAL.ko' --- etc/tutorials/TUTORIAL.ko 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.ko 2014-03-10 18:12:25 +0000 @@ -295,7 +295,7 @@ 글월이 화면의 한 줄에 다 들어가지 못할 정도로 커지면 글월의 줄은 화면의 두번째 줄에서 "계속"됩니다. 오른쪽 한계에 있는 역사선 문자 -(`\')는 줄이 다음 줄로 이어지는 것을 가리킵니다. +(“\”)는 줄이 다음 줄로 이어지는 것을 가리킵니다. >> 글월을 계속 끼워서 오른쪽 한계를 넘어서도록 하십시오. 그러면 줄 계속 표시가 나타날 것입니다. @@ -342,11 +342,11 @@ 그 부분의 다른쪽 끝으로 이동해서 C-w를 칩니다. 그러면 그 두 위치사이의 모든 글월은 죽여집니다. ->> 깜빡이를 전 문단의 시작인 `일'자로 움직이십시오. +>> 깜빡이를 전 문단의 시작인 “일”자로 움직이십시오. >> C-SPC를 치시오. 이맥스는 화면의 바닥에 "Mark set"이라는 알림말을 보여줄 것입니다. ->> 깜빡이를 위 문단의 두번째 줄에 있는 `끝'자로 움직이시오. ->> C-w를 치시오. 그러면 `일'자로 시작해서 `끝'자까지의 글월이 죽여질 +>> 깜빡이를 위 문단의 두번째 줄에 있는 “끝”자로 움직이시오. +>> C-w를 치시오. 그러면 “일”자로 시작해서 “끝”자까지의 글월이 죽여질 것입니다. "죽이기"와 "지우기"의 다른 점은 "죽여진" 글월은 재차 끼워넣을 수 있는 @@ -579,13 +579,13 @@ 운영 체계가 허용하면 C-z는 이맥스를 "중지"시킵니다(suspend); 즉, 이 명령은 조가비(shell)로 돌아 가도록 하지만 이맥스를 파괴하는 것은 -아닙니다. 대부분의 조가비에서는 `fg'나 `%emacs'명령으로 이맥스를 계속할 +아닙니다. 대부분의 조가비에서는 “fg”나 “%emacs”명령으로 이맥스를 계속할 수 있습니다. 중지하는 것을 제공하지 않는 운영 체계에서는 C-z에 의해, 이맥스 밑에서 실행되는 아랫조가비가 만들어 지게 되는데 여기서 다른 프로그램들을 실행한 후 이맥스로 돌아 올 수 있는 기회가 있습니다; 사실상 이맥스로부터 -"나가는" 것은 아닙니다. 이 경우 보통, 조가비 명령인 `exit'으로 +"나가는" 것은 아닙니다. 이 경우 보통, 조가비 명령인 “exit”으로 아랫조가비에서 이맥스에 되돌아 옵니다. C-x C-c는 전산기에서 벗어나기 할 때나 사용합니다. 편지를 취급하는 @@ -758,10 +758,10 @@ 마칩니다. >> 이제 C-s를 쳐서 찾기를 시작하십시오. 천천히, 한 번에 한 글자씩 - 'cursor'라고 치면서 각각의 문자를 친 후 깜박이에 어떤 일이 일어 + “cursor”라고 치면서 각각의 문자를 친 후 깜박이에 어떤 일이 일어 나는가를 유의하십시오. - 이제 "cursor"를 한 번 찾은 것입니다. ->> C-s를 다시 쳐서 다음에 나타나는 "cursor"를 찾으십시오. + 이제 “cursor”를 한 번 찾은 것입니다. +>> C-s를 다시 쳐서 다음에 나타나는 “cursor”를 찾으십시오. >> 자, 이제는 를 네 번 쳐서 깜박이가 어떻게 움직이는가를 보십시오. >> 을 쳐서 찾기를 끝내십시오. @@ -953,7 +953,7 @@ >> C-x 1을 쳐서 도움말 창을 지우십시오. C-h i 온라인 설명서를 읽기 (즉 Info). 이 명령은 - `*info*'라는 특별한 사이칸에서 시스템에 설치된 + “*info*”라는 특별한 사이칸에서 시스템에 설치된 꾸러미의 온라인 설명서를 보여줍니다. m emacs <복귀쇠>를 치면 이맥스 설명서를 읽을 수 있습니다. 전에 Info를 읽어 본 적이 없으면 ?를 치십시오. 그러면 === modified file 'etc/tutorials/TUTORIAL.nl' --- etc/tutorials/TUTORIAL.nl 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.nl 2014-03-10 18:12:25 +0000 @@ -339,7 +339,7 @@ worden, dan gaat hij verder op de volgende schermregel. Als je een grafisch scherm gebruikt verschijnen kleine gebogen pijltjes links en rechts van het tekstgebied om aan te geven waar een regel voortgezet -is. In een tekstvenster of terminal geeft een backslash (`\') in de +is. In een tekstvenster of terminal geeft een backslash (‘\’) in de laatste kolom een vervolgregel aan. >> Voeg nu tekst toe totdat je de rechter kantlijn raakt, en blijf === modified file 'etc/tutorials/TUTORIAL.pl' --- etc/tutorials/TUTORIAL.pl 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.pl 2014-03-10 18:12:25 +0000 @@ -252,7 +252,7 @@ * ZABLOKOWANE POLECENIA ----------------------- -Pewne polecenia Emacsa są ,,zablokowane'' -- po to, by początkujący +Pewne polecenia Emacsa są „zablokowane” -- po to, by początkujący użytkownicy nie mogli ich wywołać przez przypadek. Jeśli wywołasz jedno z zablokowanych poleceń, to Emacs wypisze komunikat @@ -263,7 +263,7 @@ naciskając spację. Jeśli nie chcesz wywołać zablokowanego polecenia, to na pytanie odpowiedz, naciskając n. ->> Napisz `C-x C-l' (co jest zablokowanym poleceniem) i odpowiedz n +>> Napisz „C-x C-l” (co jest zablokowanym poleceniem) i odpowiedz n na zadane pytanie. @@ -271,7 +271,7 @@ ------ Emacs może mieć otwartych kilka okien, z których każde wyświetla -własny tekst. Pojęcie ,,okna'', jeśli chodzi o Emacsa, nie odnosi +własny tekst. Pojęcie „okna”, jeśli chodzi o Emacsa, nie odnosi się do osobnego okienka systemu okienkowego, lecz do pojedynczego panelu wewnątrz okienka systemowego. (Emacs może też pracować na kilku oknach systemowych (X-oknach); w terminologii Emacsa @@ -291,10 +291,10 @@ >> Przesuń kursor do tej linii i naciśnij C-u 0 C-l. (C-l, jak pamiętasz odświeża zawartość ekranu. Jeśli temu poleceniu -poda się argument liczbowy, to będzie to oznaczało ,,odśwież zawartość -ekranu i umieść bieżąca linię o tyle linii od góry ekranu''. Tak więc, -C-u 0 C-1 oznacza ,,odśwież ekran, umieszczając bieżąca linię na samej -górze''.) +poda się argument liczbowy, to będzie to oznaczało „odśwież zawartość +ekranu i umieść bieżąca linię o tyle linii od góry ekranu”. Tak więc, +C-u 0 C-1 oznacza „odśwież ekran, umieszczając bieżąca linię na samej +górze”.) >> Naciśnij Control-x 2 Zauważ, że okno się kurczy, a jednocześnie pojawia się nowe, @@ -331,8 +331,8 @@ Pracujesz teraz na jego kopii. Gdy linia tekstu staje się zbyt długa, by zmieścić się w jednym -wierszu ekranu, to jest ona ,,kontynuowana'' w wierszu następnym. -Znak ,,backslash'' (`\') (albo - jeśli pracujesz w okienkowym +wierszu ekranu, to jest ona „kontynuowana” w wierszu następnym. +Znak „backslash” („\”) (albo - jeśli pracujesz w okienkowym trybie graficznym - zagięta strzałka) umieszczony na prawym marginesie wskazuje, że dana linia jest kontynuowana w następnym wierszu ekranu. @@ -389,19 +389,19 @@ >> Naciśnij C-SPC. Emacs wyświetli "Mark set" (znacznik ustawiony) na dole ekranu. ->> Przesuń kursor do litery o w słowie ,,kursor'' w drugim zdaniu. +>> Przesuń kursor do litery o w słowie „kursor” w drugim zdaniu. >> Naciśnij C-w. Ta komenda wytnie cały fragment zaczynający się od O, a kończący tuż przed o. Gdy usuwasz więcej niż jeden znak naraz, Emacs zachowuje usunięty tekst po to, by mógł go z powrotem gdzieś wstawić. Wstawianie -usuniętego tekstu nazywa się ,,wklejaniem''. Usunięty tekst +usuniętego tekstu nazywa się „wklejaniem”. Usunięty tekst możesz wkleić zarówno w to samo miejsce, z którego został usunięty, bądź też w inne miejsca. Ten sam tekst możesz wkleić wielokrotnie, w celu uzyskania wielu kopii. Poleceniem wklejenia tekstu jest C-y. -Zauważ różnicę między ,,wycinaniem'' i ,,usuwaniem'', polegającą na tym, +Zauważ różnicę między „wycinaniem” i „usuwaniem”, polegającą na tym, że rzeczy wycięte można na nowo wklejać, usuniętych natomiast wklejać nie można. Na ogół polecenia Emacsa, które kasują dużo tekstu, zachowują go, podczas gdy polecenia, które po prostu kasują jeden znak albo puste @@ -461,7 +461,7 @@ -------- Jeśli wprowadzisz zmiany do tekstu, a potem dojdziesz do wniosku, że -to była pomyłka, to możesz cofnąć zmiany, wydając polecenie ,,cofnij'' +to była pomyłka, to możesz cofnąć zmiany, wydając polecenie „cofnij” (ang. undo), C-x u. C-x u cofa zmiany wprowadzone przez jedno polecenie; jeśli powtórzysz @@ -494,21 +494,21 @@ Aby edytowany przez Ciebie tekst został na trwałe zachowany, musisz umieścić go w pliku. Jeśli tego nie zrobisz, to tekst zniknie, gdy zamknięty zostanie Emacs, za pomocą którego go edytowałeś. Aby zachować -tekst w pliku, najpierw musisz ten plik ,,znaleźć'', i to zanim +tekst w pliku, najpierw musisz ten plik „znaleźć”, i to zanim zaczniesz wprowadzać tekst. Czynność znajdowania pliku (ang. "file -finding") bywa też nazywana ,,odwiedzaniem pliku'' (ang. "file +finding") bywa też nazywana „odwiedzaniem pliku” (ang. "file visiting"). Odwiedzanie pliku w Emacsie powoduje wyświetlenie jego zawartości. Bardzo często jest to początek edycji pliku. Jednakże zmiany, które -wprowadzasz do pliku, nie są w nim utrwalone, zanim go nie ,,zachowasz'' +wprowadzasz do pliku, nie są w nim utrwalone, zanim go nie „zachowasz” (ang. save). Ma to zapobiec pozostawieniu w systemie pliku, który został zmieniony tylko w połowie, a tego chcesz uniknąć. Gdy zachowujesz zmieniony plik, Emacs zostawia oryginał (pod inna nazwą) na wypadek, gdybyś doszedł do wniosku, że wprowadzone zmiany były błędne. Jeśli popatrzysz na dół ekranu, to zauważysz linię, która zaczyna się -i kończy myślnikami, a zawiera tekst ,,TUTORIAL''. W tej +i kończy myślnikami, a zawiera tekst „TUTORIAL”. W tej części ekranu zawsze możesz znaleźć nazwę pliku, który właśnie odwiedzasz. W tej chwili odwiedzasz plik o nazwie TUTORIAL, który jest Twoją własną kopią samouczka Emacsa. Obojętnie, który plik @@ -523,14 +523,14 @@ Kolejną nowością odnośnie polecenia odwiedzania pliku jest to, że musisz mu podać nazwę pliku, który chcesz znaleźć. Mówimy o tym, że -polecenie ,,czyta argument z terminala'' (w tym wypadku argument jest +polecenie „czyta argument z terminala” (w tym wypadku argument jest nazwą pliku). Po wpisaniu polecenia C-x C-f znajdź plik (ang. find a file) Emacs poprosi Cię o wpisanie nazwy pliku. Pojawia się ona w dolnej linii ekranu. Gdy ta linia jest używana do wprowadzania tego typu danych, -nazywa się ją ,,minibuforem'' (ang. "minibuffer"). Do edycji nazwy pliku +nazywa się ją „minibuforem” (ang. "minibuffer"). Do edycji nazwy pliku w minibuforze możesz używać zwykłych poleceń Emacsa. Wprowadzanie nazwy pliku (lub jakichkolwiek innych danych w @@ -585,7 +585,7 @@ Wpisz w niego jakiś tekst i zachowaj "foo" za pomocą C-x C-s. W końcu napisz C-x C-f TUTORIAL , by wrócić do samouczka. -Emacs przechowuje tekst każdego pliku w obiekcie, zwanym ,,buforem''. +Emacs przechowuje tekst każdego pliku w obiekcie, zwanym „buforem”. Odwiedzenie pliku powoduje utworzenie nowego bufora wewnątrz Emacsa. By zobaczyć listę buforów, które istnieją w Twoim Emacsie, naciśnij @@ -674,7 +674,7 @@ W systemach, w których jest to możliwe, C-z zawiesza proces Emacsa; powoduje to powrót do powłoki (ang. shell), ale nie niszczy Emacsa. W najpopularniejszych powłokach możesz wrócić do Emacsa za pomocą -polecenia `fg' lub `%emacs'. +polecenia „fg” lub „%emacs”. W systemach, w których nie ma zawieszania procesów, C-z tworzy proces podpowłoki (ang. "subshell"), który działa pod Emacsem i daje Ci szansę @@ -718,7 +718,7 @@ Naciśnij M-x repl szmienizmodyfikuje. Zwróć uwagę, jak ta linia się zmieniła: zastąpiłeś słowem - ,,zmodyfikuje'' każde wystąpienie słowa z-m-i-e-n-i poniżej początkowej + „zmodyfikuje” każde wystąpienie słowa z-m-i-e-n-i poniżej początkowej pozycji kursora. @@ -781,7 +781,7 @@ Wewnątrz nawiasów znajdziesz informacje na temat trybu edycji, w którym właśnie jest Emacs. Domyślnym trybem edycji nazywa się podstawowym (ang. fundamental); jest to tryb używanym właśnie w -tej chwili. Jest to przykład ,,trybu głównego'' (ang. major mode). +tej chwili. Jest to przykład „trybu głównego” (ang. major mode). Emacs może działać w wielu trybach głównych. Zostały one zaprojektowane, aby ułatwić edycję napisów w rozmaitych językach programowania, takich @@ -811,7 +811,7 @@ podstawowym, polecenia te traktowały apostrofy jako separatory słów. Główne tryby edycji wprowadzają zwykle subtelne zmiany, takie jak -opisana powyżej; większość poleceń nadal robi ,,to samo'', chociaż +opisana powyżej; większość poleceń nadal robi „to samo”, chociaż być może w troszeczkę inny sposób. By zobaczyć dokumentację na temat bieżącego głównego trybu edycji, @@ -825,8 +825,8 @@ >> Naciśnij q, by usunąć dokumentację trybu z ekranu. -Główne tryby edycji nazywają się właśnie ,,głównymi'', gdyż występują -także ,,podrzędne'' tryby edycji (ang. minor modes). Podrzędne tryby +Główne tryby edycji nazywają się właśnie „głównymi”, gdyż występują +także „podrzędne” tryby edycji (ang. minor modes). Podrzędne tryby edycji nie są alternatywą dla trybów głównych, lecz jedynie ich niewielką modyfikacją. Każdy podrzędny tryb edycji można włączyć lub wyłączyć niezależnie od pozostałych trybów podrzędnych, a także @@ -842,10 +842,10 @@ Tryb automatycznego wstawiania włącza się na przykład poleceniem M-x auto-fill-mode. Powtórzenie tego polecenie powoduje wyłączenie trybu, ponowne powtórzenie --- jego włączenie, i tak dalej. Mówimy, że -polecenie ,,przełącza tryb''. +polecenie „przełącza tryb”. >> Napisz M-x auto-fill-mode. Wstaw potem wiele napisów - ,,asdf '' tak długo, aż zobaczysz, że linia podzieli na dwie. + „asdf ” tak długo, aż zobaczysz, że linia podzieli na dwie. Między literami musisz wstawiać spacje, ponieważ tryb automatycznego wypełniania łamie linie tylko tam, gdzie są spacje. @@ -902,7 +902,7 @@ i podświetla go dla Twojej wygody. By znaleźć następne wystąpienie słowa kursor, po prostu jeszcze raz naciśnij C-s. Jeśli takiego wystąpienia nie ma, to Emacs zapiszczy i napisze, że szukanie -,,skończyło się porażką''. +„skończyło się porażką”. Kombinacja C-g przerywa proces szukania, podobnie jak to czyni z innymi poleceniami. @@ -958,7 +958,7 @@ Każde okno pamięta położenie swojego kursora, lecz w danej chwili tylko jedno z okien wyświetla kursor. Wszystkie polecenia edycyjne stosują się do okna, w którym jest kursor. To okno nazywane jest -,,oknem wybranym''. +„oknem wybranym”. Polecenie C-M-v przyda Ci się, gdy będziesz chciał edytować tekst w jednym oknie, a drugiego używał jako punktu odniesienia. Dzięki niemu @@ -980,8 +980,8 @@ >> Naciśnij C-x 1 (w górnym oknie), by pozbyć się okna dolnego. (Jeśli nacisnąłbyś C-x 1 w dolnym oknie, to górne by znikło. Możesz -sobie to polecenie tłumaczyć jako ,,pozostaw tylko jedno okno --- to w -którym właśnie jestem''.) +sobie to polecenie tłumaczyć jako „pozostaw tylko jedno okno --- to w +którym właśnie jestem”.) Nie musi być tak, że obydwa okna pokazują ten sam bufor. Jeśli użyjesz C-x C-f, by odwiedzić jakiś plik w jednym z nich, to zawartość drugiego @@ -1009,7 +1009,7 @@ (Fundamental). By wyjść z rekursywnego poziomu edycji, naciśnij ESC ESC ESC. Jest to -ogólnego przeznaczenia polecenie ,,wychodzimy''. Możesz go użyć także, +ogólnego przeznaczenia polecenie „wychodzimy”. Możesz go użyć także, by pozbyć się nadmiaru okien albo wyjść z minibufora. >> Naciśnij M-x by wejść do minibufora, potem naciśnij ESC ESC ESC, by @@ -1048,7 +1048,7 @@ C-p runs the command previous-line -W ten sposób możesz uzyskać ,,nazwę funkcji'' przypisanej kombinacji +W ten sposób możesz uzyskać „nazwę funkcji” przypisanej kombinacji klawiszy. Przydaje się to podczas pisania kodu w Lispie, w którym zapisane są rozszerzenia Emacsa; wystarcza to także do przypomnienia Ci, co dane polecenie robi, jeśli widziałeś je już wcześniej, lecz @@ -1183,7 +1183,7 @@ Pamiętaj, że by wyjść z Emacsa na stałe, trzeba wydać polecenie C-x C-c. By wyjść do powłoki na chwilę tak, by jeszcze Do Emacsa wrócić, trzeba użyć C-z. (To nie działa pod X-Windows, ponieważ tam nie ma prawdziwego -konceptu przejścia na chwilę do powłoki. Zamiast tego C-z ,,ikonizuje'' +konceptu przejścia na chwilę do powłoki. Zamiast tego C-z „ikonizuje” okno Emacsa.) Ten samouczek był pisany tak, by wszyscy nowi użytkownicy mogli go === modified file 'etc/tutorials/TUTORIAL.pt_BR' --- etc/tutorials/TUTORIAL.pt_BR 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.pt_BR 2014-03-10 18:12:25 +0000 @@ -326,7 +326,7 @@ pessoal dele. Quando uma linha de texto fica muito grande na tela, a linha do texto é -continuada na linha seguinte. Uma barra invertida (`\') na margem +continuada na linha seguinte. Uma barra invertida (“\”) na margem direita indica a linha que foi continuada. >> Insira texto até que você alcance a margem direita, e mantenha @@ -630,12 +630,12 @@ Em sistemas que permitem isso, C-z "suspende" o Emacs; isso e, retorna ao shell mas não destrói o Emacs. Nos shells mais comum, você pode -resumir o Emacs com o comando 'fg' ou com '%emacs'. +resumir o Emacs com o comando "fg" ou com "%emacs". Nos sistemas que não implementam suspensão, C-z cria um subshell rodando sobre o Emacs para dar a você a chance de rodar outros programas e retornar ao Emacs depois; isso não "sai" verdadeiramente do Emacs. Nesse -caso, o comando shell 'exit' é o comando usual para voltar ao Emacs do +caso, o comando shell "exit" é o comando usual para voltar ao Emacs do subshell. A hora de usar o C-x C-c é quando você esta prestes a sair do sistema @@ -829,7 +829,7 @@ que você quer procurar. termina a pesquisa. >> Agora digite C-s para iniciar a pesquisa. DEVAGAR, uma letra por vez, - digite o caractere 'cursor', pausando cada vez que você digitar um + digite o caractere "cursor", pausando cada vez que você digitar um caractere, perceba o que acontece com o cursor. Agora que você pesquisou por "cursor", uma vez. >> Digite C-s novamente, para pesquisa a próxima ocorrência de "cursor". @@ -838,7 +838,7 @@ Você viu o que aconteceu? O Emacs, em uma pesquisa incremental, tenta ir para a ocorrência que você digitou ate o momento. Para ir para próxima -ocorrência de 'cursor' apenas digite C-s novamente. Se nenhuma +ocorrência de "cursor" apenas digite C-s novamente. Se nenhuma ocorrência existir, o Emacs bipa e te diz que a pesquisa atual falhou. C-g também termina a pesquisa. === modified file 'etc/tutorials/TUTORIAL.ro' --- etc/tutorials/TUTORIAL.ro 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.ro 2014-03-10 18:12:25 +0000 @@ -328,7 +328,7 @@ Când o linie de text devine prea mare pentru a putea fi reprezentată pe o linie de ecran, linia de text este continuată pe următoarea linie -de pe ecran. Un caracter backslash (`\') la marginea din dreapta +de pe ecran. Un caracter backslash („\”) la marginea din dreapta indică o linie care a fost continuată. >> Introduceţi text până când depăşiţi cu câteva caractere marginea @@ -636,13 +636,13 @@ Pe sistemele unde este posibil, C-z "suspendă" Emacs-ul; asta înseamnă că, deşi vă veţi întoarce la prompt-ul shell-ului, Emacs-ul nu a fost distrus. În shell-urile (interpretoarele de comenzi Unix) cele mai -uzuale puteţi reactiva Emacs-ul cu comanda `fg' sau `%emacs'. +uzuale puteţi reactiva Emacs-ul cu comanda "fg" sau "%emacs". Pe sistemele care nu implementează mecanismele de suspendare, C-z creează un subshell care rulează sub Emacs pentru a vă oferi posibilitatea de a rula alte programe şi de a vă întoarce la Emacs mai târziu; pe aceste sisteme C-z nu iese cu adevărat din Emacs - comanda -`exit' la promptul subshell-ului este modalitatea uzuală de a vă +"exit" la promptul subshell-ului este modalitatea uzuală de a vă întoarce în Emacs. În general C-x C-c se foloseşte înainte de părăsirea sistemului. === modified file 'etc/tutorials/TUTORIAL.ru' --- etc/tutorials/TUTORIAL.ru 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.ru 2014-03-10 18:12:25 +0000 @@ -43,8 +43,8 @@ C-v Перейти на один экран вперед M-v Перейти на один экран назад - C-l Очистить экран и отобразить все заново, - разместив текст, находящийся возле курсора, + C-l Очистить экран и отобразить все заново, + разместив текст, находящийся возле курсора, в центре экрана. (это CONTROL-L, а не CONTROL-1.) >> Найдите курсор и запомните текст возле него. Потом нажмите C-l. @@ -166,7 +166,7 @@ M-a Назад, в начало предложения M-e Вперед, в конец предложения ->> Попробуйте сейчас несколько раз использовать все эти команды. +>> Попробуйте сейчас несколько раз использовать все эти команды. Это наиболее часто используемые команды. Две другие важные команды перемещения курсора: M-< (META Less-then @@ -178,10 +178,10 @@ же должны использовать Shift, чтобы набрать M-< (без удержания клавиши Shift вы наберете M-точка). ->> Сейчас попробуйте M-<, чтобы переместиться в начало учебника. +>> Сейчас попробуйте M-<, чтобы переместиться в начало учебника. Потом используйте C-v, пока не вернетесь назад. ->> Сейчас попробуйте M->, чтобы переместиться к концу учебника. +>> Сейчас попробуйте M->, чтобы переместиться к концу учебника. Используйте M-v, пока не вернетесь назад. Курсор можно перемещать клавишами управления курсора (стрелками), если ваш @@ -259,11 +259,11 @@ говорящее о том, какая команда вызывается, и запросит у вас, хотите ли вы продолжать работу и выполнить данную команду. -Если вы действительно хотите выполнить эту команду, то нажмите клавишу +Если вы действительно хотите выполнить эту команду, то нажмите клавишу (пробел) в ответ на заданный вопрос. А если вы не хотите выполнить запрещенную команду, то ответьте на вопрос нажатием клавиши "n". ->> Нажмите `C-x C-l' ("запрещенная" команда), а потом ответьте "n" на +>> Нажмите "C-x C-l" ("запрещенная" команда), а потом ответьте "n" на заданный вопрос. @@ -320,7 +320,7 @@ дисплей, то небольшие изогнутые стрелки появятся на обоих сторонах экрана ("fringes") чтобы показать, что строка продолжается с предыдущей строки. Если вы используете текстовый терминал, то "продолжаемая" строка -обозначается символом "обратный слэш" (`\') в правой части экрана. +обозначается символом "обратный слэш" («\») в правой части экрана. >> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку символов. Вы увидите что появится "продолжаемая" строка. @@ -649,7 +649,7 @@ ту же сессию Emacs. Когда Emacs запускается на текстовом терминале, команда C-z "приостанавливает" (suspend) Emacs, т.е. она возвращает вас в командный процессор (shell), но не завершает Emacs. В большинстве командных -процессоров вы можете вернуться в Emacs с помощью команды `fg' или `%emacs'. +процессоров вы можете вернуться в Emacs с помощью команды "fg" или "%emacs". Чтобы покинуть Emacs используйте C-x C-c. Это сочетание также используется, чтобы выйти из Emacs, вызванного из почтовой программы или другой утилиты. @@ -803,13 +803,13 @@ используя команду C-x f. Вы должны задать границу в виде числового аргумента для этой команды. ->> Введите C-x f с аргументом 20 (C-u 2 0 C-x f). +>> Введите C-x f с аргументом 20 (C-u 2 0 C-x f). Затем введите какой-нибудь текст и посмотрите как Emacs заполняет строки по 20 символов в каждой. Верните значение границы равное 70 назад, используя команду C-x f. Если вы сделали изменения в середине параграфа, то автозаполнение не -переформатирует текст автоматически. +переформатирует текст автоматически. Чтобы переформатировать параграф, наберите M-q (META-q), когда курсор находится внутри параграфа. @@ -834,7 +834,7 @@ завершает поиск. >> Теперь нажмите C-s для начала поиска. Медленно, по одной букве, набирайте - слово 'курсор', останавливаясь после каждой введенной буквы и замечая, что + слово "курсор", останавливаясь после каждой введенной буквы и замечая, что происходит с курсором. Сейчас вы нашли первое вхождение слова "курсор". >> Нажмите C-s снова, чтобы найти следующее вхождение слова "курсор". @@ -843,7 +843,7 @@ Вы заметили, что произошло? Emacs в режиме инкрементального поиска пытался переходить к строкам, совпадающим с набираемой вами строкой. Чтобы перейти -к следующему вхождению слова 'курсор', просто нажмите C-s снова. Если больше +к следующему вхождению слова "курсор", просто нажмите C-s снова. Если больше нет вхождений, то Emacs издаст звуковой сигнал и сообщит, что ваш поиск не удался ("failing"), C-g также завершает поиск. @@ -1054,7 +1054,7 @@ >> Наберите C-x 1 для удаления окна справки. C-h i Читать интерактивные руководства (команда Info). Эта команда - переходит в специальный буфер с именем `*info*', где вы можете + переходит в специальный буфер с именем "*info*", где вы можете читать интерактивные руководства для пакетов, установленных в вашей системе. Наберите m emacs для чтения руководства по Emacs. Если вы никогда ранее не использовали Info, то наберите ? и @@ -1132,4 +1132,3 @@ ;;; sentence-end-double-space: nil ;;; fill-column: 76 ;;; End: - === modified file 'etc/tutorials/TUTORIAL.sk' --- etc/tutorials/TUTORIAL.sk 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.sk 2014-03-10 18:12:25 +0000 @@ -323,7 +323,7 @@ Keď sa riadok textu zväčší natoľko, že presiahne jeden riadok obrazovky, je zobrazený na viacerých riadkoch obrazovky. Riadok textu, ktorý pokračuje na -ďalšom riadku obrazovky, je indikovaný spätným lomítkom (`\') (alebo, ak +ďalšom riadku obrazovky, je indikovaný spätným lomítkom („\“) (alebo, ak používate grafický systém, malá zakrivená šípka) na pravom okraji obrazovky. >> Vkladajte text, pokiaľ nedosiahnete pravého okraju, a pokračujte vo @@ -632,13 +632,13 @@ Na systémoch, ktoré to umožňujú, C-z Emacs "pozastaví"; tzn. vráti Vás do shellu, ale Emacs neskončí. V najbežnejších shelloch sa môžete do -Emacsu vrátiť príkazom `fg' alebo pomocou `%emacs'. +Emacsu vrátiť príkazom "fg" alebo pomocou "%emacs". Na systémoch, ktoré pozastavovanie procesov nemajú implementované, C-z vytvorí subshell bežiaci pod Emacsom, aby Vám dal šancu spustiť iné programy a potom sa do Emacsu vrátiť; nevykoná teda pravé opustenie Emacsu. V tom prípade je obvyklou cestou návratu zo subshellu do Emacsu -shellový príkaz `exit'. +shellový príkaz "exit". Chvíľa pre použitie C-x C-c nastane vtedy, keď sa chystáte odhlásiť sa zo systému. Správne je to tiež pri ukončovaní Emacsu vyvolaného poštovým @@ -1022,7 +1022,7 @@ >> Stlačte C-x 1 pre zmazanie okna s nápovedou. C-h i Čítanie on-line manuálov (tiež Info). Tento príkaz - Vás prepne do špeciálneho buffera s názvom `*info*', + Vás prepne do špeciálneho buffera s názvom "*info*", v ktorom môžete čítať on-line manuály pre balíky inštalované na vašom systéme. Ak stlačíte m emacs , môžete si napríklad prečítať manuál k Emacsu. Ak ste === modified file 'etc/tutorials/TUTORIAL.sv' --- etc/tutorials/TUTORIAL.sv 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.sv 2014-03-10 18:12:25 +0000 @@ -322,7 +322,7 @@ den på raden under. Om du använder ett fönstersystem, visas små böjda pilar i det lilla utrymmet på bägge sidor om textmassan (i vänster och höger marginal) för att ange var en rad fortsätter, Om du använder -en textterminal anges med ett bakstreck (`\') i kolumnen längst till +en textterminal anges med ett bakstreck (”\”) i kolumnen längst till höger att raden fortsätter. >> Skriv in lite text så att du kommer till slutet av raden och === modified file 'etc/tutorials/TUTORIAL.th' --- etc/tutorials/TUTORIAL.th 2014-03-10 16:00:15 +0000 +++ etc/tutorials/TUTORIAL.th 2014-03-10 18:12:25 +0000 @@ -302,7 +302,7 @@ ท่านจะไม่ทำให้ข้อความในต้นฉบับของคู่มือการใช้เปลี่ยนแปลง. นี่เป็นเพียงฉบับสำเนาเท่านั้น. เมื่อข้อความในบรรทัดยาวเกินกว่าหนึ่งบรรทัดของหน้าจอ, ข้อความในบรรทัดนั้นจะต่อเนื่อง -ไปยังบรรทัดถัดไปของหน้าจอ. อักขระ backslash (`\') ที่ปลายของขอบขวามือจะบ่งชี้ +ไปยังบรรทัดถัดไปของหน้าจอ. อักขระ backslash (“\”) ที่ปลายของขอบขวามือจะบ่งชี้ ว่าข้อความของบรรทัดนั้นต่อเนื่องไปยังบรรทัดถัดไป. >> ป้อนข้อความจนกระทั่งถึงขอบขวา, แล้วป้อนต่อไปอีก. ท่านจะเห็นการแสดงผลของ @@ -560,11 +560,11 @@ สำหรับระบบที่อนุญาตให้ใช้คำสั่ง, C-z "suspends" อีแมกส์; นั่นคือการกลับไปยังเชลล์ (shell) โดยไม่ได้ทำลายอีแมกส์. ในเชลล์ทั่วไป, ท่านสามารถรีซูม (resume) อีแมกส์ -ได้ด้วยคำสั่ง `fg' หรือด้วยคำสั่ง `%emacs'. +ได้ด้วยคำสั่ง "fg" หรือด้วยคำสั่ง "%emacs". สำหรับระบบที่ไม่มีฟังก์ชัน "suspend", คำสั่ง C-z จะสร้างซับเชลล์ (subshell) ภายใต้อีแมกส์เพื่อให้ท่านมีโอกาสดำเนินงานโปรแกรมอื่นก่อนแล้วค่อยกลับมายังอีแมกส์อีกครั้ง; -ซึ่งไม่ใช่การ "ออกจาก (exit)" อีแมกส์จริง. ในกรณีนี้, คำสั่งเชลล์ `exit' เป็นคำสั่ง +ซึ่งไม่ใช่การ "ออกจาก (exit)" อีแมกส์จริง. ในกรณีนี้, คำสั่งเชลล์ "exit" เป็นคำสั่ง ปรกติที่ใช้ในการกลับไปยังอีแมกส์จากซับเชลล์. ใช้คำสั่ง C-x C-c ก็ต่อเมื่อท่านต้องการจะเลิกใช้อีแมกส์จริงๆ. วิธีนี้เป็นวิธีที่ถูกต้องใน ------------------------------------------------------------ revno: 116723 committer: Juanma Barranquero branch nick: trunk timestamp: Mon 2014-03-10 18:33:52 +0100 message: doc/lispref/ChangeLog: Add bug reference. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-03-09 23:55:11 +0000 +++ doc/lispref/ChangeLog 2014-03-10 17:33:52 +0000 @@ -134,7 +134,7 @@ 2014-02-22 Stefan Monnier * functions.texi (Declare Form): Document gv-expander, gv-setter, and - compiler-macro (bug#16829). + compiler-macro (bug#16829, bug#15093). 2014-02-21 Juanma Barranquero ------------------------------------------------------------ revno: 116722 committer: Eli Zaretskii branch nick: trunk timestamp: Mon 2014-03-10 19:31:17 +0200 message: src/w32.c (stat_worker): Fix commentary. diff: === modified file 'src/w32.c' --- src/w32.c 2014-03-10 17:26:45 +0000 +++ src/w32.c 2014-03-10 17:31:17 +0000 @@ -4745,10 +4745,9 @@ return -1; } - /* Remove trailing directory separator, unless name is the root - directory of a drive or UNC volume in which case ensure there - is a trailing separator. */ len = strlen (name); + /* Allocate 1 extra byte so that we could append a slash to a root + directory, down below. */ name = strcpy (alloca (len + 2), name); /* Avoid a somewhat costly call to is_symlink if the filesystem @@ -4963,6 +4962,7 @@ } else if (rootdir) { + /* Make sure root directories end in a slash. */ if (!IS_DIRECTORY_SEP (name[len-1])) strcat (name, "\\"); if (GetDriveType (name) < 2) @@ -4978,6 +4978,8 @@ { int have_wfd = -1; + /* Make sure non-root directories do NOT end in a slash, + otherwise FindFirstFile might fail. */ if (IS_DIRECTORY_SEP (name[len-1])) name[len - 1] = 0; ------------------------------------------------------------ revno: 116721 committer: Eli Zaretskii branch nick: trunk timestamp: Mon 2014-03-10 19:26:45 +0200 message: Fix an obscure bug in fstatat on Windows 9X. src/w32.c (fstatat): Don't add an extra slash if the argument ends with a slash: this fails the subsequent call to stat_worker on Windows 9X. Reported by oslsachem . diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-03-10 10:31:13 +0000 +++ src/ChangeLog 2014-03-10 17:26:45 +0000 @@ -1,3 +1,9 @@ +2014-03-10 Eli Zaretskii + + * w32.c (fstatat): Don't add an extra slash if the argument ends + with a slash: this fails the subsequent call to stat_worker on + Windows 9X. Reported by oslsachem . + 2014-03-10 Martin Rudalics * w32term.c (w32_read_socket): In SIZE_RESTORED case === modified file 'src/w32.c' --- src/w32.c 2014-02-06 15:27:46 +0000 +++ src/w32.c 2014-03-10 17:26:45 +0000 @@ -5138,7 +5138,10 @@ if (fd != AT_FDCWD) { - if (_snprintf (fullname, sizeof fullname, "%s/%s", dir_pathname, name) + char lastc = dir_pathname[strlen (dir_pathname) - 1]; + + if (_snprintf (fullname, sizeof fullname, "%s%s%s", + dir_pathname, IS_DIRECTORY_SEP (lastc) ? "" : "/", name) < 0) { errno = ENAMETOOLONG; ------------------------------------------------------------ revno: 116720 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-03-10 09:00:15 -0700 message: In tutorials, replace "\" with `\' Otherwise Emacs can get confused and think the rest of the buffer is a string. diff: === modified file 'etc/tutorials/TUTORIAL.cs' --- etc/tutorials/TUTORIAL.cs 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.cs 2014-03-10 16:00:15 +0000 @@ -304,7 +304,7 @@ Když se řádek textu zvětší natolik, že přesáhne jeden řádek obrazovky, je zobrazen na více řádcích obrazovky. Řádek textu, který pokračuje na -dalším řádku obrazovky, je indikován zpětným lomítkem ("\") na pravém +dalším řádku obrazovky, je indikován zpětným lomítkem (`\') na pravém okraji obrazovky. >> Vkládejte text, až dosáhnete pravého okraje, a pokračujte ve vkládání. === modified file 'etc/tutorials/TUTORIAL.eo' --- etc/tutorials/TUTORIAL.eo 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.eo 2014-03-10 16:00:15 +0000 @@ -318,7 +318,7 @@ kopio por vi. Kiam linio da teksto iĝas pli longa ol la ekrana linio, la teksta -linio transiras sur la sekvan ekranan linion. Retroklino ("\") -- aŭ, +linio transiras sur la sekvan ekranan linion. Retroklino (`\') -- aŭ, en grafika fenestrosistemo, kurba sageto -- en la dekstra marĝeno indikas tian transiron. === modified file 'etc/tutorials/TUTORIAL.it' --- etc/tutorials/TUTORIAL.it 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.it 2014-03-10 16:00:15 +0000 @@ -319,7 +319,7 @@ Quando una riga di testo diventa troppo lunga per essere visualizzata su una riga di schermo essa viene "continuata" su una seconda riga dello -schermo. Un carattere barra retroversa ("\") posto accanto al margine +schermo. Un carattere barra retroversa (`\') posto accanto al margine sinistro indica la prosecuzione della riga precedente. Quando si usa un sistema a finestre grafico, invece della barra retroversa comparirà una piccola freccia ricurva. === modified file 'etc/tutorials/TUTORIAL.ja' --- etc/tutorials/TUTORIAL.ja 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.ja 2014-03-10 16:00:15 +0000 @@ -309,7 +309,7 @@ $BJ8>O$N0l9T$,2hLL$K<}$^$i$J$$DxD9$/$J$C$?>l9g!"$=$N9T$O2hLL>e$N.$5$J6J$C$?Lp0u!K$O!"$=$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#(B >> $B2hLL$N1&C<$^$GJ8>O$rF~NO$7!"$5$i$KF~NO$rB3$1$F2<$5$$!#(B === modified file 'etc/tutorials/TUTORIAL.ko' --- etc/tutorials/TUTORIAL.ko 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.ko 2014-03-10 16:00:15 +0000 @@ -295,7 +295,7 @@ 글월이 화면의 한 줄에 다 들어가지 못할 정도로 커지면 글월의 줄은 화면의 두번째 줄에서 "계속"됩니다. 오른쪽 한계에 있는 역사선 문자 -("\")는 줄이 다음 줄로 이어지는 것을 가리킵니다. +(`\')는 줄이 다음 줄로 이어지는 것을 가리킵니다. >> 글월을 계속 끼워서 오른쪽 한계를 넘어서도록 하십시오. 그러면 줄 계속 표시가 나타날 것입니다. === modified file 'etc/tutorials/TUTORIAL.nl' --- etc/tutorials/TUTORIAL.nl 2014-01-01 08:31:29 +0000 +++ etc/tutorials/TUTORIAL.nl 2014-03-10 16:00:15 +0000 @@ -339,7 +339,7 @@ worden, dan gaat hij verder op de volgende schermregel. Als je een grafisch scherm gebruikt verschijnen kleine gebogen pijltjes links en rechts van het tekstgebied om aan te geven waar een regel voortgezet -is. In een tekstvenster of terminal geeft een backslash ("\") in de +is. In een tekstvenster of terminal geeft een backslash (`\') in de laatste kolom een vervolgregel aan. >> Voeg nu tekst toe totdat je de rechter kantlijn raakt, en blijf === modified file 'etc/tutorials/TUTORIAL.pt_BR' --- etc/tutorials/TUTORIAL.pt_BR 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.pt_BR 2014-03-10 16:00:15 +0000 @@ -326,7 +326,7 @@ pessoal dele. Quando uma linha de texto fica muito grande na tela, a linha do texto é -continuada na linha seguinte. Uma barra invertida ("\") na margem +continuada na linha seguinte. Uma barra invertida (`\') na margem direita indica a linha que foi continuada. >> Insira texto até que você alcance a margem direita, e mantenha === modified file 'etc/tutorials/TUTORIAL.ro' --- etc/tutorials/TUTORIAL.ro 2014-01-01 08:31:29 +0000 +++ etc/tutorials/TUTORIAL.ro 2014-03-10 16:00:15 +0000 @@ -328,7 +328,7 @@ Când o linie de text devine prea mare pentru a putea fi reprezentată pe o linie de ecran, linia de text este continuată pe următoarea linie -de pe ecran. Un caracter backslash ("\") la marginea din dreapta +de pe ecran. Un caracter backslash (`\') la marginea din dreapta indică o linie care a fost continuată. >> Introduceţi text până când depăşiţi cu câteva caractere marginea === modified file 'etc/tutorials/TUTORIAL.ru' --- etc/tutorials/TUTORIAL.ru 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.ru 2014-03-10 16:00:15 +0000 @@ -320,7 +320,7 @@ дисплей, то небольшие изогнутые стрелки появятся на обоих сторонах экрана ("fringes") чтобы показать, что строка продолжается с предыдущей строки. Если вы используете текстовый терминал, то "продолжаемая" строка -обозначается символом "обратный слэш" ("\") в правой части экрана. +обозначается символом "обратный слэш" (`\') в правой части экрана. >> Вводите текст, пока он не достигнет правой границы, и продолжайте вставку символов. Вы увидите что появится "продолжаемая" строка. === modified file 'etc/tutorials/TUTORIAL.sk' --- etc/tutorials/TUTORIAL.sk 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.sk 2014-03-10 16:00:15 +0000 @@ -323,7 +323,7 @@ Keď sa riadok textu zväčší natoľko, že presiahne jeden riadok obrazovky, je zobrazený na viacerých riadkoch obrazovky. Riadok textu, ktorý pokračuje na -ďalšom riadku obrazovky, je indikovaný spätným lomítkom ("\") (alebo, ak +ďalšom riadku obrazovky, je indikovaný spätným lomítkom (`\') (alebo, ak používate grafický systém, malá zakrivená šípka) na pravom okraji obrazovky. >> Vkladajte text, pokiaľ nedosiahnete pravého okraju, a pokračujte vo === modified file 'etc/tutorials/TUTORIAL.sv' --- etc/tutorials/TUTORIAL.sv 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.sv 2014-03-10 16:00:15 +0000 @@ -322,7 +322,7 @@ den på raden under. Om du använder ett fönstersystem, visas små böjda pilar i det lilla utrymmet på bägge sidor om textmassan (i vänster och höger marginal) för att ange var en rad fortsätter, Om du använder -en textterminal anges med ett bakstreck ("\") i kolumnen längst till +en textterminal anges med ett bakstreck (`\') i kolumnen längst till höger att raden fortsätter. >> Skriv in lite text så att du kommer till slutet av raden och === modified file 'etc/tutorials/TUTORIAL.th' --- etc/tutorials/TUTORIAL.th 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.th 2014-03-10 16:00:15 +0000 @@ -302,7 +302,7 @@ ท่านจะไม่ทำให้ข้อความในต้นฉบับของคู่มือการใช้เปลี่ยนแปลง. นี่เป็นเพียงฉบับสำเนาเท่านั้น. เมื่อข้อความในบรรทัดยาวเกินกว่าหนึ่งบรรทัดของหน้าจอ, ข้อความในบรรทัดนั้นจะต่อเนื่อง -ไปยังบรรทัดถัดไปของหน้าจอ. อักขระ backslash ("\") ที่ปลายของขอบขวามือจะบ่งชี้ +ไปยังบรรทัดถัดไปของหน้าจอ. อักขระ backslash (`\') ที่ปลายของขอบขวามือจะบ่งชี้ ว่าข้อความของบรรทัดนั้นต่อเนื่องไปยังบรรทัดถัดไป. >> ป้อนข้อความจนกระทั่งถึงขอบขวา, แล้วป้อนต่อไปอีก. ท่านจะเห็นการแสดงผลของ ------------------------------------------------------------ revno: 116719 committer: Glenn Morris branch nick: trunk timestamp: Mon 2014-03-10 08:49:01 -0700 message: Add missing NEWS entry diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-03-07 19:12:31 +0000 +++ etc/NEWS 2014-03-10 15:49:01 +0000 @@ -359,6 +359,8 @@ E.g., typing RET reindents the current line and indents the new line. `C-j' inserts a newline but does not indent. +*** New buffer-local `electric-indent-local-mode'. + +++ *** The behavior of `C-x TAB' (`indent-rigidly') has changed. When invoked without a prefix argument, it now activates a transient ------------------------------------------------------------ revno: 116718 committer: Bastien Guerry branch nick: trunk timestamp: Mon 2014-03-10 15:05:54 +0100 message: * tutorials/TUTORIAL.fr: Adapt to the recent changes in TUTORIAL. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-03-09 23:55:11 +0000 +++ etc/ChangeLog 2014-03-10 14:05:54 +0000 @@ -1,3 +1,7 @@ +2014-03-10 Bastien Guerry + + * tutorials/TUTORIAL.fr: Adapt to the recent changes in TUTORIAL. + 2014-03-08 Luis Felipe López Acevedo (tiny change) * tutorials/TUTORIAL.es: Fix typos. (Bug#116707) === modified file 'etc/tutorials/TUTORIAL.fr' --- etc/tutorials/TUTORIAL.fr 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL.fr 2014-03-10 14:05:54 +0000 @@ -365,11 +365,24 @@ >> Faites pour remettre le Newline que vous avez supprimé. +La touche est particulière : l'appuyer peut faire plus que +simplement insérer le caractère Newline. En fonction du texte autour, +des espaces pourront être insérées après le caractère Newline, de +façon à ce qu'en commençant à taper dans la ligne nouvelle créée, le +texte s'aligne avec celui de la ligne précédente. Nous appelons ce +comportement (où le fait d'appuyer sur une touche fait plus que de +simplement insérer le caractère correspondant) « électrique ». + +>> Voici un exemple de touche « électrique ». + Tapez à la fin de cette ligne. + +Vous devriez voir qu'après l'insertion du Newline, Emacs insère des espaces de façon à ce que le curseur se déplace sous le « T » de « Tapez ». + Rappelez-vous que la plupart des commandes Emacs peuvent utiliser un nombre de répétitions ; les caractères de texte font de même. La répétition d'un caractère de texte l'insère plusieurs fois. ->> Faites C-u 8 * pour insérer ********. +>> Essayez ça tout de suite -- tapez C-u 8 * pour insérer ********. Vous connaissez maintenant la méthode la plus simple pour taper du texte dans Emacs et pour corriger les erreurs. Vous pouvez également ------------------------------------------------------------ revno: 116717 committer: Michael Albinus branch nick: trunk timestamp: Mon 2014-03-10 14:36:39 +0100 message: * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): Do not add `nil' to the environment, when there's no remote `locale'. (tramp-find-inline-encoding): Check, that the remote host has installed perl, before sending scripts. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-10 05:33:31 +0000 +++ lisp/ChangeLog 2014-03-10 13:36:39 +0000 @@ -1,3 +1,10 @@ +2014-03-10 Michael Albinus + + * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Do not add `nil' to the environment, when there's no remote `locale'. + (tramp-find-inline-encoding): Check, that the remote host has + installed perl, before sending scripts. + 2014-03-10 Leo Liu * emacs-lisp/eldoc.el (eldoc-minibuffer-message): Clear === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2014-03-07 14:07:12 +0000 +++ lisp/net/tramp-sh.el 2014-03-10 13:36:39 +0000 @@ -3951,7 +3951,8 @@ ;; Set the environment. (tramp-message vec 5 "Setting default environment") - (let ((env (append `(,(tramp-get-remote-locale vec)) + (let ((env (append (when (tramp-get-remote-locale vec) ; Discard `(nil)'. + `(,(tramp-get-remote-locale vec))) (copy-sequence tramp-remote-process-environment))) unset item) (while env @@ -4090,6 +4091,10 @@ vec 5 "Checking remote test command `%s'" rem-test) (unless (tramp-send-command-and-check vec rem-test t) (throw 'wont-work-remote nil))) + ;; Check if remote perl exists when necessary. + (when (and (not (stringp rem-enc)) + (not (tramp-get-remote-perl vec))) + (throw 'wont-work-remote nil)) ;; Check if remote encoding and decoding commands can be ;; called remotely with null input and output. This makes ;; sure there are no syntax errors and the command is really @@ -5314,5 +5319,7 @@ ;; rsync. ;; * Try telnet+curl as new method. It might be useful for busybox, ;; without built-in uuencode/uudecode. +;; * Try telnet+nc as new method. It might be useful for busybox, +;; without built-in uuencode/uudecode. ;;; tramp-sh.el ends here ------------------------------------------------------------ revno: 116716 committer: martin rudalics branch nick: trunk timestamp: Mon 2014-03-10 11:31:13 +0100 message: Unconditionally set visibility to 1 when restoring frame size (Bug#16967). * w32term.c (w32_read_socket): In SIZE_RESTORED case unconditionally set visibility of frame to 1. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-03-09 11:36:51 +0000 +++ src/ChangeLog 2014-03-10 10:31:13 +0000 @@ -1,3 +1,8 @@ +2014-03-10 Martin Rudalics + + * w32term.c (w32_read_socket): In SIZE_RESTORED case + unconditionally set visibility of frame to 1. + 2014-03-09 Martin Rudalics * xdisp.c (Fwindow_text_pixel_size): Adjust doc-string. === modified file 'src/w32term.c' --- src/w32term.c 2014-02-04 07:36:58 +0000 +++ src/w32term.c 2014-03-10 10:31:13 +0000 @@ -4684,8 +4684,7 @@ { bool iconified = FRAME_ICONIFIED_P (f); - if (iconified) - SET_FRAME_VISIBLE (f, 1); + SET_FRAME_VISIBLE (f, 1); SET_FRAME_ICONIFIED (f, 0); /* wait_reading_process_output will notice this ------------------------------------------------------------ revno: 116715 fixes bug: http://debbugs.gnu.org/16920 committer: Leo Liu branch nick: trunk timestamp: Mon 2014-03-10 13:33:31 +0800 message: * emacs-lisp/eldoc.el (eldoc-minibuffer-message): Clear eldoc-last-message. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-10 02:18:29 +0000 +++ lisp/ChangeLog 2014-03-10 05:33:31 +0000 @@ -1,3 +1,8 @@ +2014-03-10 Leo Liu + + * emacs-lisp/eldoc.el (eldoc-minibuffer-message): Clear + eldoc-last-message. (Bug#16920) + 2014-03-10 Stefan Monnier * desktop.el (desktop-create-buffer): Don't run activate-mark-hook === modified file 'lisp/emacs-lisp/eldoc.el' --- lisp/emacs-lisp/eldoc.el 2014-01-30 07:54:28 +0000 +++ lisp/emacs-lisp/eldoc.el 2014-03-10 05:33:31 +0000 @@ -219,7 +219,9 @@ (if (minibufferp) (progn (add-hook 'minibuffer-exit-hook - (lambda () (setq eldoc-mode-line-string nil)) + (lambda () (setq eldoc-mode-line-string nil + ;; http://debbugs.gnu.org/16920 + eldoc-last-message nil)) nil t) (with-current-buffer (window-buffer