diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-04 00:00:39 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-04 00:05:04 -0800 |
commit | 5c2563a5472cd5580e7af570aa320ac581ad1985 (patch) | |
tree | fbf88ede49dc0ba527d3925dfc274c230b8cf95f /src/gtkutil.c | |
parent | d6b3e5bbc5e14c32f3faad9f1481ec16807ac2fe (diff) | |
download | emacs-5c2563a5472cd5580e7af570aa320ac581ad1985.tar.gz |
Simplify list creation in C code
The main new thing here is that C code can now say
‘list (a, b, c, d, e, f)’ instead of
‘listn (CONSTYPE_HEAP, 6, a, b, c, d, e, f)’,
thus relieving callers of the responsibility of counting
arguments (plus, the code feels more like Lisp). The old
list1 ... list5 functions remain, as they’re probably a bit
faster for small lists.
* src/alloc.c (cons_listn, pure_listn): New functions.
(listn): Omit enum argument.
All callers changed to use either new ‘list’ or ‘pure_list’ macros.
* src/charset.c (Fdefine_charset_internal):
* src/coding.c (detect_coding_system)
(Fset_terminal_coding_system_internal):
* src/frame.c (frame_size_history_add, adjust_frame_size):
* src/gtkutil.c (xg_frame_set_char_size):
* src/keyboard.c (command_loop_1):
* src/nsfns.m (frame_geometry):
* src/widget.c (set_frame_size):
* src/xfaces.c (Fcolor_distance):
* src/xfns.c (frame_geometry):
* src/xterm.c (x_set_window_size_1):
* src/xwidget.c (Fxwidget_size_request):
Prefer list1i, list2i, etc. to open-coding them.
* src/charset.c (Fset_charset_priority):
* src/nsterm.m (append2):
* src/window.c (window_list):
* src/xfaces.c (Fx_list_fonts):
Use nconc2 instead of open-coding it.
* src/eval.c (eval_sub, backtrace_frame_apply):
* src/kqueue.c (kqueue_generate_event):
* src/nsterm.m (performDragOperation:):
* src/pdumper.c (Fpdumper_stats):
* src/w32.c (init_environment):
Prefer list1, list2, etc. to open-coding them.
* src/font.c (font_list_entities):
Parenthesize to avoid expanding new ‘list’ macro.
* src/gtkutil.c (GETSETUP): Rename from MAKE_FLOAT_PAGE_SETUP
to get lines to fit. Move outside the ‘list’ call, since it’s
now a macro.
* src/keymap.c (Fmake_keymap): Simplify.
* src/lisp.h (list, pure_list): New macros.
(list1i): New function.
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r-- | src/gtkutil.c | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 75fc9ea5477..58e95a46796 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -967,7 +967,7 @@ xg_frame_set_char_size (struct frame *f, int width, int height) { frame_size_history_add (f, Qxg_frame_set_char_size_1, width, height, - list2 (make_fixnum (gheight), make_fixnum (totalheight))); + list2i (gheight, totalheight)); gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), gwidth, totalheight); @@ -976,7 +976,7 @@ xg_frame_set_char_size (struct frame *f, int width, int height) { frame_size_history_add (f, Qxg_frame_set_char_size_2, width, height, - list2 (make_fixnum (gwidth), make_fixnum (totalwidth))); + list2i (gwidth, totalwidth)); gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), totalwidth, gheight); @@ -985,7 +985,7 @@ xg_frame_set_char_size (struct frame *f, int width, int height) { frame_size_history_add (f, Qxg_frame_set_char_size_3, width, height, - list2 (make_fixnum (totalwidth), make_fixnum (totalheight))); + list2i (totalwidth, totalheight)); gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), totalwidth, totalheight); @@ -4260,23 +4260,16 @@ xg_get_page_setup (void) eassume (false); } - return listn (CONSTYPE_HEAP, 7, - Fcons (Qorientation, orientation_symbol), -#define MAKE_FLOAT_PAGE_SETUP(f) make_float (f (page_setup, GTK_UNIT_POINTS)) - Fcons (Qwidth, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_page_width)), - Fcons (Qheight, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_page_height)), - Fcons (Qleft_margin, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_left_margin)), - Fcons (Qright_margin, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_right_margin)), - Fcons (Qtop_margin, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_top_margin)), - Fcons (Qbottom_margin, - MAKE_FLOAT_PAGE_SETUP (gtk_page_setup_get_bottom_margin)) -#undef MAKE_FLOAT_PAGE_SETUP - ); +#define GETSETUP(f) make_float (f (page_setup, GTK_UNIT_POINTS)) + return + list (Fcons (Qorientation, orientation_symbol), + Fcons (Qwidth, GETSETUP (gtk_page_setup_get_page_width)), + Fcons (Qheight, GETSETUP (gtk_page_setup_get_page_height)), + Fcons (Qleft_margin, GETSETUP (gtk_page_setup_get_left_margin)), + Fcons (Qright_margin, GETSETUP (gtk_page_setup_get_right_margin)), + Fcons (Qtop_margin, GETSETUP (gtk_page_setup_get_top_margin)), + Fcons (Qbottom_margin, GETSETUP (gtk_page_setup_get_bottom_margin))); +#undef GETSETUP } static void |