------------------------------------------------------------ revno: 117626 committer: Glenn Morris branch nick: trunk timestamp: Sat 2014-08-02 01:44:18 -0400 message: * automated/icalendar-tests.el (icalendar--decode-isodatetime): Hydra fix. Use more precise TZ specification, as per 2013-08-04. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2014-07-30 16:25:58 +0000 +++ test/ChangeLog 2014-08-02 05:44:18 +0000 @@ -1,6 +1,12 @@ +2014-08-02 Glenn Morris + + * automated/icalendar-tests.el (icalendar--decode-isodatetime): + Use more precise TZ specification, as per 2013-08-04. + 2014-07-30 Ulf Jasper - * automated/icalendar-tests.el (icalendar--decode-isodatetime): New test. + * automated/icalendar-tests.el (icalendar--decode-isodatetime): + New test. 2014-07-28 Dmitry Antipov === modified file 'test/automated/icalendar-tests.el' --- test/automated/icalendar-tests.el 2014-07-30 16:25:58 +0000 +++ test/automated/icalendar-tests.el 2014-08-02 05:44:18 +0000 @@ -420,8 +420,8 @@ result) (unwind-protect (progn - ;; Use Eastern European Time (UTC+1, UTC+2 daylight saving) - (setenv "TZ" "EET") + ;; Use Eastern European Time (UTC+2, UTC+3 daylight saving) + (setenv "TZ" "EET-2EEST,M3.5.0/3,M10.5.0/4") (message "%s" (current-time-zone (encode-time 0 0 10 1 1 2013 0))) (message "%s" (current-time-zone (encode-time 0 0 10 1 8 2013 0))) ------------------------------------------------------------ revno: 117625 committer: Paul Eggert branch nick: trunk timestamp: Fri 2014-08-01 08:12:01 -0700 message: Make functions static that no longer need to be extern. * frame.c, frame.h (set_menu_bar_lines): * keyboard.c (Qleftmost, Qrightmost): * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines) (x_set_internal_border_width): Now static. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-08-01 13:10:07 +0000 +++ src/ChangeLog 2014-08-01 15:12:01 +0000 @@ -1,3 +1,12 @@ +2014-08-01 Paul Eggert + + Make functions static that no longer need to be extern. + * frame.c, frame.h (set_menu_bar_lines): + * keyboard.c (Qleftmost, Qrightmost): + * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines) + (x_set_internal_border_width): + Now static. + 2014-08-01 Eli Zaretskii Fix display of R2L lines when the last character fits only partially. === modified file 'src/frame.c' --- src/frame.c 2014-08-01 00:04:52 +0000 +++ src/frame.c 2014-08-01 15:12:01 +0000 @@ -256,7 +256,7 @@ } } -void +static void set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; === modified file 'src/frame.h' --- src/frame.h 2014-07-28 08:07:55 +0000 +++ src/frame.h 2014-08-01 15:12:01 +0000 @@ -45,9 +45,9 @@ FULLSCREEN_HEIGHT = 0x2, FULLSCREEN_BOTH = 0x3, /* Not a typo but means "width and height". */ FULLSCREEN_MAXIMIZED = 0x4, -#ifdef HAVE_NTGUI +#ifdef HAVE_NTGUI FULLSCREEN_WAIT = 0x8 -#endif +#endif }; #endif /* HAVE_WINDOW_SYSTEM */ @@ -161,7 +161,7 @@ /* Desired and current tool-bar items. */ Lisp_Object tool_bar_items; -#ifdef USE_GTK +#ifdef USE_GTK /* Where tool bar is, can be left, right, top or bottom. Except with GTK, the only supported position is `top'. */ Lisp_Object tool_bar_position; @@ -185,7 +185,7 @@ /* Number of elements in `menu_bar_vector' that have meaningful data. */ int menu_bar_items_used; -#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) /* A buffer to hold the frame's name. Since this is used by the window system toolkit, we can't use the Lisp string's pointer (`name', above) because it might get relocated. */ @@ -1089,7 +1089,6 @@ extern Lisp_Object Qterminal; extern Lisp_Object Qnoelisp; -extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern struct frame *decode_window_system_frame (Lisp_Object); extern struct frame *decode_live_frame (Lisp_Object); extern struct frame *decode_any_frame (Lisp_Object); @@ -1108,7 +1107,7 @@ extern void frame_make_pointer_invisible (struct frame *); extern void frame_make_pointer_visible (struct frame *); extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object); -extern bool frame_inhibit_resize (struct frame *, bool); +extern bool frame_inhibit_resize (struct frame *, bool); extern void adjust_frame_size (struct frame *, int, int, int, bool); extern Lisp_Object Vframe_list; @@ -1309,7 +1308,7 @@ ((height) \ - FRAME_TOP_MARGIN_HEIGHT (f) \ - FRAME_SCROLL_BAR_AREA_HEIGHT (f) \ - - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) + - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) /* Return the width/height reserved for the windows of frame F. */ #define FRAME_WINDOWS_WIDTH(f) \ @@ -1393,8 +1392,6 @@ extern void x_set_left_fringe (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_right_fringe (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_border_width (struct frame *, Lisp_Object, Lisp_Object); -extern void x_set_internal_border_width (struct frame *, Lisp_Object, - Lisp_Object); extern void x_set_right_divider_width (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_bottom_divider_width (struct frame *, Lisp_Object, @@ -1429,7 +1426,6 @@ extern void x_make_frame_invisible (struct frame *f); extern void x_iconify_frame (struct frame *f); extern void x_set_frame_alpha (struct frame *f); -extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern void x_activate_menubar (struct frame *); extern void x_real_positions (struct frame *, int *, int *); extern void free_frame_menubar (struct frame *); === modified file 'src/keyboard.c' --- src/keyboard.c 2014-07-27 13:21:30 +0000 +++ src/keyboard.c 2014-08-01 15:12:01 +0000 @@ -5164,7 +5164,8 @@ static Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; static Lisp_Object Qbefore_handle, Qhorizontal_handle, Qafter_handle; Lisp_Object Qup, Qdown, Qtop, Qbottom; -Lisp_Object Qleft, Qright, Qleftmost, Qrightmost; +Lisp_Object Qleft, Qright; +static Lisp_Object Qleftmost, Qrightmost; static Lisp_Object Qend_scroll; static Lisp_Object Qratio; === modified file 'src/menu.h' --- src/menu.h 2014-06-22 05:00:14 +0000 +++ src/menu.h 2014-08-01 15:12:01 +0000 @@ -34,10 +34,6 @@ MENU_KBD_NAVIGATION = 0x4 }; -extern void x_set_menu_bar_lines (struct frame *f, - Lisp_Object value, - Lisp_Object oldval); - extern void init_menu_items (void); extern void finish_menu_items (void) ATTRIBUTE_CONST; extern void discard_menu_items (void); === modified file 'src/xfns.c' --- src/xfns.c 2014-07-27 13:21:30 +0000 +++ src/xfns.c 2014-08-01 15:12:01 +0000 @@ -965,7 +965,7 @@ } -void +static void x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; @@ -1060,7 +1060,7 @@ height of all windows on frame F to match the new tool bar height. The frame's height doesn't change. */ -void +static void x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) { int nlines; @@ -1149,7 +1149,7 @@ } -void +static void x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { int border; @@ -1172,7 +1172,7 @@ #ifdef USE_GTK xg_clear_under_internal_border (f); -#else +#else x_clear_under_internal_border (f); #endif } ------------------------------------------------------------ revno: 117624 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-08-01 10:49:28 -0400 message: ChangeLog date fix diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-08-01 13:10:07 +0000 +++ lisp/ChangeLog 2014-08-01 14:49:28 +0000 @@ -1,4 +1,4 @@ -2014-07-29 Eli Zaretskii +2014-08-01 Eli Zaretskii * tutorial.el (tutorial--display-changes): Accept punctuation characters before the key binding. (Bug#18146) ------------------------------------------------------------ revno: 117623 [merge] committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2014-08-01 16:10:07 +0300 message: Merge from emacs-24; up to r117418. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-08-01 00:18:19 +0000 +++ lisp/ChangeLog 2014-08-01 13:10:07 +0000 @@ -1,3 +1,8 @@ +2014-07-29 Eli Zaretskii + + * tutorial.el (tutorial--display-changes): Accept punctuation + characters before the key binding. (Bug#18146) + 2014-07-31 Fabián Ezequiel Gallina * progmodes/python.el: Shell output capture enhancements. === modified file 'lisp/tutorial.el' --- lisp/tutorial.el 2014-02-10 01:34:22 +0000 +++ lisp/tutorial.el 2014-07-29 13:41:50 +0000 @@ -548,7 +548,11 @@ (start (point)) (case-fold-search nil) (keybindings-regexp - (concat "[[:space:]]\\(" + ;; Accept either [:space:] or [:punct:] before the key + ;; binding because the Hebrew tutorial uses directional + ;; controls and Hebrew character maqaf, the Hebrew hyphen, + ;; immediately before the binding string. + (concat "\\([[:space:]]\\|[[:punct:]]\\)\\(" (mapconcat (lambda (kdf) (regexp-quote (tutorial--key-description (nth 1 kdf)))) === modified file 'src/ChangeLog' --- src/ChangeLog 2014-08-01 06:52:02 +0000 +++ src/ChangeLog 2014-08-01 13:10:07 +0000 @@ -1,3 +1,35 @@ +2014-08-01 Eli Zaretskii + + Fix display of R2L lines when the last character fits only partially. + See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html + for the details. + * xdisp.c (extend_face_to_end_of_line): If the last glyph of an + R2L row is visible only partially, give the row a negative x + offset. + (display_line): Fix the calculation of the glyph whose pixel width + is used to decide whether the last produced glyph fits on the + line. When the last glyph fits only partially, give the row a + negative x offset. + + Fix hscroll of R2L lines that begin with a TAB or another wide glyph. + * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the + pixel width of the first glyph that is hscrolled from display. + (display_line): In R2L glyph rows, don't give a negative offset to + row->x when the first glyph begins before first_visible_x. + + * xdisp.c (display_line): If called with iterator set up to write + to a marginal area, delay the call to handle_line_prefix until we + switch back to the text area. (Bug#18035) + + * .gdbinit (xwindow): The members total_cols, total_lines, + left_col, and top_line are C integers (and has been so for the + last 1.5 years). + +2014-08-01 Andreas Schwab + + * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and + kbd_macro_end together with kbd_macro_buffer. (Bug#18140) + 2014-08-01 Dmitry Antipov * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h. === modified file 'src/macros.c' --- src/macros.c 2014-07-14 19:07:54 +0000 +++ src/macros.c 2014-08-01 13:10:07 +0000 @@ -63,6 +63,8 @@ { current_kboard->kbd_macro_buffer = xmalloc (30 * word_size); current_kboard->kbd_macro_bufsize = 30; + current_kboard->kbd_macro_ptr = current_kboard->kbd_macro_buffer; + current_kboard->kbd_macro_end = current_kboard->kbd_macro_buffer; } update_mode_lines = 19; if (NILP (append)) === modified file 'src/xdisp.c' --- src/xdisp.c 2014-07-27 13:21:30 +0000 +++ src/xdisp.c 2014-08-01 13:10:07 +0000 @@ -19337,6 +19337,12 @@ it->face_id = saved_face_id; it->start_of_box_run_p = saved_box_start; } + /* If stretch_width comes out negative, it means that the + last glyph is only partially visible. In R2L rows, we + want the leftmost glyph to be partially visible, so we + need to give the row the corresponding left offset. */ + if (stretch_width < 0) + it->glyph_row->x = stretch_width; } #endif /* HAVE_WINDOW_SYSTEM */ } @@ -19963,6 +19969,7 @@ int cvpos; ptrdiff_t min_pos = ZV + 1, max_pos = 0; ptrdiff_t min_bpos IF_LINT (= 0), max_bpos IF_LINT (= 0); + bool pending_handle_line_prefix = false; /* We always start displaying at hpos zero even if hscrolled. */ eassert (it->hpos == 0 && it->current_x == 0); @@ -20023,13 +20030,23 @@ min_pos = CHARPOS (this_line_min_pos); min_bpos = BYTEPOS (this_line_min_pos); } - else + else if (it->area == TEXT_AREA) { - /* We only do this when not calling `move_it_in_display_line_to' - above, because move_it_in_display_line_to calls - handle_line_prefix itself. */ + /* We only do this when not calling move_it_in_display_line_to + above, because that function calls itself handle_line_prefix. */ handle_line_prefix (it); } + else + { + /* Line-prefix and wrap-prefix are always displayed in the text + area. But if this is the first call to display_line after + init_iterator, the iterator might have been set up to write + into a marginal area, e.g. if the line begins with some + display property that writes to the margins. So we need to + wait with the call to handle_line_prefix until whatever + writes to the margin has done its job. */ + pending_handle_line_prefix = true; + } /* Get the initial row height. This is either the height of the text hscrolled, if there is any, or zero. */ @@ -20161,6 +20178,14 @@ row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); set_iterator_to_next (it, 1); + /* If we didn't handle the line/wrap prefix above, and the + call to set_iterator_to_next just switched to TEXT_AREA, + process the prefix now. */ + if (it->area == TEXT_AREA && pending_handle_line_prefix) + { + pending_handle_line_prefix = false; + handle_line_prefix (it); + } continue; } @@ -20190,7 +20215,12 @@ it->max_phys_ascent + it->max_phys_descent); row->extra_line_spacing = max (row->extra_line_spacing, it->max_extra_line_spacing); - if (it->current_x - it->pixel_width < it->first_visible_x) + if (it->current_x - it->pixel_width < it->first_visible_x + /* In R2L rows, we arrange in extend_face_to_end_of_line + to add a right offset to the line, by a suitable + change to the stretch glyph that is the leftmost + glyph of the line. */ + && !row->reversed_p) row->x = x - it->first_visible_x; /* Record the maximum and minimum buffer positions seen so far in glyphs that will be displayed by this row. */ @@ -20204,7 +20234,13 @@ for (i = 0; i < nglyphs; ++i, x = new_x) { - glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; + /* Identify the glyphs added by the last call to + PRODUCE_GLYPHS. In R2L rows, they are prepended to + the previous glyphs. */ + if (!row->reversed_p) + glyph = row->glyphs[TEXT_AREA] + n_glyphs_before + i; + else + glyph = row->glyphs[TEXT_AREA] + nglyphs - 1 - i; new_x = x + glyph->pixel_width; if (/* Lines are continued. */ @@ -20404,10 +20440,20 @@ if (it->bidi_p) RECORD_MAX_MIN_POS (it); - if (x < it->first_visible_x) + if (x < it->first_visible_x && !row->reversed_p) /* Glyph is partially visible, i.e. row starts at - negative X position. */ + negative X position. Don't do that in R2L + rows, where we arrange to add a right offset to + the line in extend_face_to_end_of_line, by a + suitable change to the stretch glyph that is + the leftmost glyph of the line. */ row->x = x - it->first_visible_x; + /* When the last glyph of an R2L row only fits + partially on the line, we need to set row->x to a + negative offset, so that the leftmost glyph is + the one that is partially visible. */ + if (row->reversed_p && new_x > it->last_visible_x) + row->x = it->last_visible_x - new_x; } else { @@ -25305,6 +25351,24 @@ for (g = glyph - 1; g >= it->glyph_row->glyphs[area]; g--) g[1] = *g; glyph = it->glyph_row->glyphs[area]; + + /* Decrease the width of the first glyph of the row that + begins before first_visible_x (e.g., due to hscroll). + This is so the overall width of the row becomes smaller + by the scroll amount, and the stretch glyph appended by + extend_face_to_end_of_line will be wider, to shift the + row glyphs to the right. (In L2R rows, the corresponding + left-shift effect is accomplished by setting row->x to a + negative value, which won't work with R2L rows.) + + This must leave us with a positive value of WIDTH, since + otherwise the call to move_it_in_display_line_to at the + beginning of display_line would have got past the entire + first glyph, and then it->current_x would have been + greater or equal to it->first_visible_x. */ + if (it->current_x < it->first_visible_x) + width -= it->first_visible_x - it->current_x; + eassert (width > 0); } glyph->charpos = CHARPOS (it->position); glyph->object = object; ------------------------------------------------------------ revno: 117622 committer: Glenn Morris branch nick: trunk timestamp: Fri 2014-08-01 06:21:35 -0400 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/ldefs-boot.el' --- lisp/ldefs-boot.el 2014-07-03 06:00:53 +0000 +++ lisp/ldefs-boot.el 2014-08-01 10:21:35 +0000 @@ -2632,7 +2632,7 @@ ;;;*** -;;;### (autoloads nil "bs" "bs.el" (21383 2343 498187 0)) +;;;### (autoloads nil "bs" "bs.el" (21452 59559 901066 0)) ;;; Generated autoloads from bs.el (push (purecopy '(bs 1 17)) package--builtin-versions) @@ -4742,8 +4742,8 @@ ;;;*** -;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21207 -;;;;;; 49087 974317 0)) +;;;### (autoloads nil "cperl-mode" "progmodes/cperl-mode.el" (21438 +;;;;;; 26670 609361 0)) ;;; Generated autoloads from progmodes/cperl-mode.el (put 'cperl-indent-level 'safe-local-variable 'integerp) (put 'cperl-brace-offset 'safe-local-variable 'integerp) @@ -5044,8 +5044,8 @@ ;;;*** -;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "cua-rect" "emulation/cua-rect.el" (21437 5802 +;;;;;; 125919 0)) ;;; Generated autoloads from emulation/cua-rect.el (autoload 'cua-rectangle-mark-mode "cua-rect" "\ @@ -5056,7 +5056,7 @@ ;;;*** -;;;### (autoloads nil "cus-edit" "cus-edit.el" (21240 46395 727291 +;;;### (autoloads nil "cus-edit" "cus-edit.el" (21429 11690 49391 ;;;;;; 0)) ;;; Generated autoloads from cus-edit.el @@ -5546,7 +5546,7 @@ ;;;*** -;;;### (autoloads nil "dbus" "net/dbus.el" (21414 44327 790846 0)) +;;;### (autoloads nil "dbus" "net/dbus.el" (21430 32550 215986 0)) ;;; Generated autoloads from net/dbus.el (autoload 'dbus-handle-event "dbus" "\ @@ -5915,7 +5915,7 @@ ;;;*** -;;;### (autoloads nil "desktop" "desktop.el" (21419 62246 751914 +;;;### (autoloads nil "desktop" "desktop.el" (21446 45134 152348 ;;;;;; 0)) ;;; Generated autoloads from desktop.el @@ -6070,10 +6070,11 @@ Save the desktop in a desktop file. Parameter DIRNAME specifies where to save the desktop file. Optional parameter RELEASE says whether we're done with this desktop. -If AUTO-SAVE is non-nil, compare the saved contents to the one last saved, -and don't save the buffer if they are the same. +If ONLY-IF-CHANGED is non-nil, compare the current desktop information +to that in the desktop file, and if the desktop information has not +changed since it was last saved then do not rewrite the file. -\(fn DIRNAME &optional RELEASE AUTO-SAVE)" t nil) +\(fn DIRNAME &optional RELEASE ONLY-IF-CHANGED)" t nil) (autoload 'desktop-remove "desktop" "\ Delete desktop file in `desktop-dirname'. @@ -6288,7 +6289,7 @@ ;;;*** -;;;### (autoloads nil "dired" "dired.el" (21414 44327 790846 0)) +;;;### (autoloads nil "dired" "dired.el" (21452 59559 901066 0)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches (purecopy "-al") "\ @@ -6637,7 +6638,7 @@ ;;;*** -;;;### (autoloads nil "doc-view" "doc-view.el" (21364 37926 837230 +;;;### (autoloads nil "doc-view" "doc-view.el" (21462 9001 456449 ;;;;;; 0)) ;;; Generated autoloads from doc-view.el @@ -7499,8 +7500,8 @@ ;;;*** -;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21261 4402 -;;;;;; 232258 508000)) +;;;### (autoloads nil "edebug" "emacs-lisp/edebug.el" (21452 59559 +;;;;;; 901066 0)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ @@ -7564,7 +7565,7 @@ ;;;*** -;;;### (autoloads nil "ediff" "vc/ediff.el" (21308 46599 181916 0)) +;;;### (autoloads nil "ediff" "vc/ediff.el" (21429 11690 49391 0)) ;;; Generated autoloads from vc/ediff.el (push (purecopy '(ediff 2 81 4)) package--builtin-versions) @@ -7847,8 +7848,8 @@ ;;;*** -;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "ediff-mult" "vc/ediff-mult.el" (21429 11690 +;;;;;; 49391 0)) ;;; Generated autoloads from vc/ediff-mult.el (autoload 'ediff-show-registry "ediff-mult" "\ @@ -7860,8 +7861,8 @@ ;;;*** -;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21350 58112 -;;;;;; 380040 0)) +;;;### (autoloads nil "ediff-util" "vc/ediff-util.el" (21458 11942 +;;;;;; 975332 0)) ;;; Generated autoloads from vc/ediff-util.el (autoload 'ediff-toggle-multiframe "ediff-util" "\ @@ -7948,7 +7949,7 @@ ;;;*** -;;;### (autoloads nil "ehelp" "ehelp.el" (21240 46395 727291 0)) +;;;### (autoloads nil "ehelp" "ehelp.el" (21429 11690 49391 0)) ;;; Generated autoloads from ehelp.el (autoload 'with-electric-help "ehelp" "\ @@ -8657,7 +8658,7 @@ ;;;*** -;;;### (autoloads nil "erc" "erc/erc.el" (21412 2598 318409 0)) +;;;### (autoloads nil "erc" "erc/erc.el" (21437 5802 125919 0)) ;;; Generated autoloads from erc/erc.el (push (purecopy '(erc 5 3)) package--builtin-versions) @@ -10027,7 +10028,7 @@ ;;;*** -;;;### (autoloads nil "f90" "progmodes/f90.el" (21383 2343 498187 +;;;### (autoloads nil "f90" "progmodes/f90.el" (21429 11690 49391 ;;;;;; 0)) ;;; Generated autoloads from progmodes/f90.el @@ -10855,7 +10856,7 @@ ;;;*** -;;;### (autoloads nil "finder" "finder.el" (21283 26898 123687 848000)) +;;;### (autoloads nil "finder" "finder.el" (21429 11690 49391 0)) ;;; Generated autoloads from finder.el (push (purecopy '(finder 1 0)) package--builtin-versions) @@ -12247,8 +12248,8 @@ ;;;*** -;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (21235 28473 -;;;;;; 29431 0)) +;;;### (autoloads nil "gnus-msg" "gnus/gnus-msg.el" (21467 26920 +;;;;;; 243336 0)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload 'gnus-msg-mail "gnus-msg" "\ @@ -12438,8 +12439,8 @@ ;;;*** -;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21296 1575 -;;;;;; 438327 0)) +;;;### (autoloads nil "gnus-start" "gnus/gnus-start.el" (21434 29609 +;;;;;; 547282 0)) ;;; Generated autoloads from gnus/gnus-start.el (autoload 'gnus-declare-backend "gnus-start" "\ @@ -12488,7 +12489,7 @@ ;;;*** -;;;### (autoloads nil "gnutls" "net/gnutls.el" (21187 63826 213216 +;;;### (autoloads nil "gnutls" "net/gnutls.el" (21427 56357 771874 ;;;;;; 0)) ;;; Generated autoloads from net/gnutls.el @@ -13650,8 +13651,8 @@ ;;;*** -;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21422 8265 -;;;;;; 959286 0)) +;;;### (autoloads nil "hideif" "progmodes/hideif.el" (21452 59559 +;;;;;; 901066 0)) ;;; Generated autoloads from progmodes/hideif.el (autoload 'hide-ifdef-mode "hideif" "\ @@ -13666,27 +13667,31 @@ Several variables affect how the hiding is done: `hide-ifdef-env' - An association list of defined and undefined symbols for the - current buffer. Initially, the global value of `hide-ifdef-env' - is used. + An association list of defined and undefined symbols for the + current project. Initially, the global value of `hide-ifdef-env' + is used. This variable was a buffer-local variable, which limits + hideif to parse only one C/C++ file at a time. We've extended + hideif to support parsing a C/C++ project containing multiple C/C++ + source files opened simultaneously in different buffers. Therefore + `hide-ifdef-env' can no longer be buffer local but must be global. `hide-ifdef-define-alist' - An association list of defined symbol lists. + An association list of defined symbol lists. Use `hide-ifdef-set-define-alist' to save the current `hide-ifdef-env' and `hide-ifdef-use-define-alist' to set the current `hide-ifdef-env' from one of the lists in `hide-ifdef-define-alist'. `hide-ifdef-lines' - Set to non-nil to not show #if, #ifdef, #ifndef, #else, and - #endif lines when hiding. + Set to non-nil to not show #if, #ifdef, #ifndef, #else, and + #endif lines when hiding. `hide-ifdef-initially' - Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode - is activated. + Indicates whether `hide-ifdefs' should be called when Hide-Ifdef mode + is activated. `hide-ifdef-read-only' - Set to non-nil if you want to make buffers read only while hiding. - After `show-ifdefs', read-only status is restored to previous value. + Set to non-nil if you want to make buffers read only while hiding. + After `show-ifdefs', read-only status is restored to previous value. \\{hide-ifdef-mode-map} @@ -13694,8 +13699,8 @@ ;;;*** -;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (21381 47015 -;;;;;; 637535 0)) +;;;### (autoloads nil "hideshow" "progmodes/hideshow.el" (21460 53672 +;;;;;; 48319 0)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\ @@ -14295,8 +14300,8 @@ ;;;*** -;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "icalendar" "calendar/icalendar.el" (21466 +;;;;;; 6053 9002 0)) ;;; Generated autoloads from calendar/icalendar.el (push (purecopy '(icalendar 0 19)) package--builtin-versions) @@ -14426,8 +14431,8 @@ ;;;*** -;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "idlw-shell" "progmodes/idlw-shell.el" (21429 +;;;;;; 11690 49391 0)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload 'idlwave-shell "idlw-shell" "\ @@ -14452,8 +14457,8 @@ ;;;*** -;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21339 34726 -;;;;;; 39547 0)) +;;;### (autoloads nil "idlwave" "progmodes/idlwave.el" (21429 11690 +;;;;;; 49391 0)) ;;; Generated autoloads from progmodes/idlwave.el (push (purecopy '(idlwave 6 1 22)) package--builtin-versions) @@ -14566,7 +14571,8 @@ Info documentation for this package is available. Use \\[idlwave-info] to display (complain to your sysadmin if that does not work). For Postscript, PDF, and HTML versions of the - documentation, check IDLWAVE's homepage at URL `http://idlwave.org'. + documentation, check IDLWAVE's homepage at URL + `http://github.com/jdtsmith/idlwave'. IDLWAVE has customize support - see the group `idlwave'. 10.Keybindings @@ -15482,8 +15488,8 @@ ;;;*** -;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (21187 63826 -;;;;;; 213216 0)) +;;;### (autoloads nil "inf-lisp" "progmodes/inf-lisp.el" (21437 5802 +;;;;;; 125919 0)) ;;; Generated autoloads from progmodes/inf-lisp.el (autoload 'inferior-lisp "inf-lisp" "\ @@ -16817,7 +16823,7 @@ ;;;*** -;;;### (autoloads nil "linum" "linum.el" (21240 46395 727291 0)) +;;;### (autoloads nil "linum" "linum.el" (21437 5802 125919 0)) ;;; Generated autoloads from linum.el (push (purecopy '(linum 0 9 24)) package--builtin-versions) @@ -16938,7 +16944,7 @@ ;;;*** -;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21239 25528 651427 +;;;### (autoloads nil "log-edit" "vc/log-edit.el" (21442 23723 6983 ;;;;;; 0)) ;;; Generated autoloads from vc/log-edit.el @@ -17586,19 +17592,21 @@ ;;;*** -;;;### (autoloads nil "man" "man.el" (21356 43818 957743 0)) +;;;### (autoloads nil "man" "man.el" (21427 56357 771874 0)) ;;; Generated autoloads from man.el (defalias 'manual-entry 'man) (autoload 'man "man" "\ Get a Un*x manual page and put it in a buffer. -This command is the top-level command in the man package. It -runs a Un*x command to retrieve and clean a manpage in the +This command is the top-level command in the man package. +It runs a Un*x command to retrieve and clean a manpage in the background and places the results in a `Man-mode' browsing -buffer. See variable `Man-notify-method' for what happens when -the buffer is ready. If a buffer already exists for this man -page, it will display immediately. +buffer. The variable `Man-width' defines the number of columns in +formatted manual pages. The buffer is displayed immediately. +The variable `Man-notify-method' defines how the buffer is displayed. +If a buffer already exists for this man page, it will be displayed +without running the man command. For a manpage from a particular section, use either of the following. \"cat(1)\" is how cross-references appear and is @@ -19355,8 +19363,8 @@ ;;;*** -;;;### (autoloads nil "octave" "progmodes/octave.el" (21322 25639 -;;;;;; 363230 0)) +;;;### (autoloads nil "octave" "progmodes/octave.el" (21437 5802 +;;;;;; 125919 0)) ;;; Generated autoloads from progmodes/octave.el (autoload 'octave-mode "octave" "\ @@ -20246,8 +20254,8 @@ ;;;*** -;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21319 49445 -;;;;;; 508378 0)) +;;;### (autoloads nil "pascal" "progmodes/pascal.el" (21429 11690 +;;;;;; 49391 0)) ;;; Generated autoloads from progmodes/pascal.el (autoload 'pascal-mode "pascal" "\ @@ -20674,8 +20682,8 @@ ;;;*** -;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (21339 -;;;;;; 34726 39547 0)) +;;;### (autoloads nil "perl-mode" "progmodes/perl-mode.el" (21437 +;;;;;; 5802 125919 0)) ;;; Generated autoloads from progmodes/perl-mode.el (put 'perl-indent-level 'safe-local-variable 'integerp) (put 'perl-continued-statement-offset 'safe-local-variable 'integerp) @@ -20872,7 +20880,7 @@ ;;;*** -;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (21187 63826 213216 +;;;### (autoloads nil "pp" "emacs-lisp/pp.el" (21429 11690 49391 ;;;;;; 0)) ;;; Generated autoloads from emacs-lisp/pp.el @@ -21559,8 +21567,8 @@ ;;;*** -;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21383 2343 -;;;;;; 498187 0)) +;;;### (autoloads nil "prolog" "progmodes/prolog.el" (21462 9001 +;;;;;; 456449 0)) ;;; Generated autoloads from progmodes/prolog.el (autoload 'prolog-mode "prolog" "\ @@ -21856,10 +21864,10 @@ ;;;*** -;;;### (autoloads nil "python" "progmodes/python.el" (21414 44327 -;;;;;; 790846 0)) +;;;### (autoloads nil "python" "progmodes/python.el" (21467 26920 +;;;;;; 243336 0)) ;;; Generated autoloads from progmodes/python.el -(push (purecopy '(python 0 24 2)) package--builtin-versions) +(push (purecopy '(python 0 24 4)) package--builtin-versions) (add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) @@ -22241,7 +22249,7 @@ ;;;*** -;;;### (autoloads nil "rcirc" "net/rcirc.el" (21425 14635 268306 +;;;### (autoloads nil "rcirc" "net/rcirc.el" (21452 59559 901066 ;;;;;; 0)) ;;; Generated autoloads from net/rcirc.el @@ -22326,7 +22334,7 @@ ;;;*** -;;;### (autoloads nil "rect" "rect.el" (21409 26408 607647 0)) +;;;### (autoloads nil "rect" "rect.el" (21450 17830 135996 0)) ;;; Generated autoloads from rect.el (autoload 'delete-rectangle "rect" "\ @@ -23269,8 +23277,8 @@ ;;;*** -;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21414 -;;;;;; 44327 790846 0)) +;;;### (autoloads nil "ruby-mode" "progmodes/ruby-mode.el" (21437 +;;;;;; 5802 125919 0)) ;;; Generated autoloads from progmodes/ruby-mode.el (push (purecopy '(ruby-mode 1 2)) package--builtin-versions) @@ -24125,7 +24133,7 @@ ;;;*** -;;;### (autoloads nil "server" "server.el" (21351 25893 518259 0)) +;;;### (autoloads nil "server" "server.el" (21437 5802 125919 0)) ;;; Generated autoloads from server.el (put 'server-host 'risky-local-variable t) @@ -24192,7 +24200,7 @@ ;;;*** -;;;### (autoloads nil "ses" "ses.el" (21405 29360 677747 0)) +;;;### (autoloads nil "ses" "ses.el" (21454 14892 338155 0)) ;;; Generated autoloads from ses.el (autoload 'ses-mode "ses" "\ @@ -24302,8 +24310,8 @@ ;;;*** -;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21419 -;;;;;; 62246 751914 0)) +;;;### (autoloads nil "sh-script" "progmodes/sh-script.el" (21452 +;;;;;; 59559 901066 0)) ;;; Generated autoloads from progmodes/sh-script.el (push (purecopy '(sh-script 2 0 6)) package--builtin-versions) (put 'sh-shell 'safe-local-variable 'symbolp) @@ -26743,7 +26751,7 @@ ;;;*** -;;;### (autoloads nil "term" "term.el" (21414 44327 790846 0)) +;;;### (autoloads nil "term" "term.el" (21437 5802 125919 0)) ;;; Generated autoloads from term.el (autoload 'make-term "term" "\ @@ -26822,8 +26830,8 @@ ;;;*** -;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "tex-mode" "textmodes/tex-mode.el" (21462 9001 +;;;;;; 456449 0)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ @@ -27874,8 +27882,8 @@ ;;;*** -;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21423 -;;;;;; 59302 489365 0)) +;;;### (autoloads nil "todo-mode" "calendar/todo-mode.el" (21462 +;;;;;; 9001 456449 0)) ;;; Generated autoloads from calendar/todo-mode.el (autoload 'todo-show "todo-mode" "\ @@ -28073,8 +28081,7 @@ ;;;*** -;;;### (autoloads nil "tramp" "net/tramp.el" (21406 50214 284651 -;;;;;; 0)) +;;;### (autoloads nil "tramp" "net/tramp.el" (21429 11690 49391 0)) ;;; Generated autoloads from net/tramp.el (defvar tramp-mode t "\ @@ -29579,8 +29586,8 @@ ;;;*** -;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (21240 46395 -;;;;;; 727291 0)) +;;;### (autoloads nil "vc-annotate" "vc/vc-annotate.el" (21435 50471 +;;;;;; 547961 0)) ;;; Generated autoloads from vc/vc-annotate.el (autoload 'vc-annotate "vc-annotate" "\ @@ -29612,6 +29619,8 @@ mode-specific menu. `vc-annotate-color-map' and `vc-annotate-very-old-color' define the mapping of time to colors. `vc-annotate-background' specifies the background color. +`vc-annotate-background-mode' specifies whether the color map +should be applied to the background or to the foreground. \(fn FILE REV &optional DISPLAY-MODE BUF MOVE-POINT-TO VC-BK)" t nil) @@ -29628,7 +29637,7 @@ ;;;*** -;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (21240 46395 727291 +;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (21452 59559 901066 ;;;;;; 0)) ;;; Generated autoloads from vc/vc-bzr.el @@ -29682,8 +29691,8 @@ ;;;*** -;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (21187 -;;;;;; 63826 213216 0)) +;;;### (autoloads nil "vc-dispatcher" "vc/vc-dispatcher.el" (21446 +;;;;;; 45134 152348 0)) ;;; Generated autoloads from vc/vc-dispatcher.el (autoload 'vc-do-command "vc-dispatcher" "\ @@ -29706,7 +29715,7 @@ ;;;*** -;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21274 64565 737222 +;;;### (autoloads nil "vc-git" "vc/vc-git.el" (21429 11690 49391 ;;;;;; 0)) ;;; Generated autoloads from vc/vc-git.el (defun vc-git-registered (file) @@ -30592,7 +30601,7 @@ ;;;*** -;;;### (autoloads nil "view" "view.el" (21187 63826 213216 0)) +;;;### (autoloads nil "view" "view.el" (21452 59559 901066 0)) ;;; Generated autoloads from view.el (defvar view-remove-frame-by-deleting t "\ @@ -30848,7 +30857,7 @@ ;;;*** -;;;### (autoloads nil "viper" "emulation/viper.el" (21222 16439 978802 +;;;### (autoloads nil "viper" "emulation/viper.el" (21429 11690 49391 ;;;;;; 0)) ;;; Generated autoloads from emulation/viper.el (push (purecopy '(viper 3 14 1)) package--builtin-versions) @@ -31660,7 +31669,7 @@ ;;;*** -;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21414 44327 790846 +;;;### (autoloads nil "xt-mouse" "xt-mouse.el" (21451 38694 880517 ;;;;;; 0)) ;;; Generated autoloads from xt-mouse.el @@ -31938,8 +31947,8 @@ ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el" -;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21426 35556 729434 -;;;;;; 927000)) +;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (21467 27179 976956 +;;;;;; 799000)) ;;;*** ------------------------------------------------------------ revno: 117621 committer: Dmitry Antipov branch nick: trunk timestamp: Fri 2014-08-01 10:52:02 +0400 message: * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h. (timerfd_callback): Ignore weird events with no data. Add tight assertions and comments. (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally disabletimerfd-based timer. Use TFD_NONBLOCK for timer descriptor. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2014-08-01 00:01:44 +0000 +++ src/ChangeLog 2014-08-01 06:52:02 +0000 @@ -1,3 +1,11 @@ +2014-08-01 Dmitry Antipov + + * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h. + (timerfd_callback): Ignore weird events with no data. Add tight + assertions and comments. + (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally + disable timerfd-based timer. Use TFD_NONBLOCK for timer descriptor. + 2014-08-01 Paul Eggert * frame.c (x_set_frame_parameters): Fix typo in previous patch. === modified file 'src/atimer.c' --- src/atimer.c 2014-07-31 20:17:01 +0000 +++ src/atimer.c 2014-08-01 06:52:02 +0000 @@ -27,6 +27,7 @@ #include #ifdef HAVE_TIMERFD +#include # include #endif @@ -399,14 +400,26 @@ void timerfd_callback (int fd, void *arg) { - char buf[8]; ptrdiff_t nbytes; + uint64_t expirations; eassert (fd == timerfd); - nbytes = emacs_read (fd, buf, sizeof (buf)); - /* Just discard an expiration count for now. */ - eassert (nbytes == sizeof (buf)); - do_pending_atimers (); + nbytes = emacs_read (fd, &expirations, sizeof (expirations)); + + if (nbytes == sizeof (expirations)) + { + /* Timer should expire just once. */ + eassert (expirations == 1); + do_pending_atimers (); + } + else if (nbytes < 0) + /* For some not yet known reason, we may get weird event and no + data on timer descriptor. This can break Gnus at least, see: + http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00503.html. */ + eassert (errno == EAGAIN); + else + /* I don't know what else can happen with this descriptor. */ + emacs_abort (); } #endif /* HAVE_TIMERFD */ @@ -528,7 +541,9 @@ { #ifdef HAVE_ITIMERSPEC # ifdef HAVE_TIMERFD - timerfd = timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC); + /* Until this feature is considered stable, you can ask to not use it. */ + timerfd = (egetenv ("EMACS_IGNORE_TIMERFD") ? -1 : + timerfd_create (CLOCK_REALTIME, TFD_NONBLOCK | TFD_CLOEXEC)); # endif if (timerfd < 0) { ------------------------------------------------------------ Use --include-merged or -n0 to see merged revisions.