------------------------------------------------------------ revno: 115382 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-12-04 17:10:46 -0500 message: * src/lisp.h (FOR_EACH_TAIL): New macro. * src/fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 21:08:21 +0000 +++ src/ChangeLog 2013-12-04 22:10:46 +0000 @@ -1,5 +1,8 @@ 2013-12-04 Stefan Monnier + * lisp.h (FOR_EACH_TAIL): New macro. + * fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT. + * window.c (select_window): Call second wset_redisplay before we change selected_window (bug#16034). === modified file 'src/fns.c' --- src/fns.c 2013-11-29 19:47:58 +0000 +++ src/fns.c 2013-12-04 22:10:46 +0000 @@ -1537,15 +1537,12 @@ the value of a list `foo'. */) (register Lisp_Object elt, Lisp_Object list) { - register Lisp_Object tail, prev; - register Lisp_Object tem; + Lisp_Object tail, tortoise, prev = Qnil; + bool skip; - tail = list; - prev = Qnil; - while (CONSP (tail)) + FOR_EACH_TAIL (tail, list, tortoise, skip) { - CHECK_LIST_CONS (tail, list); - tem = XCAR (tail); + Lisp_Object tem = XCAR (tail); if (EQ (elt, tem)) { if (NILP (prev)) @@ -1555,8 +1552,6 @@ } else prev = tail; - tail = XCDR (tail); - QUIT; } return list; } === modified file 'src/lisp.h' --- src/lisp.h 2013-11-30 09:25:31 +0000 +++ src/lisp.h 2013-12-04 22:10:46 +0000 @@ -4443,6 +4443,20 @@ memory_full (SIZE_MAX); \ } while (0) +/* Loop over all tails of a list, checking for cycles. + FIXME: Make tortoise and n internal declarations. + FIXME: Unroll the loop body so we don't need `n'. */ +#define FOR_EACH_TAIL(hare, list, tortoise, n) \ + for (tortoise = hare = (list), n = true; \ + CONSP (hare); \ + (hare = XCDR (hare), n = !n, \ + (n \ + ? ((EQ (hare, tortoise) \ + && (xsignal1 (Qcircular_list, (list)), 0))) \ + /* Move tortoise before the next iteration, in case */ \ + /* the next iteration does an Fsetcdr. */ \ + : (tortoise = XCDR (tortoise), 0)))) + /* Do a `for' loop over alist values. */ #define FOR_EACH_ALIST_VALUE(head_var, list_var, value_var) \ ------------------------------------------------------------ revno: 115381 committer: Ted Zlatanov branch nick: quickfixes timestamp: Wed 2013-12-04 16:32:05 -0500 message: Trim whitespace in lm-keywords-list * emacs-lisp/lisp-mnt.el (lm-keywords-list): Trim whitespace around keywords with extra `split-string' argument. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-04 14:22:50 +0000 +++ lisp/ChangeLog 2013-12-04 21:32:05 +0000 @@ -1,3 +1,8 @@ +2013-12-04 Teodor Zlatanov + + * emacs-lisp/lisp-mnt.el (lm-keywords-list): Trim whitespace + around keywords with extra `split-string' argument. + 2013-12-04 Martin Rudalics * windmove.el (windmove-other-window-loc): Handle navigation === modified file 'lisp/emacs-lisp/lisp-mnt.el' --- lisp/emacs-lisp/lisp-mnt.el 2013-01-02 16:13:04 +0000 +++ lisp/emacs-lisp/lisp-mnt.el 2013-12-04 21:32:05 +0000 @@ -461,8 +461,8 @@ (let ((keywords (lm-keywords file))) (if keywords (if (string-match-p "," keywords) - (split-string keywords ",[ \t\n]*" t) - (split-string keywords "[ \t\n]+" t))))) + (split-string keywords ",[ \t\n]*" t "[ ]+") + (split-string keywords "[ \t\n]+" t "[ ]+"))))) (defvar finder-known-keywords) (defun lm-keywords-finder-p (&optional file) ------------------------------------------------------------ revno: 115380 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16034 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-12-04 16:08:21 -0500 message: * src/window.c (select_window): Call second wset_redisplay before we change selected_window. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 19:19:45 +0000 +++ src/ChangeLog 2013-12-04 21:08:21 +0000 @@ -1,3 +1,8 @@ +2013-12-04 Stefan Monnier + + * window.c (select_window): Call second wset_redisplay before we change + selected_window (bug#16034). + 2013-12-04 Paul Eggert * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used. === modified file 'src/window.c' --- src/window.c 2013-12-04 18:46:47 +0000 +++ src/window.c 2013-12-04 21:08:21 +0000 @@ -487,11 +487,14 @@ goto record_and_return; if (NILP (norecord)) - /* Mark the window for redisplay since the selected-window has a different - mode-line. */ - wset_redisplay (XWINDOW (selected_window)); + { /* Mark the window for redisplay since the selected-window has + a different mode-line. */ + wset_redisplay (XWINDOW (selected_window)); + wset_redisplay (w); + } else redisplay_other_windows (); + sf = SELECTED_FRAME (); if (XFRAME (WINDOW_FRAME (w)) != sf) { @@ -510,8 +513,6 @@ select_window_1 (window, inhibit_point_swap); bset_last_selected_window (XBUFFER (w->contents), window); - if (NILP (norecord)) - wset_redisplay (w); record_and_return: /* record_buffer can run QUIT, so make sure it is run only after we have ------------------------------------------------------------ revno: 115379 committer: Paul Eggert branch nick: trunk timestamp: Wed 2013-12-04 11:19:45 -0800 message: * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 19:05:16 +0000 +++ src/ChangeLog 2013-12-04 19:19:45 +0000 @@ -1,3 +1,7 @@ +2013-12-04 Paul Eggert + + * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used. + 2013-12-04 Eli Zaretskii * w32xfns.c: Include window.h, to avoid a compiler warning. === modified file 'src/bidi.c' --- src/bidi.c 2013-12-04 16:58:05 +0000 +++ src/bidi.c 2013-12-04 19:19:45 +0000 @@ -67,9 +67,7 @@ static Lisp_Object bidi_type_table, bidi_mirror_table; -#define LRM_CHAR 0x200E -#define RLM_CHAR 0x200F -#define BIDI_EOB -1 +#define BIDI_EOB (-1) /* Data type for describing the bidirectional character categories. */ typedef enum { ------------------------------------------------------------ revno: 115378 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-12-04 21:05:16 +0200 message: Avoid compiler warning in w32xfns.c. src/w32xfns.c: Include window.h, to avoid a compiler warning. diff: === modified file 'lisp/progmodes/grep.el' --- lisp/progmodes/grep.el 2013-05-24 20:54:38 +0000 +++ lisp/progmodes/grep.el 2013-12-04 19:05:16 +0000 @@ -1005,7 +1005,9 @@ (mapconcat #'shell-quote-argument (split-string files) - (concat "\\\n" " -o " find-name-arg " ")) + (concat + (if (file-remote-p dir) "\\\n") + " -o " find-name-arg " ")) " " (shell-quote-argument ")")) dir @@ -1026,7 +1028,9 @@ (concat "*/" (cdr ignore))))))) grep-find-ignored-directories - "\\\n -o -path ") + (if (file-remote-p dir) + "\\\n -o -path " + " -o -path ")) " " (shell-quote-argument ")") " -prune -o ")) @@ -1044,7 +1048,9 @@ (shell-quote-argument (cdr ignore)))))) grep-find-ignored-files - "\\\n -o -name ") + (if (file-remote-p dir) + "\\\n -o -name " + " -o -name ")) " " (shell-quote-argument ")") " -prune -o ")))))) === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 18:46:47 +0000 +++ src/ChangeLog 2013-12-04 19:05:16 +0000 @@ -1,3 +1,7 @@ +2013-12-04 Eli Zaretskii + + * w32xfns.c: Include window.h, to avoid a compiler warning. + 2013-12-04 Stefan Monnier * window.c (window_scroll): Mark window for redisplay (bug#16034). === modified file 'src/w32xfns.c' --- src/w32xfns.c 2013-09-13 15:03:51 +0000 +++ src/w32xfns.c 2013-12-04 19:05:16 +0000 @@ -24,6 +24,7 @@ #include "lisp.h" #include "keyboard.h" #include "frame.h" +#include "window.h" #include "charset.h" #include "fontset.h" #include "blockinput.h" ------------------------------------------------------------ revno: 115377 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16034 committer: Stefan Monnier branch nick: trunk timestamp: Wed 2013-12-04 13:46:47 -0500 message: * src/window.c (window_scroll): Mark window for redisplay. (scroll_command, Fscroll_other_window): Don't cause redisplay now that window_scroll takes care of it. (Fset_window_point, Fdelete_other_windows_internal) (set_window_buffer, Fwindow_resize_apply, resize_frame_windows) (Fsplit_window_internal, Fdelete_window_internal) (Fresize_mini_window_internal, Fset_window_configuration) (apply_window_adjustment): Use fset_redisplay and wset_redisplay to cause redisplay instead of forcing a complete redisplay. * src/xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if we're only affecting the selected_window. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 16:58:05 +0000 +++ src/ChangeLog 2013-12-04 18:46:47 +0000 @@ -1,3 +1,17 @@ +2013-12-04 Stefan Monnier + + * window.c (window_scroll): Mark window for redisplay (bug#16034). + (scroll_command, Fscroll_other_window): Don't cause redisplay now that + window_scroll takes care of it. + (Fset_window_point, Fdelete_other_windows_internal) + (set_window_buffer, Fwindow_resize_apply, resize_frame_windows) + (Fsplit_window_internal, Fdelete_window_internal) + (Fresize_mini_window_internal, Fset_window_configuration) + (apply_window_adjustment): Use fset_redisplay and wset_redisplay to + cause redisplay instead of forcing a complete redisplay. + * xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if + we're only affecting the selected_window. + 2013-12-04 Eli Zaretskii * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate === modified file 'src/window.c' --- src/window.c 2013-12-03 21:37:41 +0000 +++ src/window.c 2013-12-04 18:46:47 +0000 @@ -1683,7 +1683,7 @@ set_marker_restricted (w->pointm, pos, w->contents); /* We have to make sure that redisplay updates the window to show the new value of point. */ - windows_or_buffers_changed = 25; + wset_redisplay (w); } return pos; @@ -1706,8 +1706,7 @@ w->update_mode_line = 1; /* Bug#15957. */ w->window_end_valid = 0; - if (w != XWINDOW (selected_window)) - wset_redisplay (w); + wset_redisplay (w); return pos; } @@ -2979,7 +2978,7 @@ } free_window_matrices (r); - windows_or_buffers_changed = 27; + fset_redisplay (f); Vwindow_list = Qnil; FRAME_WINDOW_SIZES_CHANGED (f) = 1; resize_failed = 0; @@ -3364,7 +3363,7 @@ } /* Maybe we could move this into the `if' but it's not obviously safe and I doubt it's worth the trouble. */ - windows_or_buffers_changed = 28; + wset_redisplay (w); /* We must select BUFFER for running the window-scroll-functions. */ /* We can't check ! NILP (Vwindow_scroll_functions) here @@ -3970,7 +3969,7 @@ block_input (); window_resize_apply (r, horflag); - windows_or_buffers_changed = 30; + fset_redisplay (f); FRAME_WINDOW_SIZES_CHANGED (f) = 1; adjust_frame_glyphs (f); @@ -4148,7 +4147,7 @@ } } - windows_or_buffers_changed = 31; + fset_redisplay (f); } @@ -4250,7 +4249,7 @@ error ("Sum of sizes of old and new window don't fit"); } - /* This is our point of no return. */ + /* This is our point of no return. */ if (combination_limit) { /* Save the old value of o->normal_cols/lines. It gets corrupted @@ -4275,7 +4274,7 @@ else p = XWINDOW (o->parent); - windows_or_buffers_changed = 32; + fset_redisplay (f); FRAME_WINDOW_SIZES_CHANGED (f) = 1; new = make_window (); n = XWINDOW (new); @@ -4439,7 +4438,7 @@ hlinfo->mouse_face_window = Qnil; } - windows_or_buffers_changed = 33; + fset_redisplay (f); Vwindow_list = Qnil; FRAME_WINDOW_SIZES_CHANGED (f) = 1; @@ -4662,7 +4661,7 @@ w->pixel_height = XFASTINT (w->new_pixel); w->pixel_top = r->pixel_top + r->pixel_height; - windows_or_buffers_changed = 36; + fset_redisplay (f); FRAME_WINDOW_SIZES_CHANGED (f) = 1; adjust_frame_glyphs (f); unblock_input (); @@ -4732,6 +4731,8 @@ immediate_quit = 1; n = clip_to_bounds (INT_MIN, n, INT_MAX); + wset_redisplay (XWINDOW (window)); + /* If we must, use the pixel-based version which is much slower than the line-based one but can handle varying line heights. */ if (FRAME_WINDOW_P (XFRAME (XWINDOW (window)->frame))) @@ -5283,9 +5284,6 @@ { record_unwind_protect (save_excursion_restore, save_excursion_save ()); Fset_buffer (XWINDOW (selected_window)->contents); - - /* Make redisplay consider other windows than just selected_window. */ - windows_or_buffers_changed = 37; } if (NILP (n)) @@ -5395,7 +5393,6 @@ /* Don't screw up if window_scroll gets an error. */ record_unwind_protect (save_excursion_restore, save_excursion_save ()); - windows_or_buffers_changed = 38; Fset_buffer (w->contents); SET_PT_BOTH (marker_position (w->pointm), marker_byte_position (w->pointm)); @@ -6052,7 +6049,7 @@ BUF_PT_BYTE (XBUFFER (w->contents))); } - windows_or_buffers_changed = 39; + fset_redisplay (f); FRAME_WINDOW_SIZES_CHANGED (f) = 1; /* Problem: Freeing all matrices and later allocating them again @@ -6597,7 +6594,7 @@ adjust_window_margins (w); clear_glyph_matrix (w->current_matrix); w->window_end_valid = 0; - windows_or_buffers_changed = 40; + wset_redisplay (w); adjust_frame_glyphs (XFRAME (WINDOW_FRAME (w))); } === modified file 'src/xdisp.c' --- src/xdisp.c 2013-12-03 02:27:10 +0000 +++ src/xdisp.c 2013-12-04 18:46:47 +0000 @@ -620,7 +620,9 @@ void wset_redisplay (struct window *w) { - redisplay_other_windows (); + /* Beware: selected_window can be nil during early stages. */ + if (!EQ (make_lisp_ptr (w, Lisp_Vectorlike), selected_window)) + redisplay_other_windows (); w->redisplay = true; } ------------------------------------------------------------ revno: 115376 fixes bug: http://debbugs.gnu.org/16043 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-12-04 18:58:05 +0200 message: Fix bug #16043 with crashes when displaying new bidi control characters. src/bidi.c (bidi_get_type, bidi_get_category): Handle the isolate directional control characters. Update type and category determination according to the UBA from Unicode v6.3. (bidi_category_t): New category EXPLICIT_FORMATTING. src/dispextern.h (bidi_type_t): Update to include new bidirectional properties introduced with Unicode v6.3. admin/unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class to include the new isolate-related classes introduced with Unicode v6.3. (unidata-encode-val): Accept an additional optional argument, a warning message to emit when UnicodeData.txt defines bidi-class values that are not in unidata-prop-alist. Add a comment explaining what should maintainers do if/when such a warning ever appears. (unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil when generating uni-bidi.el. diff: === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-12-01 01:37:23 +0000 +++ admin/ChangeLog 2013-12-04 16:58:05 +0000 @@ -1,3 +1,16 @@ +2013-12-04 Eli Zaretskii + + * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class + to include the new isolate-related classes introduced with Unicode + v6.3. + (unidata-encode-val): Accept an additional optional argument, a + warning message to emit when UnicodeData.txt defines bidi-class + values that are not in unidata-prop-alist. Add a comment + explaining what should maintainers do if/when such a warning ever + appears. + (unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil + when generating uni-bidi.el. + 2013-12-01 Glenn Morris * unidata/Makefile.in (${DSTDIR}/charprop.el): === modified file 'admin/unidata/unidata-gen.el' --- admin/unidata/unidata-gen.el 2013-11-28 20:21:55 +0000 +++ admin/unidata/unidata-gen.el 2013-12-04 16:58:05 +0000 @@ -194,8 +194,8 @@ 4 unidata-gen-table-symbol "uni-bidi.el" "Unicode bidi class. Property value is one of the following symbols: - L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET, - AN, CS, NSM, BN, B, S, WS, ON" + L, LRE, LRO, LRI, R, AL, RLE, RLO, RLI, FSI, PDF, PDI, + EN, ES, ET, AN, CS, NSM, BN, B, S, WS, ON" unidata-describe-bidi-class ;; The assignment of default values to blocks of code points ;; follows the file DerivedBidiClass.txt from the Unicode @@ -205,7 +205,8 @@ (#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R)) ;; The order of elements must be in sync with bidi_type_t in ;; src/dispextern.h. - (L R EN AN BN B AL LRE LRO RLE RLO PDF ES ET CS NSM S WS ON)) + (L R EN AN BN B AL LRE LRO RLE RLO PDF LRI RLI FSI PDI + ES ET CS NSM S WS ON)) (decomposition 5 unidata-gen-table-decomposition "uni-decomposition.el" "Unicode decomposition mapping. @@ -397,12 +398,17 @@ ;; If VAL is one of VALn, just return n. ;; Otherwise, VAL-LIST is modified to this: ;; ((nil . 0) (VAL1 . 1) (VAL2 . 2) ... (VAL . n+1)) +;; +;; WARN is an optional warning to display when the value list is +;; extended, for property values that need to be in sync with other +;; parts of Emacs; currently only used for bidi-class. -(defun unidata-encode-val (val-list val) +(defun unidata-encode-val (val-list val &optional warn) (let ((slot (assoc val val-list)) val-code) (if slot (cdr slot) + (if warn (message warn val)) (setq val-code (length val-list)) (nconc val-list (list (cons val val-code))) val-code))) @@ -413,6 +419,16 @@ (let ((table (make-char-table 'char-code-property-table)) (prop-idx (unidata-prop-index prop)) (vec (make-vector 128 0)) + ;; When this warning is printed, there's a need to make the + ;; following changes: + ;; (1) update unidata-prop-alist with the new bidi-class values; + ;; (2) extend bidi_type_t enumeration on src/dispextern.h to + ;; include the new classes; + ;; (3) possibly update the assertion in bidi.c:bidi_check_type; and + ;; (4) possibly update the switch cases in + ;; bidi.c:bidi_get_type and bidi.c:bidi_get_category. + (bidi-warning "\ +** Found new bidi-class '%s', please update bidi.c and dispextern.h") tail elt range val val-code idx slot prev-range-data) (setq val-list (cons nil (copy-sequence val-list))) @@ -438,7 +454,9 @@ (setq elt (car tail) tail (cdr tail)) (setq range (car elt) val (funcall val-func (nth prop-idx elt))) - (setq val-code (if val (unidata-encode-val val-list val))) + (setq val-code (if val (unidata-encode-val val-list val + (and (eq prop 'bidi-class) + bidi-warning)))) (if (consp range) (when val-code (set-char-table-range table range val-code) @@ -486,7 +504,9 @@ (setq new-val (funcall val-func (nth prop-idx elt))) (if (not (eq val new-val)) (setq val new-val - val-code (if val (unidata-encode-val val-list val)))) + val-code (if val (unidata-encode-val + val-list val (and (eq prop 'bidi-class) + bidi-warning))))) (if val-code (aset vec (- range start) val-code)) (setq tail (cdr tail))) === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 14:11:33 +0000 +++ src/ChangeLog 2013-12-04 16:58:05 +0000 @@ -1,3 +1,13 @@ +2013-12-04 Eli Zaretskii + + * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate + directional control characters. Update type and category + determination according to the UBA from Unicode v6.3. + (bidi_category_t): New category EXPLICIT_FORMATTING. + + * dispextern.h (bidi_type_t): Update to include new bidirectional + properties introduced with Unicode v6.3. (Bug#16043) + 2013-12-04 Martin Rudalics * xterm.c (XTflash): Fix coordinate of bottom area to flash === modified file 'src/bidi.c' --- src/bidi.c 2013-11-22 16:04:49 +0000 +++ src/bidi.c 2013-12-04 16:58:05 +0000 @@ -76,7 +76,8 @@ UNKNOWN_BC, NEUTRAL, WEAK, - STRONG + STRONG, + EXPLICIT_FORMATTING } bidi_category_t; /* UAX#9 says to search only for L, AL, or R types of characters, and @@ -115,13 +116,9 @@ if (default_type == UNKNOWN_BT) emacs_abort (); - if (override == NEUTRAL_DIR) - return default_type; - switch (default_type) { - /* Although UAX#9 does not tell, it doesn't make sense to - override NEUTRAL_B and LRM/RLM characters. */ + case WEAK_BN: case NEUTRAL_B: case LRE: case LRO: @@ -129,20 +126,20 @@ case RLO: case PDF: return default_type; + /* FIXME: The isolate controls are treated as BN until we add + support for UBA v6.3. */ + case LRI: + case RLI: + case FSI: + case PDI: + return WEAK_BN; default: - switch (ch) - { - case LRM_CHAR: - case RLM_CHAR: - return default_type; - default: - if (override == L2R) /* X6 */ - return STRONG_L; - else if (override == R2L) - return STRONG_R; - else - emacs_abort (); /* can't happen: handled above */ - } + if (override == L2R) + return STRONG_L; + else if (override == R2L) + return STRONG_R; + else + return default_type; } } @@ -163,12 +160,7 @@ case STRONG_L: case STRONG_R: case STRONG_AL: - case LRE: - case LRO: - case RLE: - case RLO: return STRONG; - case PDF: /* ??? really?? */ case WEAK_EN: case WEAK_ES: case WEAK_ET: @@ -176,12 +168,30 @@ case WEAK_CS: case WEAK_NSM: case WEAK_BN: + /* FIXME */ + case LRI: + case RLI: + case FSI: + case PDI: return WEAK; case NEUTRAL_B: case NEUTRAL_S: case NEUTRAL_WS: case NEUTRAL_ON: return NEUTRAL; + case LRE: + case LRO: + case RLE: + case RLO: + case PDF: +#if 0 + /* FIXME: This awaits implementation of isolate support. */ + case LRI: + case RLI: + case FSI: + case PDI: +#endif + return EXPLICIT_FORMATTING; default: emacs_abort (); } === modified file 'src/dispextern.h' --- src/dispextern.h 2013-12-01 22:33:13 +0000 +++ src/dispextern.h 2013-12-04 16:58:05 +0000 @@ -1895,6 +1895,10 @@ RLE, /* right-to-left embedding */ RLO, /* right-to-left override */ PDF, /* pop directional format */ + LRI, /* left-to-right isolate */ + RLI, /* right-to-left isolate */ + FSI, /* first strong isolate */ + PDI, /* pop directional isolate */ WEAK_ES, /* european number separator */ WEAK_ET, /* european number terminator */ WEAK_CS, /* common separator */ ------------------------------------------------------------ revno: 115375 committer: martin rudalics branch nick: trunk timestamp: Wed 2013-12-04 15:22:50 +0100 message: Add ChangeLog for last commit: In windmove-other-window-loc handle navigation between windows (Bug#16017). * windmove.el (windmove-other-window-loc): Handle navigation between windows (excluding the minibuffer window - Bug#16017). diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-04 14:10:09 +0000 +++ lisp/ChangeLog 2013-12-04 14:22:50 +0000 @@ -1,3 +1,8 @@ +2013-12-04 Martin Rudalics + + * windmove.el (windmove-other-window-loc): Handle navigation + between windows (excluding the minibuffer window - Bug#16017). + 2013-12-04 Michael Albinus * net/dbus.el (dbus-byte-array-to-string): Accept also byte arrays ------------------------------------------------------------ revno: 115374 committer: martin rudalics branch nick: trunk timestamp: Wed 2013-12-04 15:11:33 +0100 message: In XTflash fix coordinate of bottom area to flash (Bug#16044). * xterm.c (XTflash): Fix coordinate of bottom area to flash (Bug#16044). diff: === modified file 'lisp/windmove.el' --- lisp/windmove.el 2013-01-01 09:11:05 +0000 +++ lisp/windmove.el 2013-12-04 14:11:33 +0000 @@ -438,24 +438,28 @@ to. DIR is one of `left', `up', `right', or `down'; an optional ARG is handled as by `windmove-reference-loc'; WINDOW is the window that movement is relative to." - (let ((edges (window-edges window)) ; edges: (x0, y0, x1, y1) + (let ((edges (window-pixel-edges window)) ; edges: (x0, y0, x1, y1) (refpoint (windmove-reference-loc arg window))) ; (x . y) (cond ((eq dir 'left) - (cons (- (nth 0 edges) + (cons (- (ceiling (nth 0 edges) + (frame-char-width (window-frame window))) windmove-window-distance-delta) (cdr refpoint))) ; (x0-d, y) ((eq dir 'up) (cons (car refpoint) - (- (nth 1 edges) + (- (ceiling (nth 1 edges) + (frame-char-height (window-frame window))) windmove-window-distance-delta))) ; (x, y0-d) ((eq dir 'right) - (cons (+ (1- (nth 2 edges)) ; -1 to get actual max x + (cons (+ (1- (ceiling (nth 2 edges) + (frame-char-width (window-frame window)))) ; -1 to get actual max x windmove-window-distance-delta) (cdr refpoint))) ; (x1+d-1, y) ((eq dir 'down) ; -1 to get actual max y (cons (car refpoint) - (+ (1- (nth 3 edges)) + (+ (1- (ceiling (nth 3 edges) + (frame-char-height (window-frame window)))) windmove-window-distance-delta))) ; (x, y1+d-1) (t (error "Invalid direction of movement: %s" dir))))) === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 13:35:41 +0000 +++ src/ChangeLog 2013-12-04 14:11:33 +0000 @@ -1,3 +1,8 @@ +2013-12-04 Martin Rudalics + + * xterm.c (XTflash): Fix coordinate of bottom area to flash + (Bug#16044). + 2013-12-04 Dmitry Antipov * font.c (font_list_entities): Remove dummy assignment. === modified file 'src/xterm.c' --- src/xterm.c 2013-12-03 11:33:13 +0000 +++ src/xterm.c 2013-12-04 14:11:33 +0000 @@ -2920,7 +2920,7 @@ #endif { /* Get the height not including a menu bar widget. */ - int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f)); + int height = FRAME_PIXEL_HEIGHT (f); /* Height of each line to flash. */ int flash_height = FRAME_LINE_HEIGHT (f); /* These will be the left and right margins of the rectangles. */ ------------------------------------------------------------ revno: 115373 committer: Michael Albinus branch nick: trunk timestamp: Wed 2013-12-04 15:10:09 +0100 message: * net/dbus.el (dbus-byte-array-to-string): Accept also byte arrays in D-Bus type syntax. (dbus-unescape-from-identifier): Use `byte-to-string' in order to preserve unibyte strings. (Bug#16048) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-04 04:42:01 +0000 +++ lisp/ChangeLog 2013-12-04 14:10:09 +0000 @@ -1,3 +1,10 @@ +2013-12-04 Michael Albinus + + * net/dbus.el (dbus-byte-array-to-string): Accept also byte arrays + in D-Bus type syntax. + (dbus-unescape-from-identifier): Use `byte-to-string' in order to + preserve unibyte strings. (Bug#16048) + 2013-12-04 Stefan Monnier * emacs-lisp/eldoc.el (eldoc-minibuffer-message): @@ -21,7 +28,7 @@ 2013-12-03 Tom Regner (tiny change) * notifications.el (notifications-close-notification): Call the - D-Bus method with `id' being an `:uint32'. (Bug#16030) + D-Bus method with ID being a `:uint32'. (Bug#16030) 2013-12-03 Katsumi Yamaoka === modified file 'lisp/net/dbus.el' --- lisp/net/dbus.el 2013-09-05 03:30:07 +0000 +++ lisp/net/dbus.el 2013-12-04 14:10:09 +0000 @@ -829,8 +829,15 @@ (defun dbus-byte-array-to-string (byte-array) "Transforms BYTE-ARRAY into UTF8 coded string. -BYTE-ARRAY must be a list of structure (c1 c2 ...)." - (apply 'string byte-array)) +BYTE-ARRAY must be a list of structure (c1 c2 ...), or a byte +array as produced by `dbus-string-to-byte-array'." + (apply + 'string + (if (equal byte-array '(:array :signature "y")) + nil + (let (result) + (dolist (elt byte-array result) + (when (characterp elt) (setq result (append result `(,elt))))))))) (defun dbus-escape-as-identifier (string) "Escape an arbitrary STRING so it follows the rules for a C identifier. @@ -863,7 +870,7 @@ "" (replace-regexp-in-string "_.." - (lambda (x) (format "%c" (string-to-number (substring x 1) 16))) + (lambda (x) (byte-to-string (string-to-number (substring x 1) 16))) string))) ------------------------------------------------------------ revno: 115372 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-12-04 17:35:41 +0400 message: * font.h (struct font_bitmap): Remove unused 'extra' member. * ftfont.c (ftfont_get_bitmap): Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-04 13:08:30 +0000 +++ src/ChangeLog 2013-12-04 13:35:41 +0000 @@ -3,8 +3,10 @@ * font.c (font_list_entities): Remove dummy assignment. * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are used on graphic displays only. Remove unused 'font_encoder' member. + (struct font_bitmap): Remove unused 'extra' member. * nsfont.m (nsfont_open): - * w32font.c (w32font_open_internal): Adjust users. + * w32font.c (w32font_open_internal): + * ftfont.c (ftfont_get_bitmap): Adjust users. 2013-12-03 Paul Eggert === modified file 'src/font.h' --- src/font.h 2013-12-04 13:08:30 +0000 +++ src/font.h 2013-12-04 13:35:41 +0000 @@ -420,7 +420,6 @@ int left; int top; int advance; - void *extra; }; /* Predicates to check various font-related objects. */ === modified file 'src/ftfont.c' --- src/ftfont.c 2013-10-25 06:55:36 +0000 +++ src/ftfont.c 2013-12-04 13:35:41 +0000 @@ -1478,7 +1478,6 @@ bitmap->left = ft_face->glyph->bitmap_left; bitmap->top = ft_face->glyph->bitmap_top; bitmap->advance = ft_face->glyph->metrics.horiAdvance >> 6; - bitmap->extra = NULL; return 0; } ------------------------------------------------------------ revno: 115371 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-12-04 17:08:30 +0400 message: * font.c (font_list_entities): Remove dummy assignment. * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are used on graphic displays only. Remove unused 'font_encoder' member. * nsfont.m (nsfont_open): * w32font.c (w32font_open_internal): Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-12-03 22:36:49 +0000 +++ src/ChangeLog 2013-12-04 13:08:30 +0000 @@ -1,3 +1,11 @@ +2013-12-04 Dmitry Antipov + + * font.c (font_list_entities): Remove dummy assignment. + * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are + used on graphic displays only. Remove unused 'font_encoder' member. + * nsfont.m (nsfont_open): + * w32font.c (w32font_open_internal): Adjust users. + 2013-12-03 Paul Eggert Use bool for boolean. === modified file 'src/font.c' --- src/font.c 2013-10-29 16:11:50 +0000 +++ src/font.c 2013-12-04 13:08:30 +0000 @@ -2718,7 +2718,7 @@ ASET (scratch_font_spec, FONT_SPACING_INDEX, AREF (spec, FONT_SPACING_INDEX)); ASET (scratch_font_spec, FONT_EXTRA_INDEX, AREF (spec, FONT_EXTRA_INDEX)); - for (i = 0; driver_list; driver_list = driver_list->next) + for (; driver_list; driver_list = driver_list->next) if (driver_list->on && (NILP (ftype) || EQ (driver_list->driver->type, ftype))) { === modified file 'src/font.h' --- src/font.h 2013-12-02 13:35:53 +0000 +++ src/font.h 2013-12-04 13:08:30 +0000 @@ -312,6 +312,10 @@ /* Ascent and descent of the font (in pixels). */ int ascent, descent; + /* The following members makes sense on graphic displays only. */ + +#if defined (HAVE_WINDOW_SYSTEM) + /* Vertical pixel width of the underline. If is zero if that information is not in the font. */ int underline_thickness; @@ -374,12 +378,6 @@ registered in char-table `use-default-ascent'. */ int default_ascent; - /* CCL program to calculate code points of the font. */ - struct ccl_program *font_encoder; - - /* Font-driver for the font. */ - struct font_driver *driver; - /* Charset to encode a character code into a glyph code of the font. -1 means that the font doesn't require this information to encode a character. */ @@ -390,6 +388,11 @@ determine it. */ int repertory_charset; +#endif /* HAVE_WINDOW_SYSTEM */ + + /* Font-driver for the font. */ + struct font_driver *driver; + /* There are more members in this structure, but they are private to the font-driver. */ }; === modified file 'src/nsfont.m' --- src/nsfont.m 2013-10-25 06:55:36 +0000 +++ src/nsfont.m 2013-12-04 13:08:30 +0000 @@ -829,7 +829,6 @@ font->vertical_centering = 0; font->baseline_offset = 0; font->relative_compose = 0; - font->font_encoder = NULL; font->props[FONT_FORMAT_INDEX] = Qns; font->props[FONT_FILE_INDEX] = Qnil; === modified file 'src/w32font.c' --- src/w32font.c 2013-11-29 11:01:45 +0000 +++ src/w32font.c 2013-12-04 13:08:30 +0000 @@ -1012,7 +1012,6 @@ font->baseline_offset = 0; font->relative_compose = 0; font->default_ascent = w32_font->metrics.tmAscent; - font->font_encoder = NULL; font->pixel_size = size; font->driver = &w32font_driver; /* Use format cached during list, as the information we have access to ------------------------------------------------------------ revno: 115370 fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16042 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-12-03 23:42:01 -0500 message: Fix eldoc-in-minibuffer's modeline update. * lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Call force-mode-line-update is the proper buffer. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-12-04 00:37:33 +0000 +++ lisp/ChangeLog 2013-12-04 04:42:01 +0000 @@ -1,3 +1,8 @@ +2013-12-04 Stefan Monnier + + * emacs-lisp/eldoc.el (eldoc-minibuffer-message): + Call force-mode-line-update is the proper buffer (bug#16042). + 2013-12-04 Dmitry Gutov * vc/log-edit.el (log-edit-add-new-comment): Rename to === modified file 'lisp/emacs-lisp/eldoc.el' --- lisp/emacs-lisp/eldoc.el 2013-09-12 05:32:57 +0000 +++ lisp/emacs-lisp/eldoc.el 2013-12-04 04:42:01 +0000 @@ -216,6 +216,9 @@ Otherwise work like `message'." (if (minibufferp) (progn + (add-hook 'minibuffer-exit-hook + (lambda () (setq eldoc-mode-line-string nil)) + nil t) (with-current-buffer (window-buffer (or (window-in-direction 'above (minibuffer-window)) @@ -226,17 +229,11 @@ (setq mode-line-format (list "" '(eldoc-mode-line-string (" " eldoc-mode-line-string " ")) - mode-line-format)))) - (add-hook 'minibuffer-exit-hook - (lambda () (setq eldoc-mode-line-string nil)) - nil t) - (cond - ((null format-string) - (setq eldoc-mode-line-string nil)) - ((stringp format-string) - (setq eldoc-mode-line-string - (apply 'format format-string args)))) - (force-mode-line-update)) + mode-line-format))) + (setq eldoc-mode-line-string + (when (stringp format-string) + (apply 'format format-string args))) + (force-mode-line-update))) (apply 'message format-string args))) (defun eldoc-message (&rest args)