From bf90e9ac7caec15b0f111e0bb67e311233f3a795 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 4 Jan 2015 13:20:36 -0800 Subject: [PATCH] 'temacs -nw' should not call missing functions Without this patch, "temacs -nw" fails with the diagnostic "emacs: Symbol's function definition is void: frame-windows-min-size" and messes up the tty's state. * lib-src/make-docfile.c (write_globals): Declare Fframe_windows_min_size with ATTRIBUTE_CONST, too. Sort. * src/frame.c (Fframe_windows_min_size): New placeholder function. (syms_of_frame): Define it. * src/window.c (Fwindow__sanitize_window_sizes): New placeholder. (syms_of_window): Define it. --- lib-src/ChangeLog | 4 ++++ lib-src/make-docfile.c | 5 +++-- src/ChangeLog | 9 +++++++++ src/frame.c | 17 +++++++++++++++-- src/window.c | 9 +++++++++ 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 5d17324fdce..acbbd3a02df 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,5 +1,9 @@ 2015-01-04 Paul Eggert + 'temacs -nw' should not call missing functions + * make-docfile.c (write_globals): + Declare Fframe_windows_min_size with ATTRIBUTE_CONST, too. Sort. + Less 'make' chatter for lib-src * Makefile.in (blessmail): Less 'make' chatter here. diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index 78becac6c8a..f74b3d516d1 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -658,9 +658,10 @@ write_globals (void) /* It would be nice to have a cleaner way to deal with these special hacks, too. */ if (strcmp (globals[i].name, "Fbyteorder") == 0 - || strcmp (globals[i].name, "Ftool_bar_height") == 0 + || strcmp (globals[i].name, "Fframe_windows_min_size") == 0 + || strcmp (globals[i].name, "Fidentity") == 0 || strcmp (globals[i].name, "Fmax_char") == 0 - || strcmp (globals[i].name, "Fidentity") == 0) + || strcmp (globals[i].name, "Ftool_bar_height") == 0) fputs (" ATTRIBUTE_CONST", stdout); puts (";"); diff --git a/src/ChangeLog b/src/ChangeLog index 592a7f1e3bf..8cf269680de 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,14 @@ 2015-01-04 Paul Eggert + 'temacs -nw' should not call missing functions + Without this patch, "temacs -nw" fails with the diagnostic + "emacs: Symbol's function definition is void: frame-windows-min-size" + and messes up the tty's state. + * frame.c (Fframe_windows_min_size): New placeholder function. + (syms_of_frame): Define it. + * window.c (Fwindow__sanitize_window_sizes): New placeholder. + (syms_of_window): Define it. + Less 'make' chatter for lisp dir * Makefile.in (%.elc): Adjust to compile-onefile change in ../lisp/Makefile.in. diff --git a/src/frame.c b/src/frame.c index 5a0d142afbb..9394ae481f5 100644 --- a/src/frame.c +++ b/src/frame.c @@ -334,10 +334,22 @@ predicates which report frame's specific UI-related capabilities. */) return type; } +/* Placeholder used by temacs -nw before window.el is loaded. */ +DEFUN ("frame-windows-min-size", Fframe_windows_min_size, + Sframe_windows_min_size, 4, 4, 0, + doc: /* */) + (Lisp_Object frame, Lisp_Object horizontal, + Lisp_Object ignore, Lisp_Object pixelwise) +{ + return make_number (0); +} + static int -frame_windows_min_size (Lisp_Object frame, Lisp_Object horizontal, Lisp_Object ignore, Lisp_Object pixelwise) +frame_windows_min_size (Lisp_Object frame, Lisp_Object horizontal, + Lisp_Object ignore, Lisp_Object pixelwise) { - return XINT (call4 (Qframe_windows_min_size, frame, horizontal, ignore, pixelwise)); + return XINT (call4 (Qframe_windows_min_size, frame, horizontal, + ignore, pixelwise)); } @@ -5081,6 +5093,7 @@ even if this option is non-nil. */); defsubr (&Sframep); defsubr (&Sframe_live_p); defsubr (&Swindow_system); + defsubr (&Sframe_windows_min_size); defsubr (&Smake_terminal_frame); defsubr (&Shandle_switch_frame); defsubr (&Sselect_frame); diff --git a/src/window.c b/src/window.c index 938f1a3268f..45dfb9ea1c2 100644 --- a/src/window.c +++ b/src/window.c @@ -3014,6 +3014,14 @@ resize_root_window (Lisp_Object window, Lisp_Object delta, Lisp_Object horizonta return call5 (Qwindow_resize_root_window, window, delta, horizontal, ignore, pixelwise); } +/* Placeholder used by temacs -nw before window.el is loaded. */ +DEFUN ("window--sanitize-window-sizes", Fwindow__sanitize_window_sizes, + Swindow__sanitize_window_sizes, 2, 2, 0, + doc: /* */) + (Lisp_Object frame, Lisp_Object horizontal) +{ + return Qnil; +} Lisp_Object sanitize_window_sizes (Lisp_Object frame, Lisp_Object horizontal) @@ -7563,6 +7571,7 @@ displayed after a scrolling operation to be somewhat inaccurate. */); defsubr (&Sset_window_display_table); defsubr (&Snext_window); defsubr (&Sprevious_window); + defsubr (&Swindow__sanitize_window_sizes); defsubr (&Sget_buffer_window); defsubr (&Sdelete_other_windows_internal); defsubr (&Sdelete_window_internal); -- 2.11.4.GIT