aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2019-07-09 16:13:25 -0400
committerStefan Monnier2019-07-09 16:13:25 -0400
commit3078e6d2fb9b2acf785be11de465f6410acaa5fc (patch)
treeb64e4e1d395652888af94a38660654711f3e7e03 /src
parent2391a8e24f2ea1f80661ed29fcc64c02c7d8d95c (diff)
parent412139f1be7415791a0d964f95f319c86eded426 (diff)
downloademacs-3078e6d2fb9b2acf785be11de465f6410acaa5fc.tar.gz
emacs-3078e6d2fb9b2acf785be11de465f6410acaa5fc.zip
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into trunk
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c2
-rw-r--r--src/callproc.c3
-rw-r--r--src/chartab.c2
-rw-r--r--src/doc.c2
-rw-r--r--src/eval.c5
-rw-r--r--src/fns.c5
-rw-r--r--src/font.c10
-rw-r--r--src/font.h12
-rw-r--r--src/ftcrfont.c4
-rw-r--r--src/ftfont.c4
-rw-r--r--src/ftxfont.c4
-rw-r--r--src/lisp.h2
-rw-r--r--src/lread.c11
-rw-r--r--src/macfont.m4
-rw-r--r--src/nsfont.m4
-rw-r--r--src/pdumper.c8
-rw-r--r--src/xfont.c4
-rw-r--r--src/xftfont.c4
18 files changed, 51 insertions, 39 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 90817da5974..833176d4e90 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3019,7 +3019,7 @@ cleanup_vector (struct Lisp_Vector *vector)
3019 { 3019 {
3020 /* Attempt to catch subtle bugs like Bug#16140. */ 3020 /* Attempt to catch subtle bugs like Bug#16140. */
3021 eassert (valid_font_driver (drv)); 3021 eassert (valid_font_driver (drv));
3022 drv->close (font); 3022 drv->close_font (font);
3023 } 3023 }
3024 } 3024 }
3025 } 3025 }
diff --git a/src/callproc.c b/src/callproc.c
index 2596f9019e4..3c77238cfb6 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -219,7 +219,10 @@ static mode_t const default_output_mode = 0666;
219DEFUN ("call-process", Fcall_process, Scall_process, 1, MANY, 0, 219DEFUN ("call-process", Fcall_process, Scall_process, 1, MANY, 0,
220 doc: /* Call PROGRAM synchronously in separate process. 220 doc: /* Call PROGRAM synchronously in separate process.
221The remaining arguments are optional. 221The remaining arguments are optional.
222
222The program's input comes from file INFILE (nil means `/dev/null'). 223The program's input comes from file INFILE (nil means `/dev/null').
224If you want to make the input come from an Emacs buffer, use
225`call-process-region' instead.
223 226
224Third argument DESTINATION specifies how to handle program's output. 227Third argument DESTINATION specifies how to handle program's output.
225If DESTINATION is a buffer, or t that stands for the current buffer, 228If DESTINATION is a buffer, or t that stands for the current buffer,
diff --git a/src/chartab.c b/src/chartab.c
index bf8e34b2529..04205ac1032 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -1288,7 +1288,7 @@ uniprop_table (Lisp_Object prop)
1288 if (STRINGP (table)) 1288 if (STRINGP (table))
1289 { 1289 {
1290 AUTO_STRING (intl, "international/"); 1290 AUTO_STRING (intl, "international/");
1291 result = Fload (concat2 (intl, table), Qt, Qt, Qt, Qt); 1291 result = save_match_data_load (concat2 (intl, table), Qt, Qt, Qt, Qt);
1292 if (NILP (result)) 1292 if (NILP (result))
1293 return Qnil; 1293 return Qnil;
1294 table = XCDR (val); 1294 table = XCDR (val);
diff --git a/src/doc.c b/src/doc.c
index 8875360d6e6..8b663f0f249 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -302,7 +302,7 @@ reread_doc_file (Lisp_Object file)
302 if (NILP (file)) 302 if (NILP (file))
303 Fsnarf_documentation (Vdoc_file_name); 303 Fsnarf_documentation (Vdoc_file_name);
304 else 304 else
305 Fload (file, Qt, Qt, Qt, Qnil); 305 save_match_data_load (file, Qt, Qt, Qt, Qnil);
306 306
307 return 1; 307 return 1;
308} 308}
diff --git a/src/eval.c b/src/eval.c
index 8f569949036..02a6c3555a9 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2049,9 +2049,6 @@ it defines a macro. */)
2049 2049
2050 CHECK_SYMBOL (funname); 2050 CHECK_SYMBOL (funname);
2051 2051
2052 /* Preserve the match data. */
2053 record_unwind_save_match_data ();
2054
2055 /* If autoloading gets an error (which includes the error of failing 2052 /* If autoloading gets an error (which includes the error of failing
2056 to define the function being called), we use Vautoload_queue 2053 to define the function being called), we use Vautoload_queue
2057 to undo function definitions and `provide' calls made by 2054 to undo function definitions and `provide' calls made by
@@ -2067,7 +2064,7 @@ it defines a macro. */)
2067 so don't signal an error if autoloading fails. */ 2064 so don't signal an error if autoloading fails. */
2068 Lisp_Object ignore_errors 2065 Lisp_Object ignore_errors
2069 = (EQ (kind, Qt) || EQ (kind, Qmacro)) ? Qnil : macro_only; 2066 = (EQ (kind, Qt) || EQ (kind, Qmacro)) ? Qnil : macro_only;
2070 Fload (Fcar (Fcdr (fundef)), ignore_errors, Qt, Qnil, Qt); 2067 save_match_data_load (Fcar (Fcdr (fundef)), ignore_errors, Qt, Qnil, Qt);
2071 2068
2072 /* Once loading finishes, don't undo it. */ 2069 /* Once loading finishes, don't undo it. */
2073 Vautoload_queue = Qt; 2070 Vautoload_queue = Qt;
diff --git a/src/fns.c b/src/fns.c
index 77c0b15037f..11f5dddc858 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2984,8 +2984,9 @@ suppressed. */)
2984 Vautoload_queue = Qt; 2984 Vautoload_queue = Qt;
2985 2985
2986 /* Load the file. */ 2986 /* Load the file. */
2987 tem = Fload (NILP (filename) ? Fsymbol_name (feature) : filename, 2987 tem = save_match_data_load
2988 noerror, Qt, Qnil, (NILP (filename) ? Qt : Qnil)); 2988 (NILP (filename) ? Fsymbol_name (feature) : filename,
2989 noerror, Qt, Qnil, (NILP (filename) ? Qt : Qnil));
2989 2990
2990 /* If load failed entirely, return nil. */ 2991 /* If load failed entirely, return nil. */
2991 if (NILP (tem)) 2992 if (NILP (tem))
diff --git a/src/font.c b/src/font.c
index 457f3f99583..ce85e0bb4ad 100644
--- a/src/font.c
+++ b/src/font.c
@@ -44,10 +44,6 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
44#include TERM_HEADER 44#include TERM_HEADER
45#endif /* HAVE_WINDOW_SYSTEM */ 45#endif /* HAVE_WINDOW_SYSTEM */
46 46
47/* Avoid macro definition of `open' in generated lib/fcntl.h to mess up
48 use of it as a struct member. */
49#undef open
50
51#define DEFAULT_ENCODING Qiso8859_1 47#define DEFAULT_ENCODING Qiso8859_1
52 48
53/* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */ 49/* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
@@ -2646,7 +2642,7 @@ font_clear_cache (struct frame *f, Lisp_Object cache,
2646 if (! NILP (AREF (val, FONT_TYPE_INDEX))) 2642 if (! NILP (AREF (val, FONT_TYPE_INDEX)))
2647 { 2643 {
2648 eassert (font && driver == font->driver); 2644 eassert (font && driver == font->driver);
2649 driver->close (font); 2645 driver->close_font (font);
2650 } 2646 }
2651 } 2647 }
2652 if (driver->free_entity) 2648 if (driver->free_entity)
@@ -2906,7 +2902,7 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size)
2906 width and height. */ 2902 width and height. */
2907 for (psize = pixel_size; ; psize++) 2903 for (psize = pixel_size; ; psize++)
2908 { 2904 {
2909 font_object = driver_list->driver->open (f, entity, psize); 2905 font_object = driver_list->driver->open_font (f, entity, psize);
2910 if (NILP (font_object)) 2906 if (NILP (font_object))
2911 return Qnil; 2907 return Qnil;
2912 font = XFONT_OBJECT (font_object); 2908 font = XFONT_OBJECT (font_object);
@@ -2966,7 +2962,7 @@ font_close_object (struct frame *f, Lisp_Object font_object)
2966 /* Already closed. */ 2962 /* Already closed. */
2967 return; 2963 return;
2968 FONT_ADD_LOG ("close", font_object, Qnil); 2964 FONT_ADD_LOG ("close", font_object, Qnil);
2969 font->driver->close (font); 2965 font->driver->close_font (font);
2970#ifdef HAVE_WINDOW_SYSTEM 2966#ifdef HAVE_WINDOW_SYSTEM
2971 eassert (FRAME_DISPLAY_INFO (f)->n_fonts); 2967 eassert (FRAME_DISPLAY_INFO (f)->n_fonts);
2972 FRAME_DISPLAY_INFO (f)->n_fonts--; 2968 FRAME_DISPLAY_INFO (f)->n_fonts--;
diff --git a/src/font.h b/src/font.h
index 3387878ad30..9d4b2d81c6f 100644
--- a/src/font.h
+++ b/src/font.h
@@ -58,7 +58,7 @@ INLINE_HEADER_BEGIN
58 Lisp object encapsulating "struct font". This corresponds to 58 Lisp object encapsulating "struct font". This corresponds to
59 an opened font. 59 an opened font.
60 60
61 Note: Only the method `open' of a font-driver can create this 61 Note: Only the method `open_font' of a font-driver can create this
62 object, and it should never be modified by Lisp. */ 62 object, and it should never be modified by Lisp. */
63 63
64 64
@@ -594,9 +594,9 @@ struct font_driver
594 :weight, :slant, :width, :size, :dpi, :spacing, :avgwidth. If 594 :weight, :slant, :width, :size, :dpi, :spacing, :avgwidth. If
595 the font is scalable, :size and :avgwidth must be 0. 595 the font is scalable, :size and :avgwidth must be 0.
596 596
597 The `open' method of the same font-backend is called with one of 597 The `open_font' method of the same font-backend is called with one of
598 the returned font-entities. If the backend needs additional 598 the returned font-entities. If the backend needs additional
599 information to be used in `open' method, this method can add any 599 information to be used in `open_font' method, this method can add any
600 Lispy value using the property :font-entity to the entities. 600 Lispy value using the property :font-entity to the entities.
601 601
602 This and the following `match' are the only APIs that allocate 602 This and the following `match' are the only APIs that allocate
@@ -623,11 +623,11 @@ struct font_driver
623 623
624 /* Open a font specified by FONT_ENTITY on frame F. If the font is 624 /* Open a font specified by FONT_ENTITY on frame F. If the font is
625 scalable, open it with PIXEL_SIZE. */ 625 scalable, open it with PIXEL_SIZE. */
626 Lisp_Object (*open) (struct frame *f, Lisp_Object font_entity, 626 Lisp_Object (*open_font) (struct frame *f, Lisp_Object font_entity,
627 int pixel_size); 627 int pixel_size);
628 628
629 /* Close FONT. NOTE: this can be called by GC. */ 629 /* Close FONT. NOTE: this can be called by GC. */
630 void (*close) (struct font *font); 630 void (*close_font) (struct font *font);
631 631
632 /* Prepare FACE for displaying characters by FONT on frame F by 632 /* Prepare FACE for displaying characters by FONT on frame F by
633 storing some data in FACE->extra. */ 633 storing some data in FACE->extra. */
diff --git a/src/ftcrfont.c b/src/ftcrfont.c
index 93786212160..f0c7cbb8c86 100644
--- a/src/ftcrfont.c
+++ b/src/ftcrfont.c
@@ -576,8 +576,8 @@ struct font_driver const ftcrfont_driver =
576 .list = ftcrfont_list, 576 .list = ftcrfont_list,
577 .match = ftcrfont_match, 577 .match = ftcrfont_match,
578 .list_family = ftfont_list_family, 578 .list_family = ftfont_list_family,
579 .open = ftcrfont_open, 579 .open_font = ftcrfont_open,
580 .close = ftcrfont_close, 580 .close_font = ftcrfont_close,
581 .has_char = ftcrfont_has_char, 581 .has_char = ftcrfont_has_char,
582 .encode_char = ftcrfont_encode_char, 582 .encode_char = ftcrfont_encode_char,
583 .text_extents = ftcrfont_text_extents, 583 .text_extents = ftcrfont_text_extents,
diff --git a/src/ftfont.c b/src/ftfont.c
index a80e2fb5c4b..16b18de6867 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -3039,8 +3039,8 @@ static struct font_driver const ftfont_driver =
3039 .list = ftfont_list, 3039 .list = ftfont_list,
3040 .match = ftfont_match, 3040 .match = ftfont_match,
3041 .list_family = ftfont_list_family, 3041 .list_family = ftfont_list_family,
3042 .open = ftfont_open, 3042 .open_font = ftfont_open,
3043 .close = ftfont_close, 3043 .close_font = ftfont_close,
3044 .has_char = ftfont_has_char, 3044 .has_char = ftfont_has_char,
3045 .encode_char = ftfont_encode_char, 3045 .encode_char = ftfont_encode_char,
3046 .text_extents = ftfont_text_extents, 3046 .text_extents = ftfont_text_extents,
diff --git a/src/ftxfont.c b/src/ftxfont.c
index ae7d1a5a9b5..1d1bd2c4581 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -335,8 +335,8 @@ struct font_driver const ftxfont_driver =
335 .list = ftxfont_list, 335 .list = ftxfont_list,
336 .match = ftxfont_match, 336 .match = ftxfont_match,
337 .list_family = ftfont_list_family, 337 .list_family = ftfont_list_family,
338 .open = ftxfont_open, 338 .open_font = ftxfont_open,
339 .close = ftxfont_close, 339 .close_font = ftxfont_close,
340 .has_char = ftfont_has_char, 340 .has_char = ftfont_has_char,
341 .encode_char = ftfont_encode_char, 341 .encode_char = ftfont_encode_char,
342 .text_extents = ftfont_text_extents, 342 .text_extents = ftfont_text_extents,
diff --git a/src/lisp.h b/src/lisp.h
index 8acf63fe227..fa57cad8a60 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4019,6 +4019,8 @@ LOADHIST_ATTACH (Lisp_Object x)
4019 if (initialized) 4019 if (initialized)
4020 Vcurrent_load_list = Fcons (x, Vcurrent_load_list); 4020 Vcurrent_load_list = Fcons (x, Vcurrent_load_list);
4021} 4021}
4022extern Lisp_Object save_match_data_load (Lisp_Object, Lisp_Object, Lisp_Object,
4023 Lisp_Object, Lisp_Object);
4022extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, 4024extern int openp (Lisp_Object, Lisp_Object, Lisp_Object,
4023 Lisp_Object *, Lisp_Object, bool); 4025 Lisp_Object *, Lisp_Object, bool);
4024enum { S2N_IGNORE_TRAILING = 1 }; 4026enum { S2N_IGNORE_TRAILING = 1 };
diff --git a/src/lread.c b/src/lread.c
index e06eafcf6cf..3152fcf867d 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1508,6 +1508,17 @@ Return t if the file exists and loads successfully. */)
1508 1508
1509 return Qt; 1509 return Qt;
1510} 1510}
1511
1512Lisp_Object
1513save_match_data_load (Lisp_Object file, Lisp_Object noerror,
1514 Lisp_Object nomessage, Lisp_Object nosuffix,
1515 Lisp_Object must_suffix)
1516{
1517 ptrdiff_t count = SPECPDL_INDEX ();
1518 record_unwind_save_match_data ();
1519 Lisp_Object result = Fload (file, noerror, nomessage, nosuffix, must_suffix);
1520 return unbind_to (count, result);
1521}
1511 1522
1512static bool 1523static bool
1513complete_filename_p (Lisp_Object pathname) 1524complete_filename_p (Lisp_Object pathname)
diff --git a/src/macfont.m b/src/macfont.m
index 2b7f963fd61..301951f34a5 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -1663,8 +1663,8 @@ static struct font_driver macfont_driver =
1663 .match = macfont_match, 1663 .match = macfont_match,
1664 .list_family = macfont_list_family, 1664 .list_family = macfont_list_family,
1665 .free_entity = macfont_free_entity, 1665 .free_entity = macfont_free_entity,
1666 .open = macfont_open, 1666 .open_font = macfont_open,
1667 .close = macfont_close, 1667 .close_font = macfont_close,
1668 .has_char = macfont_has_char, 1668 .has_char = macfont_has_char,
1669 .encode_char = macfont_encode_char, 1669 .encode_char = macfont_encode_char,
1670 .text_extents = macfont_text_extents, 1670 .text_extents = macfont_text_extents,
diff --git a/src/nsfont.m b/src/nsfont.m
index e22a954e63f..7a40d672b5d 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -1491,8 +1491,8 @@ struct font_driver const nsfont_driver =
1491 .list = nsfont_list, 1491 .list = nsfont_list,
1492 .match = nsfont_match, 1492 .match = nsfont_match,
1493 .list_family = nsfont_list_family, 1493 .list_family = nsfont_list_family,
1494 .open = nsfont_open, 1494 .open_font = nsfont_open,
1495 .close = nsfont_close, 1495 .close_font = nsfont_close,
1496 .has_char = nsfont_has_char, 1496 .has_char = nsfont_has_char,
1497 .encode_char = nsfont_encode_char, 1497 .encode_char = nsfont_encode_char,
1498 .text_extents = nsfont_text_extents, 1498 .text_extents = nsfont_text_extents,
diff --git a/src/pdumper.c b/src/pdumper.c
index 8b630d221b1..7d29d3c0c83 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -4101,7 +4101,8 @@ types. */)
4101 ctx->header.magic[0] = '!'; /* Note that dump is incomplete. */ 4101 ctx->header.magic[0] = '!'; /* Note that dump is incomplete. */
4102 4102
4103 verify (sizeof (fingerprint) == sizeof (ctx->header.fingerprint)); 4103 verify (sizeof (fingerprint) == sizeof (ctx->header.fingerprint));
4104 memcpy (ctx->header.fingerprint, fingerprint, sizeof (fingerprint)); 4104 memcpy (ctx->header.fingerprint, (unsigned char *) fingerprint,
4105 sizeof (fingerprint));
4105 4106
4106 const dump_off header_start = ctx->offset; 4107 const dump_off header_start = ctx->offset;
4107 dump_fingerprint ("dumping fingerprint", ctx->header.fingerprint); 4108 dump_fingerprint ("dumping fingerprint", ctx->header.fingerprint);
@@ -5359,9 +5360,10 @@ pdumper_load (const char *dump_filename)
5359 5360
5360 err = PDUMPER_LOAD_VERSION_MISMATCH; 5361 err = PDUMPER_LOAD_VERSION_MISMATCH;
5361 verify (sizeof (header->fingerprint) == sizeof (fingerprint)); 5362 verify (sizeof (header->fingerprint) == sizeof (fingerprint));
5362 if (memcmp (header->fingerprint, fingerprint, sizeof (fingerprint)) != 0) 5363 if (memcmp (header->fingerprint, (unsigned char *) fingerprint,
5364 sizeof (fingerprint)) != 0)
5363 { 5365 {
5364 dump_fingerprint ("desired fingerprint", fingerprint); 5366 dump_fingerprint ("desired fingerprint", (unsigned char *) fingerprint);
5365 dump_fingerprint ("found fingerprint", header->fingerprint); 5367 dump_fingerprint ("found fingerprint", header->fingerprint);
5366 goto out; 5368 goto out;
5367 } 5369 }
diff --git a/src/xfont.c b/src/xfont.c
index 9a8417b12d4..e7a0cb2277d 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -1106,8 +1106,8 @@ struct font_driver const xfont_driver =
1106 .list = xfont_list, 1106 .list = xfont_list,
1107 .match = xfont_match, 1107 .match = xfont_match,
1108 .list_family = xfont_list_family, 1108 .list_family = xfont_list_family,
1109 .open = xfont_open, 1109 .open_font = xfont_open,
1110 .close = xfont_close, 1110 .close_font = xfont_close,
1111 .prepare_face = xfont_prepare_face, 1111 .prepare_face = xfont_prepare_face,
1112 .has_char = xfont_has_char, 1112 .has_char = xfont_has_char,
1113 .encode_char = xfont_encode_char, 1113 .encode_char = xfont_encode_char,
diff --git a/src/xftfont.c b/src/xftfont.c
index 74add58007d..e0035808172 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -643,8 +643,8 @@ struct font_driver const xftfont_driver =
643 .list = xftfont_list, 643 .list = xftfont_list,
644 .match = xftfont_match, 644 .match = xftfont_match,
645 .list_family = ftfont_list_family, 645 .list_family = ftfont_list_family,
646 .open = xftfont_open, 646 .open_font = xftfont_open,
647 .close = xftfont_close, 647 .close_font = xftfont_close,
648 .prepare_face = xftfont_prepare_face, 648 .prepare_face = xftfont_prepare_face,
649 .done_face = xftfont_done_face, 649 .done_face = xftfont_done_face,
650 .has_char = xftfont_has_char, 650 .has_char = xftfont_has_char,