APPROVE COMMIT
NOTE: This patch has been committed
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1513513206 0
# Sun Dec 17 12:20:06 2017 +0000
# Node ID 9bdc40b8fb78fe1b9605e4e5129b4002b3a9835a
# Parent f26c76a815e2c987d495d484566647fbff0c4e1e
Get the GTK2 code building with recent trunk changes.
src/ChangeLog addition:
2017-12-17 Aidan Kehoe <kehoea(a)parhasard.net>
* console-gtk.c (gtk_perhaps_init_unseen_key_defaults):
Remove a buffer dependence here, use the default unicode
precedence list when converting a keysym's Unicode code point to
an XEmacs character.
* device-gtk.c (gtk_init_device):
On versions of GTK > 2.8.0, if gdk_screen_get_rgba_visual()
failed, try with gdk_visual_get_best().
When examining Vselection_converter_out_alist, Fsafe_length() is
no longer available. Use Flist_length instead.
* emacs.c (main_1):
Remove complex_vars_of_event_gtk(), there's no need for it.
* event-gtk.c:
* event-gtk.c (handle_map_event):
Check for possible resizing on the map event too.
* event-gtk.c (gtk_keysym_to_emacs_keysym):
Use unicode_to_ichar(), rather than Funicode_to_char() with the
wrong number of arguments.
* event-gtk.c (gtk_event_to_emacs_event):
* event-gtk.c (register_event_name):
Don't strdup into the heap.
Assert that every character in NAME is ASCII, use
build_ascstring() with the result of the transformation, using
Qutf_8 is an issue very early in the build.
* event-gtk.c (register_event_names):
Return Vgdk_event_names from this function, so the return value
can be used in vars_of_event_gtk().
* event-gtk.c (vars_of_event_gtk):
Use register_event_names() here.
* event-gtk.c (complex_vars_of_event_gtk): Removed, no need for
this, the relevant vars aren't actually complex.
* faces.c (complex_vars_of_faces):
Make some comments here a little more complete.
* frame-gtk.c:
* frame-gtk.c (gtk_recompute_cell_sizes):
Make this take WIDTH_INCR and HEIGHT_INCR pointer output
arguments, so callers can find out the effective character dimensions.
* frame-gtk.c (gtk_set_initial_frame_size): Use this.
* frame-gtk.c (gtk_set_frame_size): Use this.
* frame-gtk.c (gtk_update_frame_external_traits): Use this.
* frame.c:
* frame.c (change_frame_size_1):
Correct some comments here.
* redisplay-gtk.c (XLIKE_output_eol_cursor):
Some GTK version compatibility changes here.
* redisplay-xlike-inc.c (XLIKE_text_width): Remove this
completely, with Pango GTK and X11 have diverged sufficiently this
doesn't help any more.
* symsinit.h:
Remove complex_vars_of_event_gtk() from this.
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/ChangeLog
--- a/src/ChangeLog Sun Dec 17 11:05:35 2017 +0000
+++ b/src/ChangeLog Sun Dec 17 12:20:06 2017 +0000
@@ -1,3 +1,55 @@
+2017-12-17 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * console-gtk.c (gtk_perhaps_init_unseen_key_defaults):
+ Remove a buffer dependence here, use the default unicode
+ precedence list when converting a keysym's Unicode code point to
+ an XEmacs character.
+ * device-gtk.c (gtk_init_device):
+ On versions of GTK > 2.8.0, if gdk_screen_get_rgba_visual()
+ failed, try with gdk_visual_get_best().
+ When examining Vselection_converter_out_alist, Fsafe_length() is
+ no longer available. Use Flist_length instead.
+ * emacs.c (main_1):
+ Remove complex_vars_of_event_gtk(), there's no need for it.
+ * event-gtk.c:
+ * event-gtk.c (handle_map_event):
+ Check for possible resizing on the map event too.
+ * event-gtk.c (gtk_keysym_to_emacs_keysym):
+ Use unicode_to_ichar(), rather than Funicode_to_char() with the
+ wrong number of arguments.
+ * event-gtk.c (gtk_event_to_emacs_event):
+ * event-gtk.c (register_event_name):
+ Don't strdup into the heap.
+ Assert that every character in NAME is ASCII, use
+ build_ascstring() with the result of the transformation, using
+ Qutf_8 is an issue very early in the build.
+ * event-gtk.c (register_event_names):
+ Return Vgdk_event_names from this function, so the return value
+ can be used in vars_of_event_gtk().
+ * event-gtk.c (vars_of_event_gtk):
+ Use register_event_names() here.
+ * event-gtk.c (complex_vars_of_event_gtk): Removed, no need for
+ this, the relevant vars aren't actually complex.
+ * faces.c (complex_vars_of_faces):
+ Make some comments here a little more complete.
+ * frame-gtk.c:
+ * frame-gtk.c (gtk_recompute_cell_sizes):
+ Make this take WIDTH_INCR and HEIGHT_INCR pointer output
+ arguments, so callers can find out the effective character dimensions.
+ * frame-gtk.c (gtk_set_initial_frame_size): Use this.
+ * frame-gtk.c (gtk_set_frame_size): Use this.
+ * frame-gtk.c (gtk_update_frame_external_traits): Use this.
+ * frame.c:
+ * frame.c (change_frame_size_1):
+ Correct some comments here.
+ * redisplay-gtk.c (XLIKE_output_eol_cursor):
+ Some GTK version compatibility changes here.
+ * redisplay-xlike-inc.c (XLIKE_text_width): Remove this
+ completely, with Pango GTK and X11 have diverged sufficiently this
+ doesn't help any more.
+ * symsinit.h:
+ Remove complex_vars_of_event_gtk() from this.
+
2017-12-12 Aidan Kehoe <kehoea(a)parhasard.net>
* process-unix.c (unix_init_process_io_handles):
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/console-gtk.c
--- a/src/console-gtk.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/console-gtk.c Sun Dec 17 12:20:06 2017 +0000
@@ -129,12 +129,11 @@
gchar *symbol_name = LISP_STRING_TO_EXTERNAL (XSYMBOL_NAME (key), Qutf_8);
char_to_associate
#ifdef __GDK_KEYS_H__
- = make_char (buffer_unicode_to_ichar
+ = make_char (filtered_unicode_to_ichar
(gdk_keyval_to_unicode
(gdk_keyval_from_name (symbol_name)),
- /* @@#### need to get some sort of buffer to compute
- this off; only applies in the old-Mule world */
- current_buffer, CONVERR_SUCCEED));
+ Vdefault_unicode_precedence_array, NULL,
+ CONVERR_SUCCEED));
#else /* GTK 1.whatever doesn't. Use the X11 map. */
= gtk_keysym_to_character(gdk_keyval_from_name(symbol_name));
#endif
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/device-gtk.c
--- a/src/device-gtk.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/device-gtk.c Sun Dec 17 12:20:06 2017 +0000
@@ -259,9 +259,13 @@
/* Always search for the best visual */
#if GTK_CHECK_VERSION(2, 8, 0)
visual = gdk_screen_get_rgba_visual (gdk_screen_get_default ());
-#else
- visual = gdk_visual_get_best();
- #endif
+#endif
+
+ if (NULL == visual)
+ {
+ visual = gdk_visual_get_best();
+ }
+
DEVICE_GTK_VISUAL (d) = visual;
#if GTK_CHECK_VERSION(2,22,1)
@@ -309,7 +313,9 @@
available; this isn't the case under GTK, the set is examined once at
startup. */
{
- guint target_count = XFIXNUM (Fsafe_length (Vselection_converter_out_alist));
+ Lisp_Object tcount
+ = Flist_length (Vselection_converter_out_alist);
+ guint target_count = NILP (tcount) ? 0 : XFIXNUM (tcount);
GtkTargetEntry *targets = alloca_array (GtkTargetEntry, target_count);
Lisp_Object tail = Vselection_converter_out_alist;
DECLARE_EISTRING(ei_symname);
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/emacs.c
--- a/src/emacs.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/emacs.c Sun Dec 17 12:20:06 2017 +0000
@@ -2488,7 +2488,6 @@
variables initialized above. */
#ifdef HAVE_GTK
complex_vars_of_glyphs_gtk ();
- complex_vars_of_event_gtk ();
#endif
#ifdef HAVE_X_WINDOWS
complex_vars_of_glyphs_x ();
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/event-gtk.c
--- a/src/event-gtk.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/event-gtk.c Sun Dec 17 12:20:06 2017 +0000
@@ -39,6 +39,7 @@
#include "process.h"
#include "redisplay.h"
#include "window.h"
+#include "text.h"
#include "console-tty.h"
@@ -206,6 +207,24 @@
{
FRAME_GTK_TOTALLY_VISIBLE_P (f) = 1;
change_frame_visibility (f, 1);
+
+ if (event->any.window ==
+ gtk_widget_get_window (FRAME_GTK_SHELL_WIDGET (f)))
+ {
+ GtkAllocation galloc;
+ int rows, columns;
+
+ gtk_widget_get_allocation (FRAME_GTK_SHELL_WIDGET (f), &galloc);
+
+ FRAME_PIXWIDTH (f) = galloc.width;
+ FRAME_PIXHEIGHT (f) = galloc.height;
+
+ pixel_to_frame_unit_size (f, galloc.width, galloc.height, &columns,
+ &rows);
+ /* #### We possibly don't have to do this if the character height
+ #### and width haven't changed. */
+ change_frame_size (f, columns, rows, 1);
+ }
}
else
{
@@ -504,7 +523,13 @@
if (unicode != 0)
{
- return Funicode_to_char (make_fixnum ((EMACS_INT) unicode), Qnil);
+ Ichar ich = unicode_to_ichar (unicode,
+ Vdefault_unicode_precedence_array,
+ CONVERR_FAIL);
+ if (ich >= 0)
+ {
+ return make_char (ich);
+ }
}
/* All of the names in gdkkeysms-compat.h are ASCII-only, and if keysym
@@ -1515,6 +1540,7 @@
gdk_window_get_pointer (ev->window, &x, &y, &mask);
#endif
#ifdef HAVE_GTK3
+ assert (GDK_IS_WINDOW (ev->window));
gdk_window_get_device_position (ev->window, ev->device,
&x, &y, &mask);
#endif
@@ -1728,24 +1754,6 @@
}
void
-vars_of_event_gtk (void)
-{
- DEFVAR_BOOL ("gtk-allow-sendevents", >k_allow_sendevents /*
-*Non-nil means to allow synthetic events. Nil means they are ignored.
-Beware: allowing emacs to process SendEvents opens a big security hole.
-*/ );
- gtk_allow_sendevents = 0;
-
- last_quit_check_signal_tick_count = 0;
-
- DEFVAR_LISP ("gdk-event-names", &Vgdk_event_names /*
-An alist of Gdk event types to names.
-Do NOT modify.
-*/);
- Vgdk_event_names = Qnil;
-}
-
-void
init_event_gtk_late (void) /* called when already initialized */
{
timeout_id_tick = 1;
@@ -2076,28 +2084,42 @@
#endif
static void
-register_event_name(const char *name, int value)
+register_event_name (const char *name, int value)
{
- char *nm = xstrdup(name);
- char *ptr = nm;
- while (*ptr) {
- if (*ptr == '_')
- *ptr = '-';
- else
- *ptr = tolower(*ptr);
- ++ptr;
+ Ascbyte *nm = alloca_ascbytes (strlen (name) + 1), *beg = nm;
+ const Extbyte *ptr = name;
+
+ while (*ptr)
+ {
+ if (*ptr == '_')
+ {
+ *nm = '-';
+ }
+ else if (*ptr < 0x80)
+ {
+ *nm = tolower (*ptr);
+ }
+ else
+ {
+ assert (*ptr < 0x80); /* None of the event names below are non-ASCII,
+ and we're called sufficiently early that we
+ may not be able to handle non-ASCII. */
+ *nm = *ptr;
+ }
+
+ ++ptr, ++nm;
}
- Vgdk_event_names = Facons (build_extstring (nm, Qutf_8),
- make_fixnum (value),
+ *nm = '\0';
+
+ Vgdk_event_names = Facons (build_ascstring (beg), make_fixnum (value),
Vgdk_event_names);
- xfree (nm);
}
-static void
+static Lisp_Object
register_event_names (void)
{
if (!NILP (Vgdk_event_names))
- return;
+ return Vgdk_event_names;
#define FROB_EVENT_NAME(name) register_event_name(#name, name)
FROB_EVENT_NAME(GDK_NOTHING);
FROB_EVENT_NAME(GDK_DELETE);
@@ -2141,10 +2163,25 @@
FROB_EVENT_NAME(GDK_DAMAGE);
#undef FROB_EVENT_NAME
Vgdk_event_names = Fnreverse (Vgdk_event_names);
+
+ return Vgdk_event_names;
}
void
-complex_vars_of_event_gtk()
+vars_of_event_gtk (void)
{
- register_event_names();
+ DEFVAR_BOOL ("gtk-allow-sendevents", >k_allow_sendevents /*
+*Non-nil means to allow synthetic events. Nil means they are ignored.
+Beware: allowing emacs to process SendEvents opens a big security hole.
+*/ );
+ gtk_allow_sendevents = 0;
+
+ last_quit_check_signal_tick_count = 0;
+
+ DEFVAR_LISP ("gdk-event-names", &Vgdk_event_names /*
+An alist of Gdk event types to names.
+Do NOT modify.
+*/);
+ Vgdk_event_names = register_event_names ();
}
+
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/event-msw.c
--- a/src/event-msw.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/event-msw.c Sun Dec 17 12:20:06 2017 +0000
@@ -3408,8 +3408,8 @@
FRAME_PIXWIDTH (frame) = rect.right;
FRAME_PIXHEIGHT (frame) = rect.bottom;
- pixel_to_frame_unit_size (frame, rect.right, rect.bottom, &columns,
- &rows);
+ pixel_to_frame_unit_size (frame, rect.right, rect.bottom,
+ &columns, &rows);
change_frame_size (frame, columns, rows, 1);
/* If we are inside frame creation, we have to apply geometric
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/faces.c
--- a/src/faces.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/faces.c Sun Dec 17 12:20:06 2017 +0000
@@ -2399,7 +2399,7 @@
"-*-*-medium-r-*-*-*-170-*-*-c-*-*-*",
#endif
};
-#endif /* defined (HAVE_XFT) || defined (MULE) */
+#endif /* defined (HAVE_XFT) || defined (HAVE_GTK) || defined (MULE) */
#ifdef MULE
@@ -2438,7 +2438,7 @@
build_cistring (*fontptr)),
inst_list);
-#else /* !HAVE_XFT */
+#else /* !HAVE_XFT && !HAVE_GTK */
inst_list =
Fcons
(Fcons
@@ -2499,6 +2499,7 @@
build_ascstring
("-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")),
inst_list);
+#endif /* not HAVE_GTK */
#endif /* not UNICODE_INTERNAL */
#endif /* MULE */
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/frame-gtk.c
--- a/src/frame-gtk.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/frame-gtk.c Sun Dec 17 12:20:06 2017 +0000
@@ -234,6 +234,8 @@
return XFRAME (frame);
}
+static void gtk_recompute_cell_sizes (struct frame *, int *width_incr,
+ int *height_incr);
/************************************************************************/
/* window-manager interactions */
@@ -410,15 +412,8 @@
if (GTK_IS_WINDOW (shell))
{
- GdkWindowHints geometry_mask = GDK_HINT_RESIZE_INC;
- /* Deal with the cell size */
- default_face_width_and_height (wrap_frame (f), &geometry.width_inc,
&geometry.height_inc);
-
- gtk_window_set_geometry_hints (GTK_WINDOW (shell),
- FRAME_GTK_TEXT_WIDGET (f),
- &geometry, geometry_mask);
- gtk_window_move (GTK_WINDOW (shell), x, y);
- gtk_window_set_resizable (GTK_WINDOW (shell), TRUE);
+ int pixw, pixh;
+ gtk_recompute_cell_sizes (f, &pixw, &pixh);
}
FRAME_HEIGHT (f) = h;
@@ -1271,35 +1266,19 @@
GdkGeometry geometry;
GtkRequisition req;
- if (GTK_IS_WINDOW (shell))
- {
- GdkWindowHints geometry_mask = GDK_HINT_RESIZE_INC;
+ assert (GTK_IS_WINDOW (shell));
- /* Update the cell size */
- default_face_width_and_height (wrap_frame (f), &geometry.width_inc,
- &geometry.height_inc);
-
- gtk_window_set_geometry_hints (GTK_WINDOW (shell),
- FRAME_GTK_TEXT_WIDGET (f), &geometry, geometry_mask);
- }
+ {
+ int pixw, pixh;
- change_frame_size (f, cols, rows, 0);
-#ifdef HAVE_GTK2
- gtk_widget_size_request (FRAME_GTK_SHELL_WIDGET (f), &req);
-#endif
-#ifdef HAVE_GTK3
- {
- GtkRequisition min;
- gtk_widget_get_preferred_size (FRAME_GTK_SHELL_WIDGET (f), &min, &req);
- }
-#endif
- gtk_widget_set_size_request (FRAME_GTK_SHELL_WIDGET (f), req.width, req.height);
-
- if (GTK_IS_WINDOW (shell))
- {
- gtk_window_set_default_size (GTK_WINDOW (shell), req.width, req.height);
- /* gtk_window_set_default_geometry (GTK_WINDOW (shell), req.width, req.height); */
- }
+ change_frame_size (f, cols, rows, 0);
+ gtk_recompute_cell_sizes (f, &pixw, &pixh);
+
+ gtk_window_set_default_size (GTK_WINDOW (shell), pixw, pixh);
+ FRAME_PIXWIDTH (f) = pixw;
+ FRAME_PIXHEIGHT (f) = pixh; /* These values will be corrected when
+ the window is mapped. */
+ }
}
static void
@@ -1462,22 +1441,27 @@
}
static void
-gtk_recompute_cell_sizes (struct frame *frm)
+gtk_recompute_cell_sizes (struct frame *frm, int *width_incr, int *height_incr)
{
if (GTK_IS_WINDOW (FRAME_GTK_SHELL_WIDGET (frm)))
{
GtkWindow *w = GTK_WINDOW (FRAME_GTK_SHELL_WIDGET (frm));
GdkGeometry geometry;
GdkWindowHints geometry_mask;
- gint width_inc = 10;
- gint height_inc = 10;
+ *width_incr = 10;
+ *height_incr = 10;
+
+ default_face_width_and_height (wrap_frame (frm), width_incr, height_incr);
- default_face_width_and_height (wrap_frame (frm), &width_inc, &height_inc);
- geometry_mask = GDK_HINT_RESIZE_INC;
- geometry.width_inc = width_inc;
- geometry.height_inc = height_inc;
+ geometry_mask
+ = GDK_HINT_RESIZE_INC | GDK_HINT_MIN_SIZE | GDK_HINT_BASE_SIZE;
+ geometry.width_inc = geometry.base_width
+ = geometry.min_width = *width_incr;
+ geometry.height_inc = geometry.base_height
+ = geometry.min_height = *height_incr;
- gtk_window_set_geometry_hints (w, FRAME_GTK_TEXT_WIDGET (frm), &geometry,
geometry_mask);
+ gtk_window_set_geometry_hints (w, FRAME_GTK_TEXT_WIDGET (frm),
+ &geometry, geometry_mask);
}
}
@@ -1576,7 +1560,10 @@
/* Set window manager resize increment hints according to
the new character size */
if (EQ (name, Qfont) && FRAME_GTK_TOP_LEVEL_FRAME_P (frm))
- gtk_recompute_cell_sizes (frm);
+ {
+ int pixw, pixh;
+ gtk_recompute_cell_sizes (frm, &pixw, &pixh);
+ }
}
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/frame.c
--- a/src/frame.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/frame.c Sun Dec 17 12:20:06 2017 +0000
@@ -3620,9 +3620,9 @@
/* */
/**************************************************************************/
-/* Change the frame height and/or width. Values passed in are in
- frame units (character cells on X/GTK, displayable-area pixels
- on MS Windows or generally on pixelated-geometry window systems). */
+/* Change the frame height and/or width. Values passed in are in frame units
+ character cells on all systems, both TTYs and pixel-oriented window
+ systems. */
static void
change_frame_size_1 (struct frame *f, int newwidth, int newheight)
{
@@ -3757,9 +3757,8 @@
which is the device method that is called (from internal_set_frame_size())
when `set-frame-size' or similar function is called.
- Values passed in are in frame units (character cells on X/GTK,
- displayable-area pixels on MS Windows or generally on pixelated-geometry
- window systems). See discussion at top of file.
+ Values passed in are in character cells, both on TTYs and on pixel-oriented
+ window systems. See discussion at top of file.
See also internal_set_frame_size() and adjust_frame_size().
*/
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/redisplay-gtk.c
--- a/src/redisplay-gtk.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/redisplay-gtk.c Sun Dec 17 12:20:06 2017 +0000
@@ -474,15 +474,12 @@
GtkWidget *widget = FRAME_GTK_TEXT_WIDGET (f);
GdkWindow *win = gtk_widget_get_window (widget);
#if GTK_CHECK_VERSION(3, 22, 0)
- cairo_region_t *region = gdk_window_get_visible_region (win);
- /* We should be able to avoid the next call, but the GTK documentation
- * doesn't explain how to get the drawing context. */
- GdkDrawingContext *ctx = gdk_window_begin_draw_frame (win,
- region);
- cairo_t *cr = gdk_drawing_context_get_cairo_context (ctx);
-#else
- cairo_t *cr = gdk_cairo_create (win);
+ /* Can't initialise REGION, CTX and CR until we have called
+ redisplay_clear_region(). */
+ cairo_region_t *region;
+ GdkDrawingContext *ctx;
#endif
+ cairo_t *cr;
struct device *d = XDEVICE (f->device);
Lisp_Object window;
@@ -505,6 +502,16 @@
if (NILP (w->text_cursor_visible_p))
return;
+#if GTK_CHECK_VERSION(3, 22, 0)
+ region = gdk_window_get_visible_region (win);
+ /* We should be able to avoid the next call, but the GTK documentation
+ doesn't explain how to get the drawing context. */
+ ctx = gdk_window_begin_draw_frame (win, region);
+ cr = gdk_drawing_context_get_cairo_context (ctx);
+#else
+ cr = gdk_cairo_create (win);
+#endif
+
default_face_font_info (window, &defascent, 0, 0, &defheight, 0);
/* make sure the cursor is entirely contained between y and y+height */
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/redisplay-xlike-inc.c
--- a/src/redisplay-xlike-inc.c Sun Dec 17 11:05:35 2017 +0000
+++ b/src/redisplay-xlike-inc.c Sun Dec 17 12:20:06 2017 +0000
@@ -595,37 +595,6 @@
}
#endif
-
-/*
- XLIKE_text_width
-
- Given a string and a merged face, return the string's length in pixels
- when displayed in the fonts associated with the face.
- */
-
-static int
-XLIKE_text_width (struct frame *f, struct face_cachel *cachel,
- const Ibyte *str, Bytecount len)
-{
- Extbyte *text_storage = NULL;
- int width_so_far = 0, text_storage_len = 0;
- struct textual_run *runs = alloca_array (struct textual_run, len);
- XLIKE_DISPLAY dpy = GET_XLIKE_DISPLAY (XDEVICE (f->device));
- int nruns;
- int i;
-
- ALLOCATE_RUNS_TEXT (text_storage, text_storage_len, str, len);
- nruns = separate_textual_runs (WINDOW_XBUFFER (FRAME_SELECTED_XWINDOW (f)),
- text_storage, runs, str, len, cachel);
-
- USED (text_storage_len);
-
- for (i = 0; i < nruns; i++)
- width_so_far += XLIKE_text_width_single_run (dpy, cachel, runs + i);
-
- return width_so_far;
-}
-
/*****************************************************************************
XLIKE_divider_height
diff -r f26c76a815e2 -r 9bdc40b8fb78 src/symsinit.h
--- a/src/symsinit.h Sun Dec 17 11:05:35 2017 +0000
+++ b/src/symsinit.h Sun Dec 17 12:20:06 2017 +0000
@@ -550,7 +550,6 @@
void complex_vars_of_console (void);
void reinit_complex_vars_of_console_runtime_only (void);
void complex_vars_of_emacs (void);
-void complex_vars_of_event_gtk (void);
void complex_vars_of_faces (void);
void complex_vars_of_file_coding (void);
void complex_vars_of_font_mgr (void);
--
‘As I sat looking up at the Guinness ad, I could never figure out /
How your man stayed up on the surfboard after forty pints of stout’
(C. Moore)