mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 03:40:56 -08:00
Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca
This commit is contained in:
commit
5c9cf0a3f9
17 changed files with 161 additions and 57 deletions
|
|
@ -1,3 +1,7 @@
|
|||
2012-11-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* make-dist (nt): Adjust to changes in names of the *.manifest files.
|
||||
|
||||
2012-11-24 Ken Brown <kbrown@cornell.edu>
|
||||
|
||||
* configure.ac (HAVE_MOUSE): Remove.
|
||||
|
|
|
|||
|
|
@ -57,8 +57,7 @@ For each step, check for possible errors.
|
|||
M-x ediff. Especially check that Info files aren't built.
|
||||
|
||||
10. cd EMACS_ROOT_DIR; bzr tag TAG
|
||||
TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a
|
||||
release.
|
||||
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
|
||||
Shortly before the release, cut the version branch also, and open
|
||||
a Savannah support request asking for commits to the new branch to
|
||||
|
|
|
|||
|
|
@ -1,3 +1,56 @@
|
|||
2012-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* textmodes/table.el (table-insert): Don't use `symbol-name' on
|
||||
lexically scoped variables (bug#13005).
|
||||
|
||||
2012-11-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* vc/vc-hooks.el (vc-mistrust-permissions):
|
||||
Default to t, to avoid data-loss. (Bug#11490)
|
||||
|
||||
2012-11-27 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* progmodes/python.el (python-indent-guess-indent-offset):
|
||||
If indentation is guessed make python-indent-offset buffer-local.
|
||||
|
||||
Fix Imenu regression.
|
||||
* progmodes/python.el (python-nav-beginning-of-defun):
|
||||
Fix forward movement when statement(s) separates point from defun.
|
||||
(python-imenu-prev-index-position): New function.
|
||||
|
||||
2012-11-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* subr.el (buffer-file-type): Declare with defvar-local. Doc fix.
|
||||
|
||||
* dos-w32.el (find-file-not-found-set-buffer-file-coding-system):
|
||||
Don't set buffer-file-type. Return nil. (Bug#12989)
|
||||
|
||||
2012-11-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* hippie-exp.el (hippie-expand-try-functions-list):
|
||||
Re-autoload it. (Bug#12982)
|
||||
|
||||
2012-11-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* descr-text.el (describe-char-padded-string):
|
||||
Call internal-char-font only on GUI frames. (Bug#11964)
|
||||
|
||||
2012-11-27 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* buff-menu.el (Buffer-menu-buffer+size-width): Fix customize type
|
||||
and obsoletion message.
|
||||
|
||||
2012-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/cl-macs.el (cl--transform-lambda): Add back `declare' in
|
||||
the constructs to keep outside of the `cl-block' (bug#12977).
|
||||
|
||||
2012-11-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* mouse.el (mouse-drag-line): Even if the line is not draggable,
|
||||
keep reading until we get the up-event anyway, in order to process
|
||||
the up-event for mouse-1-click-follows-link (Bug#12971).
|
||||
|
||||
2012-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/advice.el (ad-should-compile): Don't compile advice if the
|
||||
|
|
|
|||
|
|
@ -55,12 +55,12 @@ If nil, use `Buffer-menu-name-width' and `Buffer-menu-size-width'.
|
|||
If non-nil, the value of `Buffer-menu-name-width' is overridden;
|
||||
the name column is assigned width `Buffer-menu-buffer+size-width'
|
||||
minus `Buffer-menu-size-width'. This use is deprecated."
|
||||
:type 'number
|
||||
:type '(choice (const nil) number)
|
||||
:group 'Buffer-menu
|
||||
:version "24.3")
|
||||
|
||||
(make-obsolete-variable 'Buffer-menu-buffer+size-width
|
||||
"`Buffer-menu-name-width' and `Buffer-menu-size-width'"
|
||||
"use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead."
|
||||
"24.3")
|
||||
|
||||
(defcustom Buffer-menu-name-width 19
|
||||
|
|
|
|||
|
|
@ -354,7 +354,8 @@ This function is semi-obsolete. Use `get-char-code-property'."
|
|||
;; Return a string of CH with composition for padding on both sides.
|
||||
;; It is displayed without overlapping with the left/right columns.
|
||||
(defsubst describe-char-padded-string (ch)
|
||||
(if (internal-char-font nil ch)
|
||||
(if (and (display-multi-font-p)
|
||||
(internal-char-font nil ch))
|
||||
(compose-string (string ch) 0 1 (format "\t%c\t" ch))
|
||||
(string ch)))
|
||||
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ set to the appropriate coding system, and the value of
|
|||
(untranslated-file-p (buffer-file-name))))
|
||||
(setq coding (coding-system-change-eol-conversion coding 0))
|
||||
(setq buffer-file-coding-system coding))
|
||||
(setq buffer-file-type (eq buffer-file-coding-system 'no-conversion)))))
|
||||
nil)))
|
||||
|
||||
;;; To set the default coding system on new files.
|
||||
(add-hook 'find-file-not-found-functions
|
||||
|
|
|
|||
|
|
@ -216,12 +216,17 @@ The name is made by appending a number to PREFIX, default \"G\"."
|
|||
(defvar cl--bind-inits) (defvar cl--bind-lets) (defvar cl--bind-forms)
|
||||
|
||||
(defun cl--transform-lambda (form bind-block)
|
||||
"Transform a function form FORM of name BIND-BLOCK.
|
||||
BIND-BLOCK is the name of the symbol to which the function will be bound,
|
||||
and which will be used for the name of the `cl-block' surrounding the
|
||||
function's body.
|
||||
FORM is of the form (ARGS . BODY)."
|
||||
(let* ((args (car form)) (body (cdr form)) (orig-args args)
|
||||
(cl--bind-block bind-block) (cl--bind-defs nil) (cl--bind-enquote nil)
|
||||
(cl--bind-inits nil) (cl--bind-lets nil) (cl--bind-forms nil)
|
||||
(header nil) (simple-args nil))
|
||||
(while (or (stringp (car body))
|
||||
(memq (car-safe (car body)) '(interactive cl-declare)))
|
||||
(memq (car-safe (car body)) '(interactive declare cl-declare)))
|
||||
(push (pop body) header))
|
||||
(setq args (if (listp args) (cl-copy-list args) (list '&rest args)))
|
||||
(let ((p (last args))) (if (cdr p) (setcdr p (list '&rest (cdr p)))))
|
||||
|
|
|
|||
|
|
@ -199,6 +199,8 @@
|
|||
|
||||
(defvar he-search-window ())
|
||||
|
||||
;;; Autoloaded for historical reasons (bug#12982)
|
||||
;;;###autoload
|
||||
(defcustom hippie-expand-try-functions-list
|
||||
'(try-complete-file-name-partially
|
||||
try-complete-file-name
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ must be one of the symbols `header', `mode', or `vertical'."
|
|||
(frame-parameters frame)))
|
||||
'right)))
|
||||
(draggable t)
|
||||
event position growth dragged)
|
||||
finished event position growth dragged)
|
||||
(cond
|
||||
((eq line 'header)
|
||||
;; Check whether header-line can be dragged at all.
|
||||
|
|
@ -457,7 +457,7 @@ must be one of the symbols `header', `mode', or `vertical'."
|
|||
;; Start tracking.
|
||||
(track-mouse
|
||||
;; Loop reading events and sampling the position of the mouse.
|
||||
(while draggable
|
||||
(while (not finished)
|
||||
(setq event (read-event))
|
||||
(setq position (mouse-position))
|
||||
;; Do nothing if
|
||||
|
|
@ -472,7 +472,7 @@ must be one of the symbols `header', `mode', or `vertical'."
|
|||
;; - there is a keyboard event or some other unknown event.
|
||||
(cond
|
||||
((not (consp event))
|
||||
(setq draggable nil))
|
||||
(setq finished t))
|
||||
((memq (car event) '(switch-frame select-window))
|
||||
nil)
|
||||
((not (memq (car event) '(mouse-movement scroll-bar-movement)))
|
||||
|
|
@ -480,15 +480,15 @@ must be one of the symbols `header', `mode', or `vertical'."
|
|||
;; Do not unread a drag-mouse-1 event to avoid selecting
|
||||
;; some other window. For vertical line dragging do not
|
||||
;; unread mouse-1 events either (but only if we dragged at
|
||||
;; least once to allow mouse-1 clicks get through.
|
||||
;; least once to allow mouse-1 clicks get through).
|
||||
(unless (and dragged
|
||||
(if (eq line 'vertical)
|
||||
(memq (car event) '(drag-mouse-1 mouse-1))
|
||||
(eq (car event) 'drag-mouse-1)))
|
||||
(push event unread-command-events)))
|
||||
(setq draggable nil))
|
||||
((or (not (eq (car position) frame))
|
||||
(null (car (cdr position))))
|
||||
(setq finished t))
|
||||
((not (and (eq (car position) frame)
|
||||
(cadr position)))
|
||||
nil)
|
||||
((eq line 'vertical)
|
||||
;; Drag vertical divider.
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
;; Implements Syntax highlighting, Indentation, Movement, Shell
|
||||
;; interaction, Shell completion, Shell virtualenv support, Pdb
|
||||
;; tracking, Symbol completion, Skeletons, FFAP, Code Check, Eldoc,
|
||||
;; imenu.
|
||||
;; Imenu.
|
||||
|
||||
;; Syntax highlighting: Fontification of code is provided and supports
|
||||
;; python's triple quoted strings properly.
|
||||
|
|
@ -169,10 +169,12 @@
|
|||
;; might guessed you should run `python-shell-send-buffer' from time
|
||||
;; to time to get better results too.
|
||||
|
||||
;; imenu: This mode supports imenu in its most basic form, letting it
|
||||
;; Imenu: This mode supports Imenu in its most basic form, letting it
|
||||
;; build the necessary alist via `imenu-default-create-index-function'
|
||||
;; by having set `imenu-extract-index-name-function' to
|
||||
;; `python-info-current-defun'.
|
||||
;; `python-info-current-defun' and
|
||||
;; `imenu-prev-index-position-function' to
|
||||
;; `python-imenu-prev-index-position'.
|
||||
|
||||
;; If you used python-mode.el you probably will miss auto-indentation
|
||||
;; when inserting newlines. To achieve the same behavior you have
|
||||
|
|
@ -656,7 +658,7 @@ These make `python-indent-calculate-indentation' subtract the value of
|
|||
(python-util-forward-comment)
|
||||
(current-indentation))))
|
||||
(if indentation
|
||||
(setq python-indent-offset indentation)
|
||||
(set (make-local-variable 'python-indent-offset) indentation)
|
||||
(message "Can't guess python-indent-offset, using defaults: %s"
|
||||
python-indent-offset)))))))
|
||||
|
||||
|
|
@ -1098,12 +1100,12 @@ With positive ARG search backwards, else search forwards."
|
|||
(beg-indentation
|
||||
(and (> arg 0)
|
||||
(save-excursion
|
||||
(and (python-info-current-line-empty-p)
|
||||
(python-util-forward-comment -1))
|
||||
(python-nav-beginning-of-statement)
|
||||
(if (python-info-looking-at-beginning-of-defun)
|
||||
(+ (current-indentation) python-indent-offset)
|
||||
(current-indentation)))))
|
||||
(while (and
|
||||
(not (python-info-looking-at-beginning-of-defun))
|
||||
(python-nav-backward-block)))
|
||||
(or (and (python-info-looking-at-beginning-of-defun)
|
||||
(+ (current-indentation) python-indent-offset))
|
||||
0))))
|
||||
(found
|
||||
(progn
|
||||
(when (and (< arg 0)
|
||||
|
|
@ -2880,6 +2882,19 @@ Interactively, prompt for symbol."
|
|||
(add-to-list 'debug-ignored-errors
|
||||
"^Eldoc needs an inferior Python process running.")
|
||||
|
||||
|
||||
;;; Imenu
|
||||
|
||||
(defun python-imenu-prev-index-position ()
|
||||
"Python mode's `imenu-prev-index-position-function'."
|
||||
(let ((found))
|
||||
(while (and (setq found
|
||||
(re-search-backward python-nav-beginning-of-defun-regexp nil t))
|
||||
(not (python-info-looking-at-beginning-of-defun))))
|
||||
(and found
|
||||
(python-info-looking-at-beginning-of-defun)
|
||||
(python-info-current-defun))))
|
||||
|
||||
|
||||
;;; Misc helpers
|
||||
|
||||
|
|
@ -3225,6 +3240,9 @@ if that value is non-nil."
|
|||
(set (make-local-variable 'imenu-extract-index-name-function)
|
||||
#'python-info-current-defun)
|
||||
|
||||
(set (make-local-variable 'imenu-prev-index-position-function)
|
||||
#'python-imenu-prev-index-position)
|
||||
|
||||
(set (make-local-variable 'add-log-current-defun-function)
|
||||
#'python-info-current-defun)
|
||||
|
||||
|
|
|
|||
11
lisp/subr.el
11
lisp/subr.el
|
|
@ -2622,13 +2622,14 @@ When the hook runs, the temporary buffer is current.
|
|||
This hook is normally set up with a function to put the buffer in Help
|
||||
mode.")
|
||||
|
||||
;; Avoid compiler warnings about this variable,
|
||||
;; which has a special meaning on certain system types.
|
||||
(defvar buffer-file-type nil
|
||||
(defvar-local buffer-file-type nil
|
||||
"Non-nil if the visited file is a binary file.
|
||||
This variable is meaningful on MS-DOG and Windows NT.
|
||||
This variable is meaningful on MS-DOG and MS-Windows.
|
||||
On those systems, it is automatically local in every buffer.
|
||||
On other systems, this variable is normally always nil.")
|
||||
On other systems, this variable is normally always nil.
|
||||
|
||||
WARNING: This variable is obsolete and will disapper Real Soon Now.
|
||||
Don't use it!")
|
||||
|
||||
;; The `assert' macro from the cl package signals
|
||||
;; `cl-assertion-failed' at runtime so always define it.
|
||||
|
|
|
|||
|
|
@ -1570,8 +1570,7 @@ results.
|
|||
|
||||
Inside a table cell has a special keymap.
|
||||
|
||||
\\{table-cell-map}
|
||||
"
|
||||
\\{table-cell-map}"
|
||||
(interactive
|
||||
(progn
|
||||
(barf-if-buffer-read-only)
|
||||
|
|
@ -1583,41 +1582,47 @@ Inside a table cell has a special keymap.
|
|||
("Cell width(s)" . table-cell-width-history)
|
||||
("Cell height(s)" . table-cell-height-history)))))
|
||||
(table--make-cell-map)
|
||||
;; reform the arguments.
|
||||
;; Reform the arguments.
|
||||
(if (null cell-width) (setq cell-width (car table-cell-width-history)))
|
||||
(if (null cell-height) (setq cell-height (car table-cell-height-history)))
|
||||
(if (stringp columns) (setq columns (string-to-number columns)))
|
||||
(if (stringp rows) (setq rows (string-to-number rows)))
|
||||
(if (stringp cell-width) (setq cell-width (table--string-to-number-list cell-width)))
|
||||
(if (stringp cell-height) (setq cell-height (table--string-to-number-list cell-height)))
|
||||
(if (stringp cell-width)
|
||||
(setq cell-width (table--string-to-number-list cell-width)))
|
||||
(if (stringp cell-height)
|
||||
(setq cell-height (table--string-to-number-list cell-height)))
|
||||
(if (numberp cell-width) (setq cell-width (cons cell-width nil)))
|
||||
(if (numberp cell-height) (setq cell-height (cons cell-height nil)))
|
||||
;; test validity of the arguments.
|
||||
(mapc (lambda (arg)
|
||||
(let* ((value (symbol-value arg))
|
||||
;; Test validity of the arguments.
|
||||
(dolist (arg `((columns . ,columns)
|
||||
(rows . ,rows)
|
||||
(cell-width . ,cell-width)
|
||||
(cell-height . ,cell-height)))
|
||||
(let* ((value (cdr arg))
|
||||
(error-handler
|
||||
(function (lambda ()
|
||||
(error "%s must be a positive integer%s" arg
|
||||
(if (listp value) " or a list of positive integers" ""))))))
|
||||
(lambda ()
|
||||
(error "%s must be a positive integer%s" (car arg)
|
||||
(if (listp value)
|
||||
" or a list of positive integers" "")))))
|
||||
(if (null value) (funcall error-handler))
|
||||
(mapcar (function (lambda (arg1)
|
||||
(dolist (arg1 (if (listp value) value
|
||||
(cons value nil)))
|
||||
(if (or (not (integerp arg1))
|
||||
(< arg1 1))
|
||||
(funcall error-handler))))
|
||||
(if (listp value) value
|
||||
(cons value nil)))))
|
||||
'(columns rows cell-width cell-height))
|
||||
(funcall error-handler)))))
|
||||
(let ((orig-coord (table--get-coordinate))
|
||||
(coord (table--get-coordinate))
|
||||
r i cw ch cell-str border-str)
|
||||
;; prefabricate the building blocks border-str and cell-str.
|
||||
;; Prefabricate the building blocks border-str and cell-str.
|
||||
(with-temp-buffer
|
||||
;; construct border-str
|
||||
;; Construct border-str.
|
||||
(insert table-cell-intersection-char)
|
||||
(setq cw cell-width)
|
||||
(setq i 0)
|
||||
(while (< i columns)
|
||||
(insert (make-string (car cw) (string-to-char table-cell-horizontal-chars)) table-cell-intersection-char)
|
||||
(insert (make-string (car cw)
|
||||
(string-to-char table-cell-horizontal-chars))
|
||||
table-cell-intersection-char)
|
||||
(if (cdr cw) (setq cw (cdr cw)))
|
||||
(setq i (1+ i)))
|
||||
(setq border-str (buffer-substring (point-min) (point-max)))
|
||||
|
|
|
|||
|
|
@ -107,10 +107,12 @@ control systems."
|
|||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-mistrust-permissions nil
|
||||
;; If you fix bug#11490, probably you can set this back to nil.
|
||||
(defcustom vc-mistrust-permissions t
|
||||
"If non-nil, don't assume permissions/ownership track version-control status.
|
||||
If nil, do rely on the permissions.
|
||||
See also variable `vc-consult-headers'."
|
||||
:version "24.3" ; nil->t, bug#11490
|
||||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
|
|
|
|||
|
|
@ -381,9 +381,9 @@ echo "Making links to \`m4'"
|
|||
|
||||
echo "Making links to \`nt'"
|
||||
(cd nt
|
||||
ln emacs.manifest emacs.rc emacsclient.rc config.nt ../${tempdir}/nt
|
||||
ln emacs-src.tags nmake.defs gmake.defs subdirs.el ../${tempdir}/nt
|
||||
ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
|
||||
ln emacs-x86.manifest emacs-x64.manifest emacs.rc ../${tempdir}/nt
|
||||
ln config.nt emacsclient.rc emacs-src.tags ../${tempdir}/nt
|
||||
ln nmake.defs gmake.defs subdirs.el [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
|
||||
ln ChangeLog INSTALL README README.W32 makefile.w32-in ../${tempdir}/nt)
|
||||
|
||||
echo "Making links to \`nt/inc' and its subdirectories"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,13 @@
|
|||
2012-11-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* fontset.c (Finternal_char_font): Return nil on non-GUI frames.
|
||||
(Bug#11964)
|
||||
|
||||
* xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
|
||||
highlighting on the frame was cleared. Prevents assertion
|
||||
violations when repeatedly clicking on the "Top" link of the
|
||||
"bread-crumbs" in Info buffers.
|
||||
|
||||
2012-11-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* sysdep.c (sys_subshell): Don't assume pid_t fits in int.
|
||||
|
|
|
|||
|
|
@ -1876,6 +1876,8 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0,
|
|||
}
|
||||
if (! CHAR_VALID_P (c))
|
||||
return Qnil;
|
||||
if (!FRAME_WINDOW_P (f))
|
||||
return Qnil;
|
||||
face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil);
|
||||
face = FACE_FROM_ID (f, face_id);
|
||||
if (face->font)
|
||||
|
|
|
|||
|
|
@ -23506,7 +23506,9 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
|
|||
|
||||
/* If mouse highlighting is on, we may need to draw adjacent
|
||||
glyphs using mouse-face highlighting. */
|
||||
if (area == TEXT_AREA && row->mouse_face_p)
|
||||
if (area == TEXT_AREA && row->mouse_face_p
|
||||
&& hlinfo->mouse_face_beg_row >= 0
|
||||
&& hlinfo->mouse_face_end_row >= 0)
|
||||
{
|
||||
struct glyph_row *mouse_beg_row, *mouse_end_row;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue