diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 16 | ||||
| -rw-r--r-- | src/callint.c | 26 | ||||
| -rw-r--r-- | src/font.c | 21 | ||||
| -rw-r--r-- | src/systime.h | 2 |
4 files changed, 34 insertions, 31 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9ae5c29ab72..c9d458c3479 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,19 @@ | |||
| 1 | 2013-04-26 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2013-04-27 Juri Linkov <juri@jurta.org> |
| 2 | |||
| 3 | * callint.c (Fcall_interactively): Call `Qread_number' for | ||
| 4 | interactive code letter `n' instead of using duplicate code. | ||
| 5 | (Bug#14254) | ||
| 6 | |||
| 7 | 2013-04-27 Paul Eggert <eggert@cs.ucla.edu> | ||
| 8 | |||
| 9 | * systime.h (make_timeval): Declare as 'const'. | ||
| 2 | 10 | ||
| 11 | 2013-04-27 Kenichi Handa <handa@gnu.org> | ||
| 12 | |||
| 13 | * font.c (font_open_entity): Always open a font of manageable | ||
| 14 | size. | ||
| 15 | |||
| 16 | 2013-04-26 Paul Eggert <eggert@cs.ucla.edu> | ||
| 3 | Port better to AIX (Bug#14258). | 17 | Port better to AIX (Bug#14258). |
| 4 | * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too, | 18 | * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too, |
| 5 | to pacify AIX xlc. | 19 | to pacify AIX xlc. |
diff --git a/src/callint.c b/src/callint.c index 212dd2e3d62..940ff3ed249 100644 --- a/src/callint.c +++ b/src/callint.c | |||
| @@ -34,6 +34,7 @@ static Lisp_Object Qcommand_debug_status; | |||
| 34 | static Lisp_Object Qenable_recursive_minibuffers; | 34 | static Lisp_Object Qenable_recursive_minibuffers; |
| 35 | 35 | ||
| 36 | static Lisp_Object Qhandle_shift_selection; | 36 | static Lisp_Object Qhandle_shift_selection; |
| 37 | static Lisp_Object Qread_number; | ||
| 37 | 38 | ||
| 38 | Lisp_Object Qmouse_leave_buffer_hook; | 39 | Lisp_Object Qmouse_leave_buffer_hook; |
| 39 | 40 | ||
| @@ -683,29 +684,7 @@ invoke it. If KEYS is omitted or nil, the return value of | |||
| 683 | if (!NILP (prefix_arg)) | 684 | if (!NILP (prefix_arg)) |
| 684 | goto have_prefix_arg; | 685 | goto have_prefix_arg; |
| 685 | case 'n': /* Read number from minibuffer. */ | 686 | case 'n': /* Read number from minibuffer. */ |
| 686 | { | 687 | args[i] = call1 (Qread_number, callint_message); |
| 687 | bool first = 1; | ||
| 688 | do | ||
| 689 | { | ||
| 690 | Lisp_Object str; | ||
| 691 | if (! first) | ||
| 692 | { | ||
| 693 | message1 ("Please enter a number."); | ||
| 694 | sit_for (make_number (1), 0, 0); | ||
| 695 | } | ||
| 696 | first = 0; | ||
| 697 | |||
| 698 | str = Fread_from_minibuffer (callint_message, | ||
| 699 | Qnil, Qnil, Qnil, Qnil, Qnil, | ||
| 700 | Qnil); | ||
| 701 | if (! STRINGP (str) || SCHARS (str) == 0) | ||
| 702 | args[i] = Qnil; | ||
| 703 | else | ||
| 704 | args[i] = Fread (str); | ||
| 705 | } | ||
| 706 | while (! NUMBERP (args[i])); | ||
| 707 | } | ||
| 708 | visargs[i] = args[i]; | ||
| 709 | break; | 688 | break; |
| 710 | 689 | ||
| 711 | case 'P': /* Prefix arg in raw form. Does no I/O. */ | 690 | case 'P': /* Prefix arg in raw form. Does no I/O. */ |
| @@ -903,6 +882,7 @@ syms_of_callint (void) | |||
| 903 | DEFSYM (Qminus, "-"); | 882 | DEFSYM (Qminus, "-"); |
| 904 | DEFSYM (Qplus, "+"); | 883 | DEFSYM (Qplus, "+"); |
| 905 | DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); | 884 | DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); |
| 885 | DEFSYM (Qread_number, "read-number"); | ||
| 906 | DEFSYM (Qcall_interactively, "call-interactively"); | 886 | DEFSYM (Qcall_interactively, "call-interactively"); |
| 907 | DEFSYM (Qcommand_debug_status, "command-debug-status"); | 887 | DEFSYM (Qcommand_debug_status, "command-debug-status"); |
| 908 | DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); | 888 | DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); |
diff --git a/src/font.c b/src/font.c index 6247eeca948..ad601177b50 100644 --- a/src/font.c +++ b/src/font.c | |||
| @@ -2819,7 +2819,7 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size) | |||
| 2819 | struct font_driver_list *driver_list; | 2819 | struct font_driver_list *driver_list; |
| 2820 | Lisp_Object objlist, size, val, font_object; | 2820 | Lisp_Object objlist, size, val, font_object; |
| 2821 | struct font *font; | 2821 | struct font *font; |
| 2822 | int min_width, height; | 2822 | int min_width, height, psize; |
| 2823 | 2823 | ||
| 2824 | eassert (FONT_ENTITY_P (entity)); | 2824 | eassert (FONT_ENTITY_P (entity)); |
| 2825 | size = AREF (entity, FONT_SIZE_INDEX); | 2825 | size = AREF (entity, FONT_SIZE_INDEX); |
| @@ -2846,12 +2846,19 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size) | |||
| 2846 | } | 2846 | } |
| 2847 | } | 2847 | } |
| 2848 | 2848 | ||
| 2849 | font_object = driver_list->driver->open (f, entity, pixel_size); | 2849 | /* We always open a font of manageable size; i.e non-zero average |
| 2850 | if (!NILP (font_object)) | 2850 | width and height. */ |
| 2851 | ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size)); | 2851 | for (psize = pixel_size; ; psize++) |
| 2852 | { | ||
| 2853 | font_object = driver_list->driver->open (f, entity, psize); | ||
| 2854 | if (NILP (font_object)) | ||
| 2855 | return Qnil; | ||
| 2856 | font = XFONT_OBJECT (font_object); | ||
| 2857 | if (font->average_width > 0 && font->height > 0) | ||
| 2858 | break; | ||
| 2859 | } | ||
| 2860 | ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size)); | ||
| 2852 | FONT_ADD_LOG ("open", entity, font_object); | 2861 | FONT_ADD_LOG ("open", entity, font_object); |
| 2853 | if (NILP (font_object)) | ||
| 2854 | return Qnil; | ||
| 2855 | ASET (entity, FONT_OBJLIST_INDEX, | 2862 | ASET (entity, FONT_OBJLIST_INDEX, |
| 2856 | Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX))); | 2863 | Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX))); |
| 2857 | 2864 | ||
| @@ -3118,6 +3125,8 @@ font_find_for_lface (FRAME_PTR f, Lisp_Object *attrs, Lisp_Object spec, int c) | |||
| 3118 | double pt = XINT (attrs[LFACE_HEIGHT_INDEX]); | 3125 | double pt = XINT (attrs[LFACE_HEIGHT_INDEX]); |
| 3119 | 3126 | ||
| 3120 | pixel_size = POINT_TO_PIXEL (pt / 10, FRAME_RES_Y (f)); | 3127 | pixel_size = POINT_TO_PIXEL (pt / 10, FRAME_RES_Y (f)); |
| 3128 | if (pixel_size < 1) | ||
| 3129 | pixel_size = 1; | ||
| 3121 | } | 3130 | } |
| 3122 | ASET (work, FONT_SIZE_INDEX, Qnil); | 3131 | ASET (work, FONT_SIZE_INDEX, Qnil); |
| 3123 | foundry[0] = AREF (work, FONT_FOUNDRY_INDEX); | 3132 | foundry[0] = AREF (work, FONT_FOUNDRY_INDEX); |
diff --git a/src/systime.h b/src/systime.h index da495b9064b..c3bc00c1479 100644 --- a/src/systime.h +++ b/src/systime.h | |||
| @@ -143,7 +143,7 @@ EMACS_TIME_TO_DOUBLE (EMACS_TIME t) | |||
| 143 | 143 | ||
| 144 | /* defined in sysdep.c */ | 144 | /* defined in sysdep.c */ |
| 145 | extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME); | 145 | extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME); |
| 146 | extern struct timeval make_timeval (EMACS_TIME); | 146 | extern struct timeval make_timeval (EMACS_TIME) ATTRIBUTE_CONST; |
| 147 | 147 | ||
| 148 | /* defined in keyboard.c */ | 148 | /* defined in keyboard.c */ |
| 149 | extern void set_waiting_for_input (EMACS_TIME *); | 149 | extern void set_waiting_for_input (EMACS_TIME *); |