aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2013-04-28 08:30:52 +0200
committerJoakim Verona2013-04-28 08:30:52 +0200
commit4e3a566de7bac86c5badfe6afe91bac95829993d (patch)
treeeefff8fe9b9d8c08b9ab800b0e42ae5fad35c9aa /src
parent06f6571ea6d9f795859cbd2591b1ea5bdfe8abe0 (diff)
parent4afd650a586bdf3bb393b4b3aef042c7e2a5c8a4 (diff)
downloademacs-4e3a566de7bac86c5badfe6afe91bac95829993d.tar.gz
emacs-4e3a566de7bac86c5badfe6afe91bac95829993d.zip
auto upstream
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog16
-rw-r--r--src/callint.c26
-rw-r--r--src/font.c21
-rw-r--r--src/systime.h2
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 @@
12013-04-26 Paul Eggert <eggert@cs.ucla.edu> 12013-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
72013-04-27 Paul Eggert <eggert@cs.ucla.edu>
8
9 * systime.h (make_timeval): Declare as 'const'.
2 10
112013-04-27 Kenichi Handa <handa@gnu.org>
12
13 * font.c (font_open_entity): Always open a font of manageable
14 size.
15
162013-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;
34static Lisp_Object Qenable_recursive_minibuffers; 34static Lisp_Object Qenable_recursive_minibuffers;
35 35
36static Lisp_Object Qhandle_shift_selection; 36static Lisp_Object Qhandle_shift_selection;
37static Lisp_Object Qread_number;
37 38
38Lisp_Object Qmouse_leave_buffer_hook; 39Lisp_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 */
145extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME); 145extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME);
146extern struct timeval make_timeval (EMACS_TIME); 146extern struct timeval make_timeval (EMACS_TIME) ATTRIBUTE_CONST;
147 147
148/* defined in keyboard.c */ 148/* defined in keyboard.c */
149extern void set_waiting_for_input (EMACS_TIME *); 149extern void set_waiting_for_input (EMACS_TIME *);