aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris2014-08-10 17:59:34 -0700
committerGlenn Morris2014-08-10 17:59:34 -0700
commitc7367d2de3343e56171c4fe6d439a3ed5f40d06c (patch)
tree54fe9166f6b4320d9518bbac11e2d575a9fda7c2 /src
parent6b7d077506304f440d311fa7b29d210b7a3e121c (diff)
parentf314e84fce8b394da20aa1d69121c74fb34f9a1e (diff)
downloademacs-c7367d2de3343e56171c4fe6d439a3ed5f40d06c.tar.gz
emacs-c7367d2de3343e56171c4fe6d439a3ed5f40d06c.zip
Merge from emacs-24; up to 2014-06-28T23:35:17Z!rgm@gnu.org
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog30
-rw-r--r--src/buffer.c3
-rw-r--r--src/coding.c6
-rw-r--r--src/fileio.c36
-rw-r--r--src/fontset.c4
-rw-r--r--src/window.c64
6 files changed, 107 insertions, 36 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0bc8a712112..aa2f95907eb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,33 @@
12014-08-11 Glenn Morris <rgm@gnu.org>
2
3 * fileio.c: Revert 2013-01-31 change, which chose coding system for
4 writing before backing up, since it causes a more serious problem
5 than the one it solves. (Closes Bug#18141, reopens Bug#13522.)
6 (choose_write_coding_system): No longer callable from Lisp.
7 Move last piece back here from Fwrite_region.
8 (Fwrite_region, syms_of_fileio): Update for above changes.
9
102014-08-11 Martin Rudalics <rudalics@gmx.at>
11
12 * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
13 (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
14 (Fwindow_new_pixel, Fset_window_new_pixel)
15 (Fset_window_new_total, Fset_window_new_normal)
16 (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
17 See also:
18 http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
19
202014-08-11 Eli Zaretskii <eliz@gnu.org>
21
22 * fontset.c (Finternal_char_font): Recompute basic faces if the
23 frame's face cache was cleared. (Bug#18162)
24
252014-08-11 Dmitry Antipov <dmantipov@yandex.ru>
26
27 Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
28 * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
29 base buffer's undo list.
30
12014-08-10 Reuben Thomas <rrt@sc3d.org> 312014-08-10 Reuben Thomas <rrt@sc3d.org>
2 32
3 Fix a couple of recent inadvertent breaks of the MSDOS port. 33 Fix a couple of recent inadvertent breaks of the MSDOS port.
diff --git a/src/buffer.c b/src/buffer.c
index 1973a93a57d..d2c7729d1c2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -826,6 +826,9 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
826 set_string_intervals (name, NULL); 826 set_string_intervals (name, NULL);
827 bset_name (b, name); 827 bset_name (b, name);
828 828
829 /* An indirect buffer shares undo list of its base (Bug#18180). */
830 bset_undo_list (b, BVAR (b->base_buffer, undo_list));
831
829 reset_buffer (b); 832 reset_buffer (b);
830 reset_buffer_local_variables (b, 1); 833 reset_buffer_local_variables (b, 1);
831 834
diff --git a/src/coding.c b/src/coding.c
index 523a6bf0f27..8b620af8695 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1190,8 +1190,8 @@ alloc_destination (struct coding_system *coding, ptrdiff_t nbytes,
1190#define UTF_8_BOM_2 0xBB 1190#define UTF_8_BOM_2 0xBB
1191#define UTF_8_BOM_3 0xBF 1191#define UTF_8_BOM_3 0xBF
1192 1192
1193/* Unlike the other detect_coding_XXX, this function counts number of 1193/* Unlike the other detect_coding_XXX, this function counts the number
1194 characters and check EOL format. */ 1194 of characters and checks the EOL format. */
1195 1195
1196static bool 1196static bool
1197detect_coding_utf_8 (struct coding_system *coding, 1197detect_coding_utf_8 (struct coding_system *coding,
@@ -11265,7 +11265,7 @@ decode text as usual. */);
11265 11265
11266 DEFVAR_BOOL ("disable-ascii-optimization", disable_ascii_optimization, 11266 DEFVAR_BOOL ("disable-ascii-optimization", disable_ascii_optimization,
11267 doc: /* If non-nil, Emacs does not optimize code decoder for ASCII files. 11267 doc: /* If non-nil, Emacs does not optimize code decoder for ASCII files.
11268Internal use only. Removed after the experimental optimizer gets stable. */); 11268Internal use only. Remove after the experimental optimizer becomes stable. */);
11269 disable_ascii_optimization = 0; 11269 disable_ascii_optimization = 0;
11270 11270
11271 DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input, 11271 DEFVAR_LISP ("translation-table-for-input", Vtranslation_table_for_input,
diff --git a/src/fileio.c b/src/fileio.c
index f0bd75b170e..d9c7397c2de 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -323,7 +323,6 @@ static Lisp_Object Qfile_acl;
323static Lisp_Object Qset_file_acl; 323static Lisp_Object Qset_file_acl;
324static Lisp_Object Qfile_newer_than_file_p; 324static Lisp_Object Qfile_newer_than_file_p;
325Lisp_Object Qinsert_file_contents; 325Lisp_Object Qinsert_file_contents;
326static Lisp_Object Qchoose_write_coding_system;
327Lisp_Object Qwrite_region; 326Lisp_Object Qwrite_region;
328static Lisp_Object Qverify_visited_file_modtime; 327static Lisp_Object Qverify_visited_file_modtime;
329static Lisp_Object Qset_visited_file_modtime; 328static Lisp_Object Qset_visited_file_modtime;
@@ -4525,24 +4524,14 @@ build_annotations_unwind (Lisp_Object arg)
4525 4524
4526/* Decide the coding-system to encode the data with. */ 4525/* Decide the coding-system to encode the data with. */
4527 4526
4528DEFUN ("choose-write-coding-system", Fchoose_write_coding_system, 4527static Lisp_Object
4529 Schoose_write_coding_system, 3, 6, 0, 4528choose_write_coding_system (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
4530 doc: /* Choose the coding system for writing a file. 4529 Lisp_Object append, Lisp_Object visit, Lisp_Object lockname,
4531Arguments are as for `write-region'. 4530 struct coding_system *coding)
4532This function is for internal use only. It may prompt the user. */ )
4533 (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
4534 Lisp_Object append, Lisp_Object visit, Lisp_Object lockname)
4535{ 4531{
4536 Lisp_Object val; 4532 Lisp_Object val;
4537 Lisp_Object eol_parent = Qnil; 4533 Lisp_Object eol_parent = Qnil;
4538 4534
4539 /* Mimic write-region behavior. */
4540 if (NILP (start))
4541 {
4542 XSETFASTINT (start, BEGV);
4543 XSETFASTINT (end, ZV);
4544 }
4545
4546 if (auto_saving 4535 if (auto_saving
4547 && NILP (Fstring_equal (BVAR (current_buffer, filename), 4536 && NILP (Fstring_equal (BVAR (current_buffer, filename),
4548 BVAR (current_buffer, auto_save_file_name)))) 4537 BVAR (current_buffer, auto_save_file_name))))
@@ -4635,6 +4624,10 @@ This function is for internal use only. It may prompt the user. */ )
4635 } 4624 }
4636 4625
4637 val = coding_inherit_eol_type (val, eol_parent); 4626 val = coding_inherit_eol_type (val, eol_parent);
4627 setup_coding_system (val, coding);
4628
4629 if (!STRINGP (start) && !NILP (BVAR (current_buffer, selective_display)))
4630 coding->mode |= CODING_MODE_SELECTIVE_DISPLAY;
4638 return val; 4631 return val;
4639} 4632}
4640 4633
@@ -4803,14 +4796,9 @@ write_region (Lisp_Object start, Lisp_Object end, Lisp_Object filename,
4803 We used to make this choice before calling build_annotations, but that 4796 We used to make this choice before calling build_annotations, but that
4804 leads to problems when a write-annotate-function takes care of 4797 leads to problems when a write-annotate-function takes care of
4805 unsavable chars (as was the case with X-Symbol). */ 4798 unsavable chars (as was the case with X-Symbol). */
4806 Vlast_coding_system_used = 4799 Vlast_coding_system_used
4807 Fchoose_write_coding_system (start, end, filename, 4800 = choose_write_coding_system (start, end, filename,
4808 append, visit, lockname); 4801 append, visit, lockname, &coding);
4809
4810 setup_coding_system (Vlast_coding_system_used, &coding);
4811
4812 if (!STRINGP (start) && !NILP (BVAR (current_buffer, selective_display)))
4813 coding.mode |= CODING_MODE_SELECTIVE_DISPLAY;
4814 4802
4815 if (open_and_close_file && !auto_saving) 4803 if (open_and_close_file && !auto_saving)
4816 { 4804 {
@@ -5829,7 +5817,6 @@ syms_of_fileio (void)
5829 DEFSYM (Qset_file_acl, "set-file-acl"); 5817 DEFSYM (Qset_file_acl, "set-file-acl");
5830 DEFSYM (Qfile_newer_than_file_p, "file-newer-than-file-p"); 5818 DEFSYM (Qfile_newer_than_file_p, "file-newer-than-file-p");
5831 DEFSYM (Qinsert_file_contents, "insert-file-contents"); 5819 DEFSYM (Qinsert_file_contents, "insert-file-contents");
5832 DEFSYM (Qchoose_write_coding_system, "choose-write-coding-system");
5833 DEFSYM (Qwrite_region, "write-region"); 5820 DEFSYM (Qwrite_region, "write-region");
5834 DEFSYM (Qverify_visited_file_modtime, "verify-visited-file-modtime"); 5821 DEFSYM (Qverify_visited_file_modtime, "verify-visited-file-modtime");
5835 DEFSYM (Qset_visited_file_modtime, "set-visited-file-modtime"); 5822 DEFSYM (Qset_visited_file_modtime, "set-visited-file-modtime");
@@ -6068,7 +6055,6 @@ This includes interactive calls to `delete-file' and
6068 defsubr (&Sdefault_file_modes); 6055 defsubr (&Sdefault_file_modes);
6069 defsubr (&Sfile_newer_than_file_p); 6056 defsubr (&Sfile_newer_than_file_p);
6070 defsubr (&Sinsert_file_contents); 6057 defsubr (&Sinsert_file_contents);
6071 defsubr (&Schoose_write_coding_system);
6072 defsubr (&Swrite_region); 6058 defsubr (&Swrite_region);
6073 defsubr (&Scar_less_than_car); 6059 defsubr (&Scar_less_than_car);
6074 defsubr (&Sverify_visited_file_modtime); 6060 defsubr (&Sverify_visited_file_modtime);
diff --git a/src/fontset.c b/src/fontset.c
index e34719e5cdf..d99a3bcb7ef 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1843,6 +1843,10 @@ DEFUN ("internal-char-font", Finternal_char_font, Sinternal_char_font, 1, 2, 0,
1843 return Qnil; 1843 return Qnil;
1844 if (!FRAME_WINDOW_P (f)) 1844 if (!FRAME_WINDOW_P (f))
1845 return Qnil; 1845 return Qnil;
1846 /* We need the basic faces to be valid below, so recompute them if
1847 some code just happened to clear the face cache. */
1848 if (FRAME_FACE_CACHE (f)->used == 0)
1849 recompute_basic_faces (f);
1846 face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil); 1850 face_id = FACE_FOR_CHAR (f, FACE_FROM_ID (f, face_id), c, pos, Qnil);
1847 face = FACE_FROM_ID (f, face_id); 1851 face = FACE_FROM_ID (f, face_id);
1848 if (face->font) 1852 if (face->font)
diff --git a/src/window.c b/src/window.c
index 049c0d122a3..ac685f6867f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -329,7 +329,7 @@ DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0,
329DEFUN ("window-valid-p", Fwindow_valid_p, Swindow_valid_p, 1, 1, 0, 329DEFUN ("window-valid-p", Fwindow_valid_p, Swindow_valid_p, 1, 1, 0,
330 doc: /* Return t if OBJECT is a valid window and nil otherwise. 330 doc: /* Return t if OBJECT is a valid window and nil otherwise.
331A valid window is either a window that displays a buffer or an internal 331A valid window is either a window that displays a buffer or an internal
332window. Deleted windows are not live. */) 332window. Windows that have been deleted are not valid. */)
333 (Lisp_Object object) 333 (Lisp_Object object)
334{ 334{
335 return WINDOW_VALID_P (object) ? Qt : Qnil; 335 return WINDOW_VALID_P (object) ? Qt : Qnil;
@@ -810,7 +810,12 @@ total width of WINDOW. */)
810 810
811DEFUN ("window-new-total", Fwindow_new_total, Swindow_new_total, 0, 1, 0, 811DEFUN ("window-new-total", Fwindow_new_total, Swindow_new_total, 0, 1, 0,
812 doc: /* Return the new total size of window WINDOW. 812 doc: /* Return the new total size of window WINDOW.
813WINDOW must be a valid window and defaults to the selected one. */) 813WINDOW must be a valid window and defaults to the selected one.
814
815The new total size of WINDOW is the value set by the last call of
816`set-window-new-total' for WINDOW. If it is valid, it will be shortly
817installed as WINDOW's total height (see `window-total-height') or total
818width (see `window-total-width'). */)
814 (Lisp_Object window) 819 (Lisp_Object window)
815{ 820{
816 return decode_valid_window (window)->new_total; 821 return decode_valid_window (window)->new_total;
@@ -819,7 +824,25 @@ WINDOW must be a valid window and defaults to the selected one. */)
819DEFUN ("window-normal-size", Fwindow_normal_size, Swindow_normal_size, 0, 2, 0, 824DEFUN ("window-normal-size", Fwindow_normal_size, Swindow_normal_size, 0, 2, 0,
820 doc: /* Return the normal height of window WINDOW. 825 doc: /* Return the normal height of window WINDOW.
821WINDOW must be a valid window and defaults to the selected one. 826WINDOW must be a valid window and defaults to the selected one.
822If HORIZONTAL is non-nil, return the normal width of WINDOW. */) 827If HORIZONTAL is non-nil, return the normal width of WINDOW.
828
829The normal height of a frame's root window or a window that is
830horizontally combined (a window that has a left or right sibling) is
8311.0. The normal height of a window that is vertically combined (has a
832sibling above or below) is the fraction of the window's height with
833respect to its parent. The sum of the normal heights of all windows in a
834vertical combination equals 1.0.
835
836Similarly, the normal width of a frame's root window or a window that is
837vertically combined equals 1.0. The normal width of a window that is
838horizontally combined is the fraction of the window's width with respect
839to its parent. The sum of the normal widths of all windows in a
840horizontal combination equals 1.0.
841
842The normal sizes of windows are used to restore the proportional sizes
843of windows after they have been shrunk to their minimum sizes; for
844example when a frame is temporarily made very small and afterwards gets
845re-enlarged to its previous size. */)
823 (Lisp_Object window, Lisp_Object horizontal) 846 (Lisp_Object window, Lisp_Object horizontal)
824{ 847{
825 struct window *w = decode_valid_window (window); 848 struct window *w = decode_valid_window (window);
@@ -829,7 +852,11 @@ If HORIZONTAL is non-nil, return the normal width of WINDOW. */)
829 852
830DEFUN ("window-new-normal", Fwindow_new_normal, Swindow_new_normal, 0, 1, 0, 853DEFUN ("window-new-normal", Fwindow_new_normal, Swindow_new_normal, 0, 1, 0,
831 doc: /* Return new normal size of window WINDOW. 854 doc: /* Return new normal size of window WINDOW.
832WINDOW must be a valid window and defaults to the selected one. */) 855WINDOW must be a valid window and defaults to the selected one.
856
857The new normal size of WINDOW is the value set by the last call of
858`set-window-new-normal' for WINDOW. If valid, it will be shortly
859installed as WINDOW's normal size (see `window-normal-size'). */)
833 (Lisp_Object window) 860 (Lisp_Object window)
834{ 861{
835 return decode_valid_window (window)->new_normal; 862 return decode_valid_window (window)->new_normal;
@@ -837,7 +864,12 @@ WINDOW must be a valid window and defaults to the selected one. */)
837 864
838DEFUN ("window-new-pixel", Fwindow_new_pixel, Swindow_new_pixel, 0, 1, 0, 865DEFUN ("window-new-pixel", Fwindow_new_pixel, Swindow_new_pixel, 0, 1, 0,
839 doc: /* Return new pixel size of window WINDOW. 866 doc: /* Return new pixel size of window WINDOW.
840WINDOW must be a valid window and defaults to the selected one. */) 867WINDOW must be a valid window and defaults to the selected one.
868
869The new pixel size of WINDOW is the value set by the last call of
870`set-window-new-pixel' for WINDOW. If it is valid, it will be shortly
871installed as WINDOW's pixel height (see `window-pixel-height') or pixel
872width (see `window-pixel-width'). */)
841 (Lisp_Object window) 873 (Lisp_Object window)
842{ 874{
843 return decode_valid_window (window)->new_pixel; 875 return decode_valid_window (window)->new_pixel;
@@ -3705,6 +3737,10 @@ Return SIZE.
3705Optional argument ADD non-nil means add SIZE to the new pixel size of 3737Optional argument ADD non-nil means add SIZE to the new pixel size of
3706WINDOW and return the sum. 3738WINDOW and return the sum.
3707 3739
3740The new pixel size of WINDOW, if valid, will be shortly installed as
3741WINDOW's pixel height (see `window-pixel-height') or pixel width (see
3742`window-pixel-width').
3743
3708Note: This function does not operate on any child windows of WINDOW. */) 3744Note: This function does not operate on any child windows of WINDOW. */)
3709 (Lisp_Object window, Lisp_Object size, Lisp_Object add) 3745 (Lisp_Object window, Lisp_Object size, Lisp_Object add)
3710{ 3746{
@@ -3729,6 +3765,10 @@ Return SIZE.
3729Optional argument ADD non-nil means add SIZE to the new total size of 3765Optional argument ADD non-nil means add SIZE to the new total size of
3730WINDOW and return the sum. 3766WINDOW and return the sum.
3731 3767
3768The new total size of WINDOW, if valid, will be shortly installed as
3769WINDOW's total height (see `window-total-height') or total width (see
3770`window-total-width').
3771
3732Note: This function does not operate on any child windows of WINDOW. */) 3772Note: This function does not operate on any child windows of WINDOW. */)
3733 (Lisp_Object window, Lisp_Object size, Lisp_Object add) 3773 (Lisp_Object window, Lisp_Object size, Lisp_Object add)
3734{ 3774{
@@ -3748,6 +3788,9 @@ DEFUN ("set-window-new-normal", Fset_window_new_normal, Sset_window_new_normal,
3748WINDOW must be a valid window and defaults to the selected one. 3788WINDOW must be a valid window and defaults to the selected one.
3749Return SIZE. 3789Return SIZE.
3750 3790
3791The new normal size of WINDOW, if valid, will be shortly installed as
3792WINDOW's normal size (see `window-normal-size').
3793
3751Note: This function does not operate on any child windows of WINDOW. */) 3794Note: This function does not operate on any child windows of WINDOW. */)
3752 (Lisp_Object window, Lisp_Object size) 3795 (Lisp_Object window, Lisp_Object size)
3753{ 3796{
@@ -4012,9 +4055,14 @@ If FRAME is omitted or nil, it defaults to the selected frame.
4012Optional argument HORIZONTAL omitted or nil means apply requested 4055Optional argument HORIZONTAL omitted or nil means apply requested
4013height values. HORIZONTAL non-nil means apply requested width values. 4056height values. HORIZONTAL non-nil means apply requested width values.
4014 4057
4015This function checks whether the requested values sum up to a valid 4058The requested size values are those set by `set-window-new-pixel' and
4016window layout, recursively assigns the new sizes of all child windows 4059`set-window-new-normal'. This function checks whether the requested
4017and calculates and assigns the new start positions of these windows. 4060values sum up to a valid window layout, recursively assigns the new
4061sizes of all child windows and calculates and assigns the new start
4062positions of these windows.
4063
4064Return t if the requested values have been applied correctly, nil
4065otherwise.
4018 4066
4019Note: This function does not check any of `window-fixed-size-p', 4067Note: This function does not check any of `window-fixed-size-p',
4020`window-min-height' or `window-min-width'. All these checks have to 4068`window-min-height' or `window-min-width'. All these checks have to