#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
|| defined(HAVE_NS) || defined (USE_GTK)
extern void set_frame_menubar (struct frame *f, int, int);
-extern int pending_menu_activation;
#endif
extern int interrupt_input;
extern int command_loop_level;
-extern Lisp_Object do_mouse_tracking;
-
extern int minibuffer_auto_raise;
extern Lisp_Object Vminibuffer_list;
box. */
INLINE void
-window_box_edges (w, area, top_left_x, top_left_y,
- bottom_right_x, bottom_right_y)
- struct window *w;
- int area;
- int *top_left_x, *top_left_y, *bottom_right_x, *bottom_right_y;
+window_box_edges (struct window *w, int area, int *top_left_x, int *top_left_y,
+ int *bottom_right_x, int *bottom_right_y)
{
window_box (w, area, top_left_x, top_left_y, bottom_right_x,
bottom_right_y);
of buffer or string text. */
static int
-handle_single_display_spec (it, spec, object, overlay, position,
- display_replaced_before_p)
- struct it *it;
- Lisp_Object spec;
- Lisp_Object object;
- Lisp_Object overlay;
- struct text_pos *position;
- int display_replaced_before_p;
+handle_single_display_spec (struct it *it, Lisp_Object spec, Lisp_Object object,
+ Lisp_Object overlay, struct text_pos *position,
+ int display_replaced_before_p)
{
Lisp_Object form;
Lisp_Object location, value;
next_element_from_image (struct it *it)
{
it->what = IT_IMAGE;
+ it->ignore_overlay_strings_at_pos_p = 0;
return 1;
}
to *Messages*. */
void
-add_to_log (char *format, Lisp_Object arg1, Lisp_Object arg2)
+add_to_log (const char *format, Lisp_Object arg1, Lisp_Object arg2)
{
Lisp_Object args[3];
Lisp_Object msg, fmt;
that was alloca'd. */
void
-message1 (char *m)
+message1 (const char *m)
{
message2 (m, (m ? strlen (m) : 0), 0);
}
/* The non-logging counterpart of message1. */
void
-message1_nolog (char *m)
+message1_nolog (const char *m)
{
message2_nolog (m, (m ? strlen (m) : 0), 0);
}
which gets replaced with STRING. */
void
-message_with_string (char *m, Lisp_Object string, int log)
+message_with_string (const char *m, Lisp_Object string, int log)
{
CHECK_STRING (string);
/* Dump an informative message to the minibuf. If M is 0, clear out
any existing message, and let the mini-buffer text show through. */
-/* VARARGS 1 */
-void
-message (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
+static void
+vmessage (const char *m, va_list ap)
{
if (noninteractive)
{
if (noninteractive_need_newline)
putc ('\n', stderr);
noninteractive_need_newline = 0;
- fprintf (stderr, m, a1, a2, a3);
+ vfprintf (stderr, m, ap);
if (cursor_in_echo_area == 0)
fprintf (stderr, "\n");
fflush (stderr);
if (m)
{
int len;
- char *a[3];
- a[0] = (char *) a1;
- a[1] = (char *) a2;
- a[2] = (char *) a3;
len = doprnt (FRAME_MESSAGE_BUF (f),
- FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, 3, a);
+ FRAME_MESSAGE_BUF_SIZE (f), m, (char *)0, ap);
message2 (FRAME_MESSAGE_BUF (f), len, 0);
}
}
}
+void
+message (const char *m, ...)
+{
+ va_list ap;
+ va_start (ap, m);
+ vmessage (m, ap);
+ va_end (ap);
+}
+
/* The non-logging version of message. */
void
-message_nolog (char *m, EMACS_INT a1, EMACS_INT a2, EMACS_INT a3)
+message_nolog (const char *m, ...)
{
Lisp_Object old_log_max;
+ va_list ap;
+ va_start (ap, m);
old_log_max = Vmessage_log_max;
Vmessage_log_max = Qnil;
- message (m, a1, a2, a3);
+ vmessage (m, ap);
Vmessage_log_max = old_log_max;
+ va_end (ap);
}
Re-allocate mode_line_noprop_buf if necessary. */
static void
-#ifdef PROTOTYPES
store_mode_line_noprop_char (char c)
-#else
-store_mode_line_noprop_char (c)
- char c;
-#endif
{
/* If output position has reached the end of the allocated buffer,
double the buffer's size. */
update_tool_bar (sf, 1);
#endif
}
-
- /* Motif needs this. See comment in xmenu.c. Turn it off when
- pending_menu_activation is not defined. */
-#ifdef USE_X_TOOLKIT
- pending_menu_activation = 0;
-#endif
}
DEFUN ("tool-bar-lines-needed", Ftool_bar_lines_needed, Stool_bar_lines_needed,
0, 1, 0,
doc: /* Return the number of lines occupied by the tool bar of FRAME. */)
- (frame)
- Lisp_Object frame;
+ (Lisp_Object frame)
{
struct frame *f;
struct window *w;
};
static int
-try_scrolling (window, just_this_one_p, scroll_conservatively,
- scroll_step, temp_scroll_step, last_line_misfit)
- Lisp_Object window;
- int just_this_one_p;
- EMACS_INT scroll_conservatively, scroll_step;
- int temp_scroll_step;
- int last_line_misfit;
+try_scrolling (Lisp_Object window, int just_this_one_p,
+ EMACS_INT scroll_conservatively, EMACS_INT scroll_step,
+ int temp_scroll_step, int last_line_misfit)
{
struct window *w = XWINDOW (window);
struct frame *f = XFRAME (w->frame);
Shows contents of glyph row structures. With non-nil
parameter GLYPHS, dump glyphs as well. If GLYPHS is 1 show
glyphs in short form, otherwise show glyphs in long form. */)
- (glyphs)
- Lisp_Object glyphs;
+ (Lisp_Object glyphs)
{
struct window *w = XWINDOW (selected_window);
struct buffer *buffer = XBUFFER (w->buffer);
DEFUN ("dump-frame-glyph-matrix", Fdump_frame_glyph_matrix,
Sdump_frame_glyph_matrix, 0, 0, "", doc: /* */)
- ()
+ (void)
{
struct frame *f = XFRAME (selected_frame);
dump_glyph_matrix (f->current_matrix, 1);
GLYPH 0 means don't dump glyphs.
GLYPH 1 means dump glyphs in short form.
GLYPH > 1 or omitted means dump glyphs in long form. */)
- (row, glyphs)
- Lisp_Object row, glyphs;
+ (Lisp_Object row, Lisp_Object glyphs)
{
struct glyph_matrix *matrix;
int vpos;
GLYPH 0 means don't dump glyphs.
GLYPH 1 means dump glyphs in short form.
GLYPH > 1 or omitted means dump glyphs in long form. */)
- (row, glyphs)
- Lisp_Object row, glyphs;
+ (Lisp_Object row, Lisp_Object glyphs)
{
struct frame *sf = SELECTED_FRAME ();
struct glyph_matrix *m = XWINDOW (sf->tool_bar_window)->current_matrix;
DEFUN ("trace-redisplay", Ftrace_redisplay, Strace_redisplay, 0, 1, "P",
doc: /* Toggle tracing of redisplay.
With ARG, turn tracing on if and only if ARG is positive. */)
- (arg)
- Lisp_Object arg;
+ (Lisp_Object arg)
{
if (NILP (arg))
trace_redisplay_p = !trace_redisplay_p;
DEFUN ("trace-to-stderr", Ftrace_to_stderr, Strace_to_stderr, 1, MANY, "",
doc: /* Like `format', but print result to stderr.
usage: (trace-to-stderr STRING &rest OBJECTS) */)
- (nargs, args)
- int nargs;
- Lisp_Object *args;
+ (int nargs, Lisp_Object *args)
{
Lisp_Object s = Fformat (nargs, args);
fprintf (stderr, "%s", SDATA (s));
paragraphs, text begins at the right margin and is read from right to left.
See also `bidi-paragraph-direction'. */)
- (buffer)
- Lisp_Object buffer;
+ (Lisp_Object buffer)
{
struct buffer *buf;
struct buffer *old;
Optional third and fourth args WINDOW and BUFFER specify the window
and buffer to use as the context for the formatting (defaults
are the selected window and the window's buffer). */)
- (format, face, window, buffer)
- Lisp_Object format, face, window, buffer;
+ (Lisp_Object format, Lisp_Object face, Lisp_Object window, Lisp_Object buffer)
{
struct it it;
int len;
obj = Fget_buffer_process (Fcurrent_buffer ());
if (NILP (obj))
return "no process";
-#ifdef subprocesses
+#ifndef MSDOS
obj = Fsymbol_name (Fprocess_status (obj));
#endif
break;
Value is the number of columns displayed. */
static int
-display_string (string, lisp_string, face_string, face_string_pos,
- start, it, field_width, precision, max_x, multibyte)
- unsigned char *string;
- Lisp_Object lisp_string;
- Lisp_Object face_string;
- EMACS_INT face_string_pos;
- EMACS_INT start;
- struct it *it;
- int field_width, precision, max_x;
- int multibyte;
+display_string (unsigned char *string, Lisp_Object lisp_string, Lisp_Object face_string,
+ EMACS_INT face_string_pos, EMACS_INT start, struct it *it,
+ int field_width, int precision, int max_x, int multibyte)
{
int hpos_at_start = it->hpos;
int saved_face_id = it->face_id;
value of the `invisible' property of the text of interest.
The non-nil value returned can be t for truly invisible text or something
else if the text is replaced by an ellipsis. */)
- (pos_or_prop)
- Lisp_Object pos_or_prop;
+ (Lisp_Object pos_or_prop)
{
Lisp_Object prop
= (NATNUMP (pos_or_prop) || MARKERP (pos_or_prop)
A polygon is a cons (poly . [x0 y0 x1 y1 ...]) where each pair in the
vector describes one corner in the polygon.
Returns the alist element for the first matching AREA in MAP. */)
- (map, x, y)
- Lisp_Object map;
- Lisp_Object x, y;
+ (Lisp_Object map, Lisp_Object x, Lisp_Object y)
{
if (NILP (map))
return Qnil;