diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 27 | ||||
-rw-r--r-- | src/alloc.c | 15 | ||||
-rw-r--r-- | src/editfns.c | 5 | ||||
-rw-r--r-- | src/gtkutil.c | 19 | ||||
-rw-r--r-- | src/gtkutil.h | 1 | ||||
-rw-r--r-- | src/xfns.c | 8 |
6 files changed, 66 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0cc2af13e6a..1932453bb79 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,30 @@ +2011-06-06 Paul Eggert <eggert@cs.ucla.edu> + + * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800). + Do not assume that spare memory exists; that assumption is valid + only if SYSTEM_MALLOC. + (LARGE_REQUEST): New macro, so that the issue of large requests + is separated from the issue of spare memory. + +2011-06-05 Andreas Schwab <schwab@linux-m68k.org> + + * editfns.c (Fformat): Correctly handle zero flag with hexadecimal + format. (Bug#8806) + + * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning. + + * xfns.c (x_set_scroll_bar_default_width): Move declarations + before statements. + +2011-06-05 Jan Djärv <jan.h.d@swipnet.se> + + * gtkutil.c (xg_get_default_scrollbar_width): New function. + + * gtkutil.h: Declare xg_get_default_scrollbar_width. + + * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get + min width by calling x_set_scroll_bar_default_width (Bug#8505). + 2011-06-05 Juanma Barranquero <lekktu@gmail.com> * xdisp.c (single_display_spec_intangible_p): Remove declaration. diff --git a/src/alloc.c b/src/alloc.c index 0c18fca1755..8d0fdd125dc 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -196,6 +196,12 @@ static char *spare_memory[7]; #define SPARE_MEMORY (1 << 14) #endif +#ifdef SYSTEM_MALLOC +# define LARGE_REQUEST (1 << 14) +#else +# define LARGE_REQUEST SPARE_MEMORY +#endif + /* Number of extra blocks malloc should get when it needs more core. */ static int malloc_hysteresis; @@ -3283,15 +3289,12 @@ memory_full (size_t nbytes) { /* Do not go into hysterics merely because a large request failed. */ int enough_free_memory = 0; - if (SPARE_MEMORY < nbytes) + if (LARGE_REQUEST < nbytes) { - void *p = malloc (SPARE_MEMORY); + void *p = malloc (LARGE_REQUEST); if (p) { - if (spare_memory[0]) - free (p); - else - spare_memory[0] = p; + free (p); enough_free_memory = 1; } } diff --git a/src/editfns.c b/src/editfns.c index 0e40fde9ca4..b961e602e4c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -4083,7 +4083,10 @@ usage: (format STRING &rest OBJECTS) */) int exponent_bytes = 0; int signedp = src0 == '-' || src0 == '+' || src0 == ' '; int significand_bytes; - if (zero_flag && '0' <= src[signedp] && src[signedp] <= '9') + if (zero_flag + && ((src[signedp] >= '0' && src[signedp] <= '9') + || (src[signedp] >= 'a' && src[signedp] <= 'f') + || (src[signedp] >= 'A' && src[signedp] <= 'F'))) { leading_zeros += padding; padding = 0; diff --git a/src/gtkutil.c b/src/gtkutil.c index 6e54006d913..dedb39a7a40 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -3326,6 +3326,25 @@ xg_get_widget_from_map (int idx) return 0; } +int +xg_get_default_scrollbar_width (FRAME_PTR f) +{ +#ifdef HAVE_GTK3 + GtkAdjustment *vadj; +#else + GtkObject *vadj; +#endif + GtkWidget *wscroll; + int w = 0, b = 0; + vadj = gtk_adjustment_new (XG_SB_MIN, XG_SB_MIN, XG_SB_MAX, 0.1, 0.1, 0.1); + wscroll = gtk_vscrollbar_new (GTK_ADJUSTMENT (vadj)); + gtk_widget_style_get (wscroll, "slider-width", &w, "trough-border", &b, NULL); + gtk_widget_destroy (wscroll); + w += 2*b; + if (w < 16) w = 16; + return w; +} + /* Return the scrollbar id for X Window WID on display DPY. Return -1 if WID not in id_to_widget. */ diff --git a/src/gtkutil.h b/src/gtkutil.h index 3dc0a1dd150..cf58d03b0ce 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -135,6 +135,7 @@ extern void xg_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar, int position, int whole); extern int xg_event_is_for_scrollbar (FRAME_PTR f, XEvent *event); +extern int xg_get_default_scrollbar_width (FRAME_PTR f); extern void update_frame_tool_bar (FRAME_PTR f); extern void free_frame_tool_bar (FRAME_PTR f); diff --git a/src/xfns.c b/src/xfns.c index ab66ddf1845..3507a13d517 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1699,10 +1699,14 @@ void x_set_scroll_bar_default_width (struct frame *f) { int wid = FRAME_COLUMN_WIDTH (f); - + int minw = 16; + int width; #ifdef USE_TOOLKIT_SCROLL_BARS +#ifdef USE_GTK + minw = xg_get_default_scrollbar_width (f); +#endif /* A minimum width of 14 doesn't look good for toolkit scroll bars. */ - int width = 16 + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; + width = minw + 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM; FRAME_CONFIG_SCROLL_BAR_COLS (f) = (width + wid - 1) / wid; FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = width; #else |