Now on revision 113629. ------------------------------------------------------------ revno: 113629 committer: Dmitry Antipov branch nick: trunk timestamp: Thu 2013-08-01 10:38:49 +0400 message: Do not use pure Xism x_wm_set_icon_position in non-X ports. * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position only if HAVE_X_WINDOWS is in use. * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS. * nsterm.m (x_wm_set_icon_position): Remove no-op. * w32term.c (x_wm_set_icon_position): Likewise. * w32fns.c (x_icon): Adjust user. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-01 05:56:20 +0000 +++ src/ChangeLog 2013-08-01 06:38:49 +0000 @@ -1,5 +1,15 @@ 2013-08-01 Dmitry Antipov + Do not use pure Xism x_wm_set_icon_position in non-X ports. + * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position + only if HAVE_X_WINDOWS is in use. + * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS. + * nsterm.m (x_wm_set_icon_position): Remove no-op. + * w32term.c (x_wm_set_icon_position): Likewise. + * w32fns.c (x_icon): Adjust user. + +2013-08-01 Dmitry Antipov + * xterm.c (last_mouse_press_frame): Remove the leftover which is not really used any more. (handle_one_xevent, syms_of_xterm): Adjust users. === modified file 'src/frame.c' --- src/frame.c 2013-07-31 12:50:59 +0000 +++ src/frame.c 2013-08-01 06:38:49 +0000 @@ -2867,10 +2867,11 @@ /* Actually set that position, and convert to absolute. */ x_set_offset (f, leftpos, toppos, -1); } - +#ifdef HAVE_X_WINDOWS if ((!NILP (icon_left) || !NILP (icon_top)) && ! (icon_left_no_change && icon_top_no_change)) x_wm_set_icon_position (f, XINT (icon_left), XINT (icon_top)); +#endif /* HAVE_X_WINDOWS */ } UNGCPRO; === modified file 'src/frame.h' --- src/frame.h 2013-07-31 12:50:59 +0000 +++ src/frame.h 2013-08-01 06:38:49 +0000 @@ -1207,7 +1207,6 @@ extern void x_set_scroll_bar_default_width (struct frame *); extern void x_set_offset (struct frame *, int, int, int); -extern void x_wm_set_icon_position (struct frame *, int, int); extern void x_wm_set_size_hint (FRAME_PTR f, long flags, bool user_position); extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int); @@ -1278,9 +1277,12 @@ extern void free_frame_menubar (struct frame *); extern void x_free_frame_resources (struct frame *); -#if defined HAVE_X_WINDOWS && !defined USE_X_TOOLKIT +#if defined HAVE_X_WINDOWS +extern void x_wm_set_icon_position (struct frame *, int, int); +#if !defined USE_X_TOOLKIT extern char *x_get_resource_string (const char *, const char *); #endif +#endif extern void x_query_colors (struct frame *f, XColor *, int); extern void x_query_color (struct frame *f, XColor *); === modified file 'src/nsterm.m' --- src/nsterm.m 2013-07-27 22:14:07 +0000 +++ src/nsterm.m 2013-08-01 06:38:49 +0000 @@ -3863,15 +3863,6 @@ [eview updateFrameSize: NO]; } - -void -x_wm_set_icon_position (struct frame *f, int icon_x, int icon_y) -{ - /* XXX irrelevant under NS */ -} - - - /* ========================================================================== Initialization === modified file 'src/w32fns.c' --- src/w32fns.c 2013-07-31 12:50:59 +0000 +++ src/w32fns.c 2013-08-01 06:38:49 +0000 @@ -4182,9 +4182,6 @@ block_input (); - if (! EQ (icon_x, Qunbound)) - x_wm_set_icon_position (f, XINT (icon_x), XINT (icon_y)); - #if 0 /* TODO */ /* Start up iconic or window? */ x_wm_set_window_state === modified file 'src/w32term.c' --- src/w32term.c 2013-07-30 05:56:18 +0000 +++ src/w32term.c 2013-08-01 06:38:49 +0000 @@ -6225,22 +6225,6 @@ leave_crit (); } -/* Window manager things */ -void -x_wm_set_icon_position (struct frame *f, int icon_x, int icon_y) -{ -#if 0 - Window window = FRAME_W32_WINDOW (f); - - f->display.x->wm_hints.flags |= IconPositionHint; - f->display.x->wm_hints.icon_x = icon_x; - f->display.x->wm_hints.icon_y = icon_y; - - XSetWMHints (FRAME_X_DISPLAY (f), window, &f->display.x->wm_hints); -#endif -} - - /*********************************************************************** Fonts ***********************************************************************/ ------------------------------------------------------------ revno: 113628 committer: Dmitry Antipov branch nick: trunk timestamp: Thu 2013-08-01 09:56:20 +0400 message: * xterm.c (x_flush): Call XFlush once per each X display, not frame. This is better because this code always unconditionally skips non-X frames in Vframe_list and issues the only XFlush if we have more than one X frame on the same X display. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-01 05:28:24 +0000 +++ src/ChangeLog 2013-08-01 05:56:20 +0000 @@ -3,6 +3,10 @@ * xterm.c (last_mouse_press_frame): Remove the leftover which is not really used any more. (handle_one_xevent, syms_of_xterm): Adjust users. + (x_flush): Call XFlush once per each X display, not frame. + This is better because this code always unconditionally skips + non-X frames in Vframe_list and issues the only XFlush if we + have more than one X frame on the same X display. 2013-07-31 Dmitry Antipov === modified file 'src/xterm.c' --- src/xterm.c 2013-08-01 05:28:24 +0000 +++ src/xterm.c 2013-08-01 05:56:20 +0000 @@ -287,8 +287,6 @@ XEMBED_ACTIVATE_ACCELERATOR = 14 }; -/* Used in x_flush. */ - static bool x_alloc_nearest_color_1 (Display *, Colormap, XColor *); static void x_set_window_size_1 (struct frame *, int, int, int); static void x_raise_frame (struct frame *); @@ -356,15 +354,18 @@ return; block_input (); - if (f == NULL) - { - Lisp_Object rest, frame; - FOR_EACH_FRAME (rest, frame) - if (FRAME_X_P (XFRAME (frame))) - x_flush (XFRAME (frame)); - } - else if (FRAME_X_P (f)) - XFlush (FRAME_X_DISPLAY (f)); + if (f) + { + eassert (FRAME_X_P (f)); + XFlush (FRAME_X_DISPLAY (f)); + } + else + { + /* Flush all displays and so all frames on them. */ + struct x_display_info *xdi; + for (xdi = x_display_list; xdi; xdi = xdi->next) + XFlush (xdi->display); + } unblock_input (); } ------------------------------------------------------------ revno: 113627 committer: Dmitry Antipov branch nick: trunk timestamp: Thu 2013-08-01 09:28:24 +0400 message: * xterm.c (last_mouse_press_frame): Remove the leftover which is not really used any more. (handle_one_xevent, syms_of_xterm): Adjust users. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-31 12:50:59 +0000 +++ src/ChangeLog 2013-08-01 05:28:24 +0000 @@ -1,3 +1,9 @@ +2013-08-01 Dmitry Antipov + + * xterm.c (last_mouse_press_frame): Remove the + leftover which is not really used any more. + (handle_one_xevent, syms_of_xterm): Adjust users. + 2013-07-31 Dmitry Antipov Drop unnecessary functions that deals with frame pixel size. === modified file 'src/xterm.c' --- src/xterm.c 2013-07-30 05:56:18 +0000 +++ src/xterm.c 2013-08-01 05:28:24 +0000 @@ -213,7 +213,6 @@ static XRectangle last_mouse_glyph; static FRAME_PTR last_mouse_glyph_frame; -static Lisp_Object last_mouse_press_frame; /* The scroll bar in which the last X motion event occurred. @@ -6975,14 +6974,8 @@ && event.xbutton.same_screen) { SET_SAVED_BUTTON_EVENT; - XSETFRAME (last_mouse_press_frame, f); *finish = X_EVENT_DROP; } - else if (event.type == ButtonPress) - { - last_mouse_press_frame = Qnil; - goto OTHER; - } else goto OTHER; #endif /* USE_X_TOOLKIT || USE_GTK */ @@ -10728,9 +10721,6 @@ DEFSYM (Qvendor_specific_keysyms, "vendor-specific-keysyms"); DEFSYM (Qlatin_1, "latin-1"); - staticpro (&last_mouse_press_frame); - last_mouse_press_frame = Qnil; - #ifdef USE_GTK xg_default_icon_file = build_pure_c_string ("icons/hicolor/scalable/apps/emacs.svg"); staticpro (&xg_default_icon_file); ------------------------------------------------------------ revno: 113626 committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2013-08-01 03:51:41 +0000 message: gnus-util.el (gnus-emacs-completing-read): Isolate XEmacs stuff diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-07-30 22:09:37 +0000 +++ lisp/gnus/ChangeLog 2013-08-01 03:51:41 +0000 @@ -1,3 +1,7 @@ +2013-08-01 Katsumi Yamaoka + + * gnus-util.el (gnus-emacs-completing-read): Isolate XEmacs stuff. + 2013-07-30 Lars Magne Ingebrigtsen * gnus-start.el (gnus-read-active-for-groups): Always mark the data as === modified file 'lisp/gnus/gnus-util.el' --- lisp/gnus/gnus-util.el 2013-05-23 07:52:19 +0000 +++ lisp/gnus/gnus-util.el 2013-08-01 03:51:41 +0000 @@ -1558,12 +1558,15 @@ "Call standard `completing-read-function'." (let ((completion-styles gnus-completion-styles)) (completing-read prompt - ;; Old XEmacs (at least 21.4) expect an alist, - ;; in which the car of each element is a string, - ;; for collection. - (mapcar (lambda (elem) - (list (format "%s" (or (car-safe elem) elem)))) - collection) + (if (featurep 'xemacs) + ;; Old XEmacs (at least 21.4) expect an alist, + ;; in which the car of each element is a string, + ;; for collection. + (mapcar + (lambda (elem) + (list (format "%s" (or (car-safe elem) elem)))) + collection) + collection) nil require-match initial-input history def))) (autoload 'ido-completing-read "ido") ------------------------------------------------------------ revno: 113625 committer: Xue Fuqiao branch nick: trunk timestamp: Thu 2013-08-01 08:19:11 +0800 message: * lisp/vc/vc-hooks.el (vc-menu-map): Fix menu entry for vc-ignore. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-31 12:22:10 +0000 +++ lisp/ChangeLog 2013-08-01 00:19:11 +0000 @@ -1,3 +1,7 @@ +2013-08-01 Xue Fuqiao + + * vc/vc-hooks.el (vc-menu-map): Fix menu entry for vc-ignore. + 2013-07-31 Dmitry Gutov * vc/log-view.el (log-view-diff): Extract `log-view-diff-common', === modified file 'lisp/vc/vc-hooks.el' --- lisp/vc/vc-hooks.el 2013-07-31 07:01:46 +0000 +++ lisp/vc/vc-hooks.el 2013-08-01 00:19:11 +0000 @@ -1004,7 +1004,7 @@ '(menu-item "Register" vc-register :help "Register file set into a version control system")) (bindings--define-key map [vc-ignore] - '(menu-item "Register" vc-ignore + '(menu-item "Ignore File..." vc-ignore :help "Ignore a file under current version control system")) (bindings--define-key map [vc-dir] '(menu-item "VC Dir" vc-dir ------------------------------------------------------------ revno: 113624 committer: Eli Zaretskii branch nick: trunk timestamp: Wed 2013-07-31 19:20:13 +0300 message: Fix the Emacs manual broken by revision 113622. doc/emacs/emacs.texi (Top): Remove menu item for the removed "Disabling Multibyte" node. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-31 13:11:47 +0000 +++ doc/emacs/ChangeLog 2013-07-31 16:20:13 +0000 @@ -1,3 +1,8 @@ +2013-07-31 Eli Zaretskii + + * emacs.texi (Top): Remove menu item for the removed "Disabling + Multibyte" node. + 2013-07-31 Xue Fuqiao * rmail.texi (Rmail Coding): Move here from mule.texi. @@ -5,6 +10,7 @@ * custom.texi (Specifying File Variables): Fix cross-references. * mule.texi (Unibyte Mode): Fix cross-references. + (Disabling Multibyte): Remove. * macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'. === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2013-07-31 11:38:13 +0000 +++ doc/emacs/emacs.texi 2013-07-31 16:20:13 +0000 @@ -544,7 +544,6 @@ International Character Set Support * International Chars:: Basic concepts of multibyte characters. -* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. ------------------------------------------------------------ revno: 113623 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 21:11:47 +0800 message: * doc/emacs/rmail.texi (Rmail Coding): Move here from mule.texi. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-31 12:59:10 +0000 +++ doc/emacs/ChangeLog 2013-07-31 13:11:47 +0000 @@ -1,5 +1,7 @@ 2013-07-31 Xue Fuqiao + * rmail.texi (Rmail Coding): Move here from mule.texi. + * custom.texi (Specifying File Variables): Fix cross-references. * mule.texi (Unibyte Mode): Fix cross-references. === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2013-07-31 12:59:10 +0000 +++ doc/emacs/mule.texi 2013-07-31 13:11:47 +0000 @@ -845,18 +845,6 @@ Unlike the previous two, this variable does not override any @samp{-*-coding:-*-} tag. -@c FIXME? This seems somewhat out of place. Move to the Rmail section? -@vindex rmail-file-coding-system - When you get new mail in Rmail, each message is translated -automatically from the coding system it is written in, as if it were a -separate file. This uses the priority list of coding systems that you -have specified. If a MIME message specifies a character set, Rmail -obeys that specification. For reading and saving Rmail files -themselves, Emacs uses the coding system specified by the variable -@code{rmail-file-coding-system}. The default value is @code{nil}, -which means that Rmail files are not translated (they are read and -written in the Emacs internal character code). - @node Specify Coding @section Specifying a File's Coding System === modified file 'doc/emacs/rmail.texi' --- doc/emacs/rmail.texi 2013-06-24 06:52:33 +0000 +++ doc/emacs/rmail.texi 2013-07-31 13:11:47 +0000 @@ -1274,6 +1274,17 @@ using the coding system you specified. If you specified the right coding system, the result should be readable. +@vindex rmail-file-coding-system + When you get new mail in Rmail, each message is translated +automatically from the coding system it is written in, as if it were a +separate file. This uses the priority list of coding systems that you +have specified. If a MIME message specifies a character set, Rmail +obeys that specification. For reading and saving Rmail files +themselves, Emacs uses the coding system specified by the variable +@code{rmail-file-coding-system}. The default value is @code{nil}, +which means that Rmail files are not translated (they are read and +written in the Emacs internal character code). + @node Rmail Editing @section Editing Within a Message ------------------------------------------------------------ revno: 113622 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 20:59:10 +0800 message: Doc fix. * doc/emacs/custom.texi (Specifying File Variables): Fix cross-references. * doc/emacs/mule.texi (Unibyte Mode): Fix cross-references. * doc/lispref/nonascii.texi (Non-ASCII Characters): Update menu. (Disabling Multibyte): Move here from doc/emacs/mule.texi. Fix cross-references. * doc/lispref/elisp.texi (Top): Update menu. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-31 12:04:25 +0000 +++ doc/emacs/ChangeLog 2013-07-31 12:59:10 +0000 @@ -1,5 +1,9 @@ 2013-07-31 Xue Fuqiao + * custom.texi (Specifying File Variables): Fix cross-references. + + * mule.texi (Unibyte Mode): Fix cross-references. + * macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'. * cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu. === modified file 'doc/emacs/custom.texi' --- doc/emacs/custom.texi 2013-05-07 06:43:34 +0000 +++ doc/emacs/custom.texi 2013-07-31 12:59:10 +0000 @@ -1166,7 +1166,10 @@ @item @code{unibyte} says to load or compile a file of Emacs Lisp in unibyte -mode, if the value is @code{t}. @xref{Disabling Multibyte}. +mode, if the value is @code{t}. @xref{Disabling Multibyte, , +Disabling Multibyte Characters, elisp, GNU Emacs Lisp Reference +Manual}. + @end itemize @noindent === modified file 'doc/emacs/mule.texi' --- doc/emacs/mule.texi 2013-06-29 13:36:19 +0000 +++ doc/emacs/mule.texi 2013-07-31 12:59:10 +0000 @@ -90,7 +90,6 @@ @menu * International Chars:: Basic concepts of multibyte characters. -* Disabling Multibyte:: Controlling whether to use multibyte characters. * Language Environments:: Setting things up for the language you use. * Input Methods:: Entering text characters not on your keyboard. * Select Input Method:: Specifying your choice of input methods. @@ -244,79 +243,6 @@ decomposition: (65 768) ('A' '`') @end smallexample -@c FIXME? Does this section even belong in the user manual? -@c Seems more appropriate to the lispref? -@node Disabling Multibyte -@section Disabling Multibyte Characters - - By default, Emacs starts in multibyte mode: it stores the contents -of buffers and strings using an internal encoding that represents -non-@acronym{ASCII} characters using multi-byte sequences. Multibyte -mode allows you to use all the supported languages and scripts without -limitations. - -@cindex turn multibyte support on or off - Under very special circumstances, you may want to disable multibyte -character support, for a specific buffer. -When multibyte characters are disabled in a buffer, we call -that @dfn{unibyte mode}. In unibyte mode, each character in the -buffer has a character code ranging from 0 through 255 (0377 octal); 0 -through 127 (0177 octal) represent @acronym{ASCII} characters, and 128 -(0200 octal) through 255 (0377 octal) represent non-@acronym{ASCII} -characters. - - To edit a particular file in unibyte representation, visit it using -@code{find-file-literally}. @xref{Visiting}. You can convert a -multibyte buffer to unibyte by saving it to a file, killing the -buffer, and visiting the file again with @code{find-file-literally}. -Alternatively, you can use @kbd{C-x @key{RET} c} -(@code{universal-coding-system-argument}) and specify @samp{raw-text} -as the coding system with which to visit or save a file. @xref{Text -Coding}. Unlike @code{find-file-literally}, finding a file as -@samp{raw-text} doesn't disable format conversion, uncompression, or -auto mode selection. - -@c Not a single file in Emacs uses this feature. Is it really worth -@c mentioning in the _user_ manual? Also, this duplicates somewhat -@c "Loading Non-ASCII" from the lispref. -@cindex Lisp files, and multibyte operation -@cindex multibyte operation, and Lisp files -@cindex unibyte operation, and Lisp files -@cindex init file, and non-@acronym{ASCII} characters - Emacs normally loads Lisp files as multibyte. -This includes the Emacs initialization -file, @file{.emacs}, and the initialization files of packages -such as Gnus. However, you can specify unibyte loading for a -particular Lisp file, by adding an entry @samp{coding: raw-text} in a file -local variables section. @xref{Specify Coding}. -Then that file is always loaded as unibyte text. -@ignore -@c I don't see the point of this statement: -The motivation for these conventions is that it is more reliable to -always load any particular Lisp file in the same way. -@end ignore -You can also load a Lisp file as unibyte, on any one occasion, by -typing @kbd{C-x @key{RET} c raw-text @key{RET}} immediately before -loading it. - -@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip. -@vindex enable-multibyte-characters -The buffer-local variable @code{enable-multibyte-characters} is -non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones. -The mode line also indicates whether a buffer is multibyte or not. -@xref{Mode Line}. With a graphical display, in a multibyte buffer, -the portion of the mode line that indicates the character set has a -tooltip that (amongst other things) says that the buffer is multibyte. -In a unibyte buffer, the character set indicator is absent. Thus, in -a unibyte buffer (when using a graphical display) there is normally -nothing before the indication of the visited file's end-of-line -convention (colon, backslash, etc.), unless you are using an input -method. - -@findex toggle-enable-multibyte-characters -You can turn off multibyte support in a specific buffer by invoking the -command @code{toggle-enable-multibyte-characters} in that buffer. - @node Language Environments @section Language Environments @cindex language environments @@ -1591,15 +1517,13 @@ accented letters and punctuation needed by various European languages (and some non-European ones). Note that Emacs considers bytes with codes in this range as raw bytes, not as characters, even in a unibyte -buffer, i.e., if you disable multibyte characters. However, Emacs -can still handle these character codes as if they belonged to -@emph{one} of the single-byte character sets at a time. To specify -@emph{which} of these codes to use, invoke @kbd{M-x -set-language-environment} and specify a suitable language environment -such as @samp{Latin-@var{n}}. - - For more information about unibyte operation, see -@ref{Disabling Multibyte}. +buffer, i.e., if you disable multibyte characters. However, Emacs can +still handle these character codes as if they belonged to @emph{one} +of the single-byte character sets at a time. To specify @emph{which} +of these codes to use, invoke @kbd{M-x set-language-environment} and +specify a suitable language environment such as @samp{Latin-@var{n}}. +@xref{Disabling Multibyte, , Disabling Multibyte Characters, elisp, +GNU Emacs Lisp Reference Manual}. @vindex unibyte-display-via-language-environment Emacs can also display bytes in the range 160 to 255 as readable === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-07-30 13:53:28 +0000 +++ doc/lispref/ChangeLog 2013-07-31 12:59:10 +0000 @@ -1,3 +1,10 @@ +2013-07-31 Xue Fuqiao + + * nonascii.texi (Non-ASCII Characters): Update menu. + (Disabling Multibyte): Move here from doc/emacs/mule.texi. Fix cross-references. + + * elisp.texi (Top): Update menu. + 2013-07-30 Xue Fuqiao * windows.texi (Window History): Mention the default value of === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2013-07-22 09:19:00 +0000 +++ doc/lispref/elisp.texi 2013-07-31 12:59:10 +0000 @@ -1194,6 +1194,7 @@ Non-@acronym{ASCII} Characters * Text Representations:: How Emacs represents text. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Converting Representations:: Converting unibyte to multibyte and vice versa. * Selecting a Representation:: Treating a byte sequence as unibyte or multi. * Character Codes:: How unibyte and multibyte relate to === modified file 'doc/lispref/nonascii.texi' --- doc/lispref/nonascii.texi 2013-07-06 08:05:21 +0000 +++ doc/lispref/nonascii.texi 2013-07-31 12:59:10 +0000 @@ -13,6 +13,7 @@ @menu * Text Representations:: How Emacs represents text. +* Disabling Multibyte:: Controlling whether to use multibyte characters. * Converting Representations:: Converting unibyte to multibyte and vice versa. * Selecting a Representation:: Treating a byte sequence as unibyte or multi. * Character Codes:: How unibyte and multibyte relate to @@ -140,6 +141,55 @@ result a unibyte string. @end defun +@node Disabling Multibyte +@section Disabling Multibyte Characters +@cindex disabling multibyte + + By default, Emacs starts in multibyte mode: it stores the contents +of buffers and strings using an internal encoding that represents +non-@acronym{ASCII} characters using multi-byte sequences. Multibyte +mode allows you to use all the supported languages and scripts without +limitations. + +@cindex turn multibyte support on or off + Under very special circumstances, you may want to disable multibyte +character support, for a specific buffer. +When multibyte characters are disabled in a buffer, we call +that @dfn{unibyte mode}. In unibyte mode, each character in the +buffer has a character code ranging from 0 through 255 (0377 octal); 0 +through 127 (0177 octal) represent @acronym{ASCII} characters, and 128 +(0200 octal) through 255 (0377 octal) represent non-@acronym{ASCII} +characters. + + To edit a particular file in unibyte representation, visit it using +@code{find-file-literally}. @xref{Visiting Functions}. You can +convert a multibyte buffer to unibyte by saving it to a file, killing +the buffer, and visiting the file again with +@code{find-file-literally}. Alternatively, you can use @kbd{C-x +@key{RET} c} (@code{universal-coding-system-argument}) and specify +@samp{raw-text} as the coding system with which to visit or save a +file. @xref{Text Coding, , Specifying a Coding System for File Text, +emacs, GNU Emacs Manual}. Unlike @code{find-file-literally}, finding +a file as @samp{raw-text} doesn't disable format conversion, +uncompression, or auto mode selection. + +@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip. +@vindex enable-multibyte-characters +The buffer-local variable @code{enable-multibyte-characters} is +non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones. +The mode line also indicates whether a buffer is multibyte or not. +With a graphical display, in a multibyte buffer, the portion of the +mode line that indicates the character set has a tooltip that (amongst +other things) says that the buffer is multibyte. In a unibyte buffer, +the character set indicator is absent. Thus, in a unibyte buffer +(when using a graphical display) there is normally nothing before the +indication of the visited file's end-of-line convention (colon, +backslash, etc.), unless you are using an input method. + +@findex toggle-enable-multibyte-characters +You can turn off multibyte support in a specific buffer by invoking the +command @code{toggle-enable-multibyte-characters} in that buffer. + @node Converting Representations @section Converting Text Representations ------------------------------------------------------------ revno: 113621 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 16:50:59 +0400 message: Drop unnecessary functions that deals with frame pixel size. * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width) (x_pixel_height): Drop prototypes. * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width) (x_pixel_height): Drop implementations. * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT which should be always valid for window frame. (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH. * w32menu.c (Fx_popup_dialog): * xmenu.c (Fx_popup_dialog): Likewise for both. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-31 12:09:16 +0000 +++ src/ChangeLog 2013-07-31 12:50:59 +0000 @@ -1,5 +1,18 @@ 2013-07-31 Dmitry Antipov + Drop unnecessary functions that deals with frame pixel size. + * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width) + (x_pixel_height): Drop prototypes. + * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width) + (x_pixel_height): Drop implementations. + * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT + which should be always valid for window frame. + (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH. + * w32menu.c (Fx_popup_dialog): + * xmenu.c (Fx_popup_dialog): Likewise for both. + +2013-07-31 Dmitry Antipov + * frame.c (Fmake_terminal_frame): Use store_in_alist to setup frame parameters and call to Fmodify_frame_parameters just once. (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring. === modified file 'src/frame.c' --- src/frame.c 2013-07-31 12:09:16 +0000 +++ src/frame.c 2013-07-31 12:50:59 +0000 @@ -2361,7 +2361,7 @@ #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) - return make_number (x_pixel_height (f)); + return make_number (FRAME_PIXEL_HEIGHT (f)); else #endif return make_number (FRAME_LINES (f)); @@ -2378,7 +2378,7 @@ #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) - return make_number (x_pixel_width (f)); + return make_number (FRAME_PIXEL_WIDTH (f)); else #endif return make_number (FRAME_COLS (f)); === modified file 'src/frame.h' --- src/frame.h 2013-07-31 06:05:05 +0000 +++ src/frame.h 2013-07-31 12:50:59 +0000 @@ -1264,8 +1264,6 @@ extern void x_make_frame_visible (struct frame *f); extern void x_make_frame_invisible (struct frame *f); extern void x_iconify_frame (struct frame *f); -extern int x_pixel_width (struct frame *f); -extern int x_pixel_height (struct frame *f); extern void x_set_frame_alpha (struct frame *f); extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_tool_bar_lines (struct frame *f, === modified file 'src/msdos.c' --- src/msdos.c 2013-04-07 04:41:19 +0000 +++ src/msdos.c 2013-07-31 12:50:59 +0000 @@ -3320,18 +3320,6 @@ xfree (menu); menu_help_message = prev_menu_help_message = NULL; } - -int -x_pixel_width (struct frame *f) -{ - return FRAME_COLS (f); -} - -int -x_pixel_height (struct frame *f) -{ - return FRAME_LINES (f); -} #endif /* !HAVE_X_WINDOWS */ /* ----------------------- DOS / UNIX conversion --------------------- */ === modified file 'src/msdos.h' --- src/msdos.h 2013-02-02 17:14:24 +0000 +++ src/msdos.h 2013-07-31 12:50:59 +0000 @@ -74,8 +74,6 @@ /* Defined in xfns.c; emulated on msdos.c */ extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); -extern int x_pixel_width (struct frame *); -extern int x_pixel_height (struct frame *); #define XFreeGC (void) #define x_destroy_bitmap(p1,p2) === modified file 'src/nsfns.m' --- src/nsfns.m 2013-07-31 06:05:05 +0000 +++ src/nsfns.m 2013-07-31 12:50:59 +0000 @@ -2231,21 +2231,6 @@ return nsfocus; } - -int -x_pixel_width (struct frame *f) -{ - return FRAME_PIXEL_WIDTH (f); -} - - -int -x_pixel_height (struct frame *f) -{ - return FRAME_PIXEL_HEIGHT (f); -} - - void x_sync (struct frame *f) { === modified file 'src/w32fns.c' --- src/w32fns.c 2013-07-28 15:22:27 +0000 +++ src/w32fns.c 2013-07-31 12:50:59 +0000 @@ -5139,19 +5139,6 @@ return sound; } - -int -x_pixel_width (register struct frame *f) -{ - return FRAME_PIXEL_WIDTH (f); -} - -int -x_pixel_height (register struct frame *f) -{ - return FRAME_PIXEL_HEIGHT (f); -} - int x_screen_planes (register struct frame *f) { === modified file 'src/w32menu.c' --- src/w32menu.c 2013-04-07 04:41:19 +0000 +++ src/w32menu.c 2013-07-31 12:50:59 +0000 @@ -206,8 +206,8 @@ in the middle of frame F. */ Lisp_Object x, y, frame, newpos; XSETFRAME (frame, f); - XSETINT (x, x_pixel_width (f) / 2); - XSETINT (y, x_pixel_height (f) / 2); + XSETINT (x, FRAME_PIXEL_WIDTH (f) / 2); + XSETINT (y, FRAME_PIXEL_HEIGHT (f) / 2); newpos = Fcons (Fcons (x, Fcons (y, Qnil)), Fcons (frame, Qnil)); return Fx_popup_menu (newpos, Fcons (Fcar (contents), Fcons (contents, Qnil))); === modified file 'src/w32term.h' --- src/w32term.h 2013-06-20 17:36:24 +0000 +++ src/w32term.h 2013-07-31 12:50:59 +0000 @@ -218,8 +218,6 @@ extern void x_make_frame_visible (struct frame *f); extern void x_make_frame_invisible (struct frame *f); extern void x_iconify_frame (struct frame *f); -extern int x_pixel_width (struct frame *f); -extern int x_pixel_height (struct frame *f); extern void x_set_frame_alpha (struct frame *f); extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); extern void x_set_tool_bar_lines (struct frame *f, === modified file 'src/xfns.c' --- src/xfns.c 2013-07-30 05:56:18 +0000 +++ src/xfns.c 2013-07-31 12:50:59 +0000 @@ -4325,19 +4325,6 @@ return attributes_list; } - -int -x_pixel_width (register struct frame *f) -{ - return FRAME_PIXEL_WIDTH (f); -} - -int -x_pixel_height (register struct frame *f) -{ - return FRAME_PIXEL_HEIGHT (f); -} - /************************************************************************ X Displays ************************************************************************/ === modified file 'src/xmenu.c' --- src/xmenu.c 2013-07-30 05:56:18 +0000 +++ src/xmenu.c 2013-07-31 12:50:59 +0000 @@ -294,8 +294,8 @@ { Lisp_Object x, y, frame, newpos; XSETFRAME (frame, f); - XSETINT (x, x_pixel_width (f) / 2); - XSETINT (y, x_pixel_height (f) / 2); + XSETINT (x, FRAME_PIXEL_WIDTH (f) / 2); + XSETINT (y, FRAME_PIXEL_HEIGHT (f) / 2); newpos = list2 (list2 (x, y), frame); return Fx_popup_menu (newpos, === modified file 'src/xterm.h' --- src/xterm.h 2013-07-30 05:56:18 +0000 +++ src/xterm.h 2013-07-31 12:50:59 +0000 @@ -1031,8 +1031,6 @@ extern void xic_set_preeditarea (struct window *, int, int); extern void xic_set_statusarea (struct frame *); extern void xic_set_xfontset (struct frame *, const char *); -extern int x_pixel_width (struct frame *); -extern int x_pixel_height (struct frame *); extern bool x_defined_color (struct frame *, const char *, XColor *, bool); #ifdef HAVE_X_I18N extern void free_frame_xic (struct frame *); ------------------------------------------------------------ revno: 113620 fixes bug: http://debbugs.gnu.org/14989 committer: Dmitry Gutov branch nick: trunk timestamp: Wed 2013-07-31 15:22:10 +0300 message: * lisp/vc/log-view.el (log-view-diff): Extract `log-view-diff-common', use it. (log-view-diff-changeset): Same. (log-view-diff-common): Call backend command `previous-revision' to find out the previous revision, in both cases. Swap the variables `to' and `fr', so that `fr' usually refers to the earlier revision. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-31 07:32:58 +0000 +++ lisp/ChangeLog 2013-07-31 12:22:10 +0000 @@ -1,3 +1,13 @@ +2013-07-31 Dmitry Gutov + + * vc/log-view.el (log-view-diff): Extract `log-view-diff-common', + use it. + (log-view-diff-changeset): Same. + (log-view-diff-common): Call backend command `previous-revision' + to find out the previous revision, in both cases. Swap the + variables `to' and `fr', so that `fr' usually refers to the + earlier revision (Bug#14989). + 2013-07-31 Kan-Ru Chen * ibuf-ext.el (ibuffer-filter-by-filename): === modified file 'lisp/vc/log-view.el' --- lisp/vc/log-view.el 2013-06-11 06:36:06 +0000 +++ lisp/vc/log-view.el 2013-07-31 12:22:10 +0000 @@ -562,19 +562,7 @@ (interactive (list (if (use-region-p) (region-beginning) (point)) (if (use-region-p) (region-end) (point)))) - (let ((fr (log-view-current-tag beg)) - (to (log-view-current-tag end))) - (when (string-equal fr to) - (save-excursion - (goto-char end) - (log-view-msg-next) - (setq to (log-view-current-tag)))) - (vc-diff-internal - t (list log-view-vc-backend - (if log-view-per-file-logs - (list (log-view-current-file)) - log-view-vc-fileset)) - to fr))) + (log-view-diff-common beg end)) (defun log-view-diff-changeset (beg end) "Get the diff between two revisions. @@ -589,20 +577,29 @@ (interactive (list (if (use-region-p) (region-beginning) (point)) (if (use-region-p) (region-end) (point)))) - (when (eq (vc-call-backend log-view-vc-backend 'revision-granularity) 'file) + (log-view-diff-common beg end t)) + +(defun log-view-diff-common (beg end &optional whole-changeset) + (when (and whole-changeset + (eq (vc-call-backend log-view-vc-backend 'revision-granularity) + 'file)) (error "The %s backend does not support changeset diffs" log-view-vc-backend)) - (let ((fr (log-view-current-tag beg)) - (to (log-view-current-tag end))) + (let ((to (log-view-current-tag beg)) + (fr (log-view-current-tag end))) (when (string-equal fr to) ;; TO and FR are the same, look at the previous revision. - (setq to (vc-call-backend log-view-vc-backend 'previous-revision nil fr))) + (setq fr (vc-call-backend log-view-vc-backend 'previous-revision nil fr))) (vc-diff-internal - t - ;; We want to see the diff for all the files in the changeset, so - ;; pass NIL for the file list. The value passed here should - ;; follow what `vc-deduce-fileset' returns. - (list log-view-vc-backend nil) - to fr))) + t (list log-view-vc-backend + ;; The value passed here should follow what + ;; `vc-deduce-fileset' returns. If we want to see the + ;; diff for all the files in the changeset, pass NIL for + ;; the file list. + (unless whole-changeset + (if log-view-per-file-logs + (list (log-view-current-file)) + log-view-vc-fileset))) + fr to))) (provide 'log-view) ------------------------------------------------------------ revno: 113619 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 16:09:16 +0400 message: * frame.c (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring. (Fset_frame_size, Fset_frame_position): Use decode_live_frame and mention nil frame in docstring. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-31 07:45:34 +0000 +++ src/ChangeLog 2013-07-31 12:09:16 +0000 @@ -2,6 +2,9 @@ * frame.c (Fmake_terminal_frame): Use store_in_alist to setup frame parameters and call to Fmodify_frame_parameters just once. + (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring. + (Fset_frame_size, Fset_frame_position): Use decode_live_frame + and mention nil frame in docstring. 2013-07-31 Dmitry Antipov === modified file 'src/frame.c' --- src/frame.c 2013-07-31 07:45:34 +0000 +++ src/frame.c 2013-07-31 12:09:16 +0000 @@ -2403,8 +2403,9 @@ DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0, doc: /* Specify that the frame FRAME has LINES lines. -Optional third arg non-nil means that redisplay should use LINES lines -but that the idea of the actual height of the frame should not be changed. */) +If FRAME is nil, the selected frame is used. Optional third arg +non-nil means that redisplay should use LINES lines but that the +idea of the actual height of the frame should not be changed. */) (Lisp_Object frame, Lisp_Object lines, Lisp_Object pretend) { register struct frame *f = decode_live_frame (frame); @@ -2427,8 +2428,9 @@ DEFUN ("set-frame-width", Fset_frame_width, Sset_frame_width, 2, 3, 0, doc: /* Specify that the frame FRAME has COLS columns. -Optional third arg non-nil means that redisplay should use COLS columns -but that the idea of the actual width of the frame should not be changed. */) +If FRAME is nil, the selected frame is used. Optional third arg +non-nil means that redisplay should use COLS columns but that the +idea of the actual width of the frame should not be changed. */) (Lisp_Object frame, Lisp_Object cols, Lisp_Object pretend) { register struct frame *f = decode_live_frame (frame); @@ -2450,15 +2452,14 @@ } DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0, - doc: /* Sets size of FRAME to COLS by ROWS, measured in characters. */) + doc: /* Sets size of FRAME to COLS by ROWS, measured in characters. +If FRAME is nil, the selected frame is used. */) (Lisp_Object frame, Lisp_Object cols, Lisp_Object rows) { - register struct frame *f; + register struct frame *f = decode_live_frame (frame); - CHECK_LIVE_FRAME (frame); CHECK_TYPE_RANGED_INTEGER (int, cols); CHECK_TYPE_RANGED_INTEGER (int, rows); - f = XFRAME (frame); /* I think this should be done with a hook. */ #ifdef HAVE_WINDOW_SYSTEM @@ -2480,17 +2481,16 @@ DEFUN ("set-frame-position", Fset_frame_position, Sset_frame_position, 3, 3, 0, doc: /* Sets position of FRAME in pixels to XOFFSET by YOFFSET. -This is actually the position of the upper left corner of the frame. -Negative values for XOFFSET or YOFFSET are interpreted relative to -the rightmost or bottommost possible position (that stays within the screen). */) +If FRAME is nil, the selected frame is used. XOFFSET and YOFFSET are +actually the position of the upper left corner of the frame. Negative +values for XOFFSET or YOFFSET are interpreted relative to the rightmost +or bottommost possible position (that stays within the screen). */) (Lisp_Object frame, Lisp_Object xoffset, Lisp_Object yoffset) { - register struct frame *f; + register struct frame *f = decode_live_frame (frame); - CHECK_LIVE_FRAME (frame); CHECK_TYPE_RANGED_INTEGER (int, xoffset); CHECK_TYPE_RANGED_INTEGER (int, yoffset); - f = XFRAME (frame); /* I think this should be done with a hook. */ #ifdef HAVE_WINDOW_SYSTEM ------------------------------------------------------------ revno: 113618 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 20:04:25 +0800 message: * doc/emacs/macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-31 11:38:13 +0000 +++ doc/emacs/ChangeLog 2013-07-31 12:04:25 +0000 @@ -1,5 +1,7 @@ 2013-07-31 Xue Fuqiao + * macos.texi (Mac / GNUstep Basics): Mention `ns-alternate-modifier'. + * cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu. (Mayan Calendar): Move here from calendar.texi. * emacs.texi (Top): Update menu. === modified file 'doc/emacs/macos.texi' --- doc/emacs/macos.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/macos.texi 2013-07-31 12:04:25 +0000 @@ -40,13 +40,16 @@ other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You can change these bindings in the usual way (@pxref{Key Bindings}). -@c FIXME mention ns-alternate-modifier? +@vindex ns-alternate-modifier +@vindex ns-right-alternate-modifier The variable @code{ns-right-alternate-modifier} controls the behavior of the right @key{alt} and @key{option} keys. These keys behave like the left-hand keys if the value is @code{left} (the default). A value of @code{control}, @code{meta}, @code{alt}, @code{super}, or @code{hyper} makes them behave like the corresponding -modifier keys; a value of @code{none} tells Emacs to ignore them. +modifier keys; a value to @code{left} means be the same key as +@code{ns-alternate-modifier}; a value of @code{none} tells Emacs to +ignore them. @kbd{S-Mouse-1} adjusts the region to the click position, just like @kbd{Mouse-3} (@code{mouse-save-then-kill}); it does not pop ------------------------------------------------------------ revno: 113617 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 19:38:13 +0800 message: Move the documentation of Mayan calendar to cal-xtra.texi. * doc/emacs/cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu. (Mayan Calendar): Move here from calendar.texi. * doc/emacs/emacs.texi (Top): Update menu. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-07-30 22:27:47 +0000 +++ doc/emacs/ChangeLog 2013-07-31 11:38:13 +0000 @@ -1,3 +1,9 @@ +2013-07-31 Xue Fuqiao + + * cal-xtra.texi (Advanced Calendar/Diary Usage): Update menu. + (Mayan Calendar): Move here from calendar.texi. + * emacs.texi (Top): Update menu. + 2013-07-30 Xue Fuqiao * emacs.texi (Top): Add menu entry. === modified file 'doc/emacs/cal-xtra.texi' --- doc/emacs/cal-xtra.texi 2013-03-04 08:45:03 +0000 +++ doc/emacs/cal-xtra.texi 2013-07-31 11:38:13 +0000 @@ -17,6 +17,7 @@ @menu * Calendar Customizing:: Calendar layout and hooks. * Holiday Customizing:: Defining your own holidays. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. * Date Display Format:: Changing the format. * Time Display Format:: Changing the format. * Diary Customizing:: Defaults you can set. @@ -260,6 +261,99 @@ (((6 4 2012) "Lunar Eclipse") ((11 13 2012) "Solar Eclipse") ... ) @end smallexample +@node Mayan Calendar +@subsection Converting from the Mayan Calendar +@cindex Mayan calendar + + Here are the commands to select dates based on the Mayan calendar: + +@table @kbd +@item g m l +Move to a date specified by the long count calendar +(@code{calendar-mayan-goto-long-count-date}). +@item g m n t +Move to the next occurrence of a place in the +tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}). +@item g m p t +Move to the previous occurrence of a place in the +tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}). +@item g m n h +Move to the next occurrence of a place in the +haab calendar (@code{calendar-mayan-next-haab-date}). +@item g m p h +Move to the previous occurrence of a place in the +haab calendar (@code{calendar-mayan-previous-haab-date}). +@item g m n c +Move to the next occurrence of a place in the +calendar round (@code{calendar-mayan-next-calendar-round-date}). +@item g m p c +Move to the previous occurrence of a place in the +calendar round (@code{calendar-mayan-previous-calendar-round-date}). +@end table + +@cindex Mayan long count + To understand these commands, you need to understand the Mayan calendars. +The @dfn{long count} is a counting of days with these units: + +@display +1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal +1 katun = 20 tun@ @ @ 1 baktun = 20 katun +@end display + +@kindex g m @r{(Calendar mode)} +@findex calendar-mayan-goto-long-count-date +@noindent +Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 +tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long +count dates as early as 7.17.18.13.3, but no earlier. When you use the +@kbd{g m l} command, type the Mayan long count date with the baktun, +katun, tun, uinal, and kin separated by periods. + +@findex calendar-mayan-previous-tzolkin-date +@findex calendar-mayan-next-tzolkin-date +@cindex Mayan tzolkin calendar + The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of +independent cycles of 13 and 20 days. Since this cycle repeats +endlessly, Emacs provides commands to move backward and forward to the +previous or next point in the cycle. Type @kbd{g m p t} to go to the +previous tzolkin date; Emacs asks you for a tzolkin date and moves point +to the previous occurrence of that date. Similarly, type @kbd{g m n t} +to go to the next occurrence of a tzolkin date. + +@findex calendar-mayan-previous-haab-date +@findex calendar-mayan-next-haab-date +@cindex Mayan haab calendar + The Mayan haab calendar is a cycle of 365 days arranged as 18 months +of 20 days each, followed by a 5-day monthless period. Like the tzolkin +cycle, this cycle repeats endlessly, and there are commands to move +backward and forward to the previous or next point in the cycle. Type +@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab +date and moves point to the previous occurrence of that date. +Similarly, type @kbd{g m n h} to go to the next occurrence of a haab +date. + +@c This is omitted because it is too long for smallbook format. +@c @findex calendar-mayan-previous-calendar-round-date +@findex calendar-mayan-next-calendar-round-date +@cindex Mayan calendar round + The Maya also used the combination of the tzolkin date and the haab +date. This combination is a cycle of about 52 years called a +@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for +both a haab and a tzolkin date and then moves point to the previous +occurrence of that combination. Use @kbd{g m n c} to move point to the +next occurrence of a combination. These commands signal an error if the +haab/tzolkin date combination you have typed is impossible. + + Emacs uses strict completion +@iftex +(@pxref{Completion Exit,,, emacs, the Emacs Manual}) +@end iftex +@ifnottex +(@pxref{Completion Exit}) +@end ifnottex +whenever it asks you to type a Mayan name, so you don't have to worry +about spelling. + @node Date Display Format @subsection Date Display Format @vindex calendar-date-display-form === modified file 'doc/emacs/calendar.texi' --- doc/emacs/calendar.texi 2013-05-04 23:55:57 +0000 +++ doc/emacs/calendar.texi 2013-07-31 11:38:13 +0000 @@ -678,7 +678,6 @@ (aside from Gregorian). * To Other Calendar:: Converting the selected date to various calendars. * From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. @end menu @c FIXME perhaps most of the details should be moved to cal-xtra. @@ -913,93 +912,6 @@ this command first asks you for the date of death and the range of years, and then displays the list of yahrzeit dates. -@c FIXME move to emacs-xtra. -@node Mayan Calendar -@subsection Converting from the Mayan Calendar - - Here are the commands to select dates based on the Mayan calendar: - -@table @kbd -@item g m l -Move to a date specified by the long count calendar -(@code{calendar-mayan-goto-long-count-date}). -@item g m n t -Move to the next occurrence of a place in the -tzolkin calendar (@code{calendar-mayan-next-tzolkin-date}). -@item g m p t -Move to the previous occurrence of a place in the -tzolkin calendar (@code{calendar-mayan-previous-tzolkin-date}). -@item g m n h -Move to the next occurrence of a place in the -haab calendar (@code{calendar-mayan-next-haab-date}). -@item g m p h -Move to the previous occurrence of a place in the -haab calendar (@code{calendar-mayan-previous-haab-date}). -@item g m n c -Move to the next occurrence of a place in the -calendar round (@code{calendar-mayan-next-calendar-round-date}). -@item g m p c -Move to the previous occurrence of a place in the -calendar round (@code{calendar-mayan-previous-calendar-round-date}). -@end table - -@cindex Mayan long count - To understand these commands, you need to understand the Mayan calendars. -The @dfn{long count} is a counting of days with these units: - -@display -1 kin = 1 day@ @ @ 1 uinal = 20 kin@ @ @ 1 tun = 18 uinal -1 katun = 20 tun@ @ @ 1 baktun = 20 katun -@end display - -@kindex g m @r{(Calendar mode)} -@findex calendar-mayan-goto-long-count-date -@noindent -Thus, the long count date 12.16.11.16.6 means 12 baktun, 16 katun, 11 -tun, 16 uinal, and 6 kin. The Emacs calendar can handle Mayan long -count dates as early as 7.17.18.13.3, but no earlier. When you use the -@kbd{g m l} command, type the Mayan long count date with the baktun, -katun, tun, uinal, and kin separated by periods. - -@findex calendar-mayan-previous-tzolkin-date -@findex calendar-mayan-next-tzolkin-date -@cindex Mayan tzolkin calendar - The Mayan tzolkin calendar is a cycle of 260 days formed by a pair of -independent cycles of 13 and 20 days. Since this cycle repeats -endlessly, Emacs provides commands to move backward and forward to the -previous or next point in the cycle. Type @kbd{g m p t} to go to the -previous tzolkin date; Emacs asks you for a tzolkin date and moves point -to the previous occurrence of that date. Similarly, type @kbd{g m n t} -to go to the next occurrence of a tzolkin date. - -@findex calendar-mayan-previous-haab-date -@findex calendar-mayan-next-haab-date -@cindex Mayan haab calendar - The Mayan haab calendar is a cycle of 365 days arranged as 18 months -of 20 days each, followed by a 5-day monthless period. Like the tzolkin -cycle, this cycle repeats endlessly, and there are commands to move -backward and forward to the previous or next point in the cycle. Type -@kbd{g m p h} to go to the previous haab date; Emacs asks you for a haab -date and moves point to the previous occurrence of that date. -Similarly, type @kbd{g m n h} to go to the next occurrence of a haab -date. - -@c This is omitted because it is too long for smallbook format. -@c @findex calendar-mayan-previous-calendar-round-date -@findex calendar-mayan-next-calendar-round-date -@cindex Mayan calendar round - The Maya also used the combination of the tzolkin date and the haab -date. This combination is a cycle of about 52 years called a -@emph{calendar round}. If you type @kbd{g m p c}, Emacs asks you for -both a haab and a tzolkin date and then moves point to the previous -occurrence of that combination. Use @kbd{g m n c} to move point to the -next occurrence of a combination. These commands signal an error if the -haab/tzolkin date combination you have typed is impossible. - - Emacs uses strict completion (@pxref{Completion Exit}) whenever it -asks you to type a Mayan name, so you don't have to worry about -spelling. - @node Diary @section The Diary @cindex diary === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2013-07-30 22:27:47 +0000 +++ doc/emacs/emacs.texi 2013-07-31 11:38:13 +0000 @@ -957,7 +957,6 @@ (aside from Gregorian). * To Other Calendar:: Converting the selected date to various calendars. * From Other Calendar:: Moving to a date specified in another calendar. -* Mayan Calendar:: Moving to a date specified in a Mayan calendar. The Diary @@ -972,6 +971,7 @@ * Calendar Customizing:: Calendar layout and hooks. * Holiday Customizing:: Defining your own holidays. +* Mayan Calendar:: Moving to a date specified in a Mayan calendar. * Date Display Format:: Changing the format. * Time Display Format:: Changing the format. * Diary Customizing:: Defaults you can set. ------------------------------------------------------------ revno: 113616 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-07-31 06:19:06 -0400 message: Auto-commit of loaddefs files. diff: === modified file 'lisp/ibuffer.el' --- lisp/ibuffer.el 2013-07-03 23:11:58 +0000 +++ lisp/ibuffer.el 2013-07-31 10:19:06 +0000 @@ -2631,29 +2631,7 @@ ;;; Start of automatically extracted autoloads. -;;;### (autoloads (ibuffer-do-occur ibuffer-mark-dired-buffers ibuffer-mark-read-only-buffers -;;;;;; ibuffer-mark-special-buffers ibuffer-mark-old-buffers ibuffer-mark-compressed-file-buffers -;;;;;; ibuffer-mark-help-buffers ibuffer-mark-dissociated-buffers -;;;;;; ibuffer-mark-unsaved-buffers ibuffer-mark-modified-buffers -;;;;;; ibuffer-mark-by-mode ibuffer-mark-by-file-name-regexp ibuffer-mark-by-mode-regexp -;;;;;; ibuffer-mark-by-name-regexp ibuffer-copy-filename-as-kill -;;;;;; ibuffer-diff-with-file ibuffer-jump-to-buffer ibuffer-do-kill-lines -;;;;;; ibuffer-backwards-next-marked ibuffer-forward-next-marked -;;;;;; ibuffer-add-to-tmp-show ibuffer-add-to-tmp-hide ibuffer-bs-show -;;;;;; ibuffer-invert-sorting ibuffer-toggle-sorting-mode ibuffer-switch-to-saved-filters -;;;;;; ibuffer-add-saved-filters ibuffer-delete-saved-filters ibuffer-save-filters -;;;;;; ibuffer-or-filter ibuffer-negate-filter ibuffer-exchange-filters -;;;;;; ibuffer-decompose-filter ibuffer-pop-filter ibuffer-filter-disable -;;;;;; ibuffer-switch-to-saved-filter-groups ibuffer-delete-saved-filter-groups -;;;;;; ibuffer-save-filter-groups ibuffer-yank-filter-group ibuffer-yank -;;;;;; ibuffer-kill-line ibuffer-kill-filter-group ibuffer-jump-to-filter-group -;;;;;; ibuffer-clear-filter-groups ibuffer-decompose-filter-group -;;;;;; ibuffer-pop-filter-group ibuffer-set-filter-groups-by-mode -;;;;;; ibuffer-filters-to-filter-group ibuffer-included-in-filters-p -;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group -;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group -;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode -;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "2c628e6cde385119c5f7b43cc1efe1a1") +;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "d06b2735a74954e0c6922a811de7608c") ;;; Generated autoloads from ibuf-ext.el (autoload 'ibuffer-auto-mode "ibuf-ext" "\ ------------------------------------------------------------ revno: 113615 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 11:45:34 +0400 message: * frame.c (Fmake_terminal_frame): Use store_in_alist to setup frame parameters and call to Fmodify_frame_parameters just once. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-07-31 06:05:05 +0000 +++ src/ChangeLog 2013-07-31 07:45:34 +0000 @@ -1,5 +1,10 @@ 2013-07-31 Dmitry Antipov + * frame.c (Fmake_terminal_frame): Use store_in_alist to setup + frame parameters and call to Fmodify_frame_parameters just once. + +2013-07-31 Dmitry Antipov + * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean. (x_figure_window_size): Likewise. Adjust to return long. (syms_of_frame): Do not DEFSYM Qterminal_live_p. === modified file 'src/frame.c' --- src/frame.c 2013-07-31 06:05:05 +0000 +++ src/frame.c 2013-07-31 07:45:34 +0000 @@ -724,16 +724,13 @@ adjust_glyphs (f); calculate_costs (f); XSETFRAME (frame, f); + + store_in_alist (&parms, Qtty_type, build_string (t->display_info.tty->type)); + store_in_alist (&parms, Qtty, + (t->display_info.tty->name + ? build_string (t->display_info.tty->name) + : Qnil)); Fmodify_frame_parameters (frame, parms); - Fmodify_frame_parameters - (frame, list1 (Fcons (Qtty_type, - build_string (t->display_info.tty->type)))); - if (t->display_info.tty->name != NULL) - Fmodify_frame_parameters - (frame, list1 (Fcons (Qtty, - build_string (t->display_info.tty->name)))); - else - Fmodify_frame_parameters (frame, list1 (Fcons (Qtty, Qnil))); /* Make the frame face alist be frame-specific, so that each frame could change its face definitions independently. */ ------------------------------------------------------------ revno: 113614 author: Kan-Ru Chen committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-07-31 00:32:58 -0700 message: * ibuf-ext.el (ibuffer-filter-by-filename): Make it work with dired buffers too. Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00573.html diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-31 07:01:46 +0000 +++ lisp/ChangeLog 2013-07-31 07:32:58 +0000 @@ -1,3 +1,8 @@ +2013-07-31 Kan-Ru Chen + + * ibuf-ext.el (ibuffer-filter-by-filename): + Make it work with dired buffers too. + 2013-07-31 Dmitry Antipov * emacs-lisp/re-builder.el (reb-color-display-p): === modified file 'lisp/ibuf-ext.el' --- lisp/ibuf-ext.el 2013-06-12 11:42:12 +0000 +++ lisp/ibuf-ext.el 2013-07-31 07:32:58 +0000 @@ -1050,7 +1050,7 @@ "Toggle current view to buffers with filename matching QUALIFIER." (:description "filename" :reader (read-from-minibuffer "Filter by filename (regexp): ")) - (ibuffer-awhen (buffer-local-value 'buffer-file-name buf) + (ibuffer-awhen (with-current-buffer buf (ibuffer-buffer-file-name)) (string-match qualifier it))) ;;;###autoload (autoload 'ibuffer-filter-by-size-gt "ibuf-ext") ------------------------------------------------------------ revno: 113613 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-07-31 00:08:47 -0700 message: * test/automated/undo-tests.el (undo-test2, undo-test5): Be quieter. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2013-07-24 13:56:19 +0000 +++ test/ChangeLog 2013-07-31 07:08:47 +0000 @@ -1,3 +1,7 @@ +2013-07-31 Glenn Morris + + * automated/undo-tests.el (undo-test2, undo-test5): Be quieter. + 2013-07-24 Michael Albinus * automated/file-notify-tests.el === modified file 'test/automated/undo-tests.el' --- test/automated/undo-tests.el 2013-07-11 15:56:41 +0000 +++ test/automated/undo-tests.el 2013-07-31 07:08:47 +0000 @@ -124,7 +124,7 @@ (undo-boundary) (insert " Zero") (undo-boundary) - (push-mark) + (push-mark nil t) (delete-region (save-excursion (forward-word -1) (point)) (point)) @@ -172,7 +172,7 @@ (insert " BEE") (undo-boundary) (setq buffer-undo-list (cons '(0.0 bogus) buffer-undo-list)) - (push-mark) + (push-mark nil t) (delete-region (save-excursion (forward-word -1) (point)) (point)) ------------------------------------------------------------ revno: 113612 committer: Xue Fuqiao branch nick: trunk timestamp: Wed 2013-07-31 15:01:46 +0800 message: * lisp/vc/vc-hooks.el (vc-menu-map): Add menu entry for vc-ignore. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-31 06:52:26 +0000 +++ lisp/ChangeLog 2013-07-31 07:01:46 +0000 @@ -7,6 +7,10 @@ * textmodes/reftex-toc.el (reftex-toc, reftex-toc-revert): Prefer nil to selected-frame for the first arg of frame-parameter. +2013-07-31 Xue Fuqiao + + * vc/vc-hooks.el (vc-menu-map): Add menu entry for vc-ignore. + 2013-07-30 Stephen Berman * minibuffer.el (completion--twq-all): Try and preserve each === modified file 'lisp/vc/vc-hooks.el' --- lisp/vc/vc-hooks.el 2013-07-30 14:29:14 +0000 +++ lisp/vc/vc-hooks.el 2013-07-31 07:01:46 +0000 @@ -1003,6 +1003,9 @@ (bindings--define-key map [vc-register] '(menu-item "Register" vc-register :help "Register file set into a version control system")) + (bindings--define-key map [vc-ignore] + '(menu-item "Register" vc-ignore + :help "Ignore a file under current version control system")) (bindings--define-key map [vc-dir] '(menu-item "VC Dir" vc-dir :help "Show the VC status of files in a directory")) ------------------------------------------------------------ revno: 113611 committer: Dmitry Antipov branch nick: trunk timestamp: Wed 2013-07-31 10:52:26 +0400 message: * lisp/emacs-lisp/re-builder.el (reb-color-display-p): * lisp/files.el (save-buffers-kill-terminal): * lisp/net/browse-url.el (browse-url): * lisp/server.el (server-save-buffers-kill-terminal): * lisp/textmodes/reftex-toc.el (reftex-toc, reftex-toc-revert): Prefer nil to selected-frame for the first arg of frame-parameter. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-07-30 20:42:15 +0000 +++ lisp/ChangeLog 2013-07-31 06:52:26 +0000 @@ -1,3 +1,12 @@ +2013-07-31 Dmitry Antipov + + * emacs-lisp/re-builder.el (reb-color-display-p): + * files.el (save-buffers-kill-terminal): + * net/browse-url.el (browse-url): + * server.el (server-save-buffers-kill-terminal): + * textmodes/reftex-toc.el (reftex-toc, reftex-toc-revert): + Prefer nil to selected-frame for the first arg of frame-parameter. + 2013-07-30 Stephen Berman * minibuffer.el (completion--twq-all): Try and preserve each === modified file 'lisp/emacs-lisp/re-builder.el' --- lisp/emacs-lisp/re-builder.el 2013-01-01 09:11:05 +0000 +++ lisp/emacs-lisp/re-builder.el 2013-07-31 06:52:26 +0000 @@ -319,7 +319,7 @@ (eq 'color ;; emacs/xemacs compatibility (if (fboundp 'frame-parameter) - (frame-parameter (selected-frame) 'display-type) + (frame-parameter nil 'display-type) (if (fboundp 'frame-property) (frame-property (selected-frame) 'display-type))))) === modified file 'lisp/files.el' --- lisp/files.el 2013-07-24 04:56:12 +0000 +++ lisp/files.el 2013-07-31 06:52:26 +0000 @@ -6479,7 +6479,7 @@ If emacsclient was started with a list of filenames to edit, then only these files will be asked to be saved." (interactive "P") - (if (frame-parameter (selected-frame) 'client) + (if (frame-parameter nil 'client) (server-save-buffers-kill-terminal arg) (save-buffers-kill-emacs arg))) === modified file 'lisp/net/browse-url.el' --- lisp/net/browse-url.el 2013-06-19 07:37:45 +0000 +++ lisp/net/browse-url.el 2013-07-31 06:52:26 +0000 @@ -816,8 +816,8 @@ ;; When connected to various displays, be careful to use the display of ;; the currently selected frame, rather than the original start display, ;; which may not even exist any more. - (if (stringp (frame-parameter (selected-frame) 'display)) - (setenv "DISPLAY" (frame-parameter (selected-frame) 'display))) + (if (stringp (frame-parameter nil 'display)) + (setenv "DISPLAY" (frame-parameter nil 'display))) (if (and (consp function) (not (functionp function))) ;; The `function' can be an alist; look down it for first match === modified file 'lisp/server.el' --- lisp/server.el 2013-02-13 04:31:09 +0000 +++ lisp/server.el 2013-07-31 06:52:26 +0000 @@ -1611,7 +1611,7 @@ If emacsclient was started with a list of filenames to edit, then only these files will be asked to be saved." - (let ((proc (frame-parameter (selected-frame) 'client))) + (let ((proc (frame-parameter nil 'client))) (cond ((eq proc 'nowait) ;; Nowait frames have no client buffer list. (if (cdr (frame-list)) === modified file 'lisp/textmodes/reftex-toc.el' --- lisp/textmodes/reftex-toc.el 2013-01-02 16:13:04 +0000 +++ lisp/textmodes/reftex-toc.el 2013-07-31 06:52:26 +0000 @@ -229,7 +229,7 @@ (car (reftex-where-am-I)))) (unsplittable (if (fboundp 'frame-property) (frame-property (selected-frame) 'unsplittable) - (frame-parameter (selected-frame) 'unsplittable))) + (frame-parameter nil 'unsplittable))) offset toc-window) (if (setq toc-window (get-buffer-window @@ -587,7 +587,7 @@ (let ((unsplittable (if (fboundp 'frame-property) (frame-property (selected-frame) 'unsplittable) - (frame-parameter (selected-frame) 'unsplittable))) + (frame-parameter nil 'unsplittable))) (reftex-rebuilding-toc t)) (if unsplittable (switch-to-buffer