Commit 3346c1d0 authored by Dmitry Antipov's avatar Dmitry Antipov

* keymap.c (map_keymap_internal): Use format_save_value.

(map_keymap_char_table_item): Adjust accordingly.
* fileio.c (non_regular_fd, non_regular_inserted)
(non_regular_nbytes): Remove.
(Finsert_file_contents): Convert trytry to ptrdiff_t.  Use
format_save_value to pass parameters to read_non_regular.
(read_non_regular): Use XSAVE_ macros to extract parameters.
Adjust comment.
* xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
format_save_value.
(pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
parent 2b30549c
2013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
* keymap.c (map_keymap_internal): Use format_save_value.
(map_keymap_char_table_item): Adjust accordingly.
* fileio.c (non_regular_fd, non_regular_inserted)
(non_regular_nbytes): Remove.
(Finsert_file_contents): Convert trytry to ptrdiff_t. Use
format_save_value to pass parameters to read_non_regular.
(read_non_regular): Use XSAVE_ macros to extract parameters.
Adjust comment.
* xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
format_save_value.
(pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
2013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
* lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
......
......@@ -3408,30 +3408,22 @@ decide_coding_unwind (Lisp_Object unwind_data)
return Qnil;
}
/* Used to pass values from insert-file-contents to read_non_regular. */
static int non_regular_fd;
static ptrdiff_t non_regular_inserted;
static int non_regular_nbytes;
/* Read from a non-regular file.
Read non_regular_nbytes bytes max from non_regular_fd.
Non_regular_inserted specifies where to put the read bytes.
Value is the number of bytes read. */
/* Read from a non-regular file. STATE is a Lisp_Save_Value
object where slot 0 is the file descriptor, slot 1 specifies
an offset to put the read bytes, and slot 2 is the maximum
amount of bytes to read. Value is the number of bytes read. */
static Lisp_Object
read_non_regular (Lisp_Object ignore)
read_non_regular (Lisp_Object state)
{
int nbytes;
immediate_quit = 1;
QUIT;
nbytes = emacs_read (non_regular_fd,
nbytes = emacs_read (XSAVE_INTEGER (state, 0),
((char *) BEG_ADDR + PT_BYTE - BEG_BYTE
+ non_regular_inserted),
non_regular_nbytes);
+ XSAVE_INTEGER (state, 1)),
XSAVE_INTEGER (state, 2));
immediate_quit = 0;
return make_number (nbytes);
}
......@@ -4238,7 +4230,7 @@ by calling `format-decode', which see. */)
while (how_much < total)
{
/* try is reserved in some compilers (Microsoft C) */
int trytry = min (total - how_much, READ_BUF_SIZE);
ptrdiff_t trytry = min (total - how_much, READ_BUF_SIZE);
ptrdiff_t this;
if (not_regular)
......@@ -4255,12 +4247,11 @@ by calling `format-decode', which see. */)
/* Read from the file, capturing `quit'. When an
error occurs, end the loop, and arrange for a quit
to be signaled after decoding the text we read. */
non_regular_fd = fd;
non_regular_inserted = inserted;
non_regular_nbytes = trytry;
nbytes = internal_condition_case_1 (read_non_regular,
Qnil, Qerror,
read_non_regular_quit);
nbytes = internal_condition_case_1
(read_non_regular,
format_save_value ("iii", (ptrdiff_t) fd, inserted, trytry),
Qerror, read_non_regular_quit);
if (NILP (nbytes))
{
read_quit = 1;
......
......@@ -565,14 +565,13 @@ map_keymap_char_table_item (Lisp_Object args, Lisp_Object key, Lisp_Object val)
{
if (!NILP (val))
{
map_keymap_function_t fun = XSAVE_POINTER (XCAR (args), 0);
args = XCDR (args);
map_keymap_function_t fun = XSAVE_POINTER (args, 0);
/* If the key is a range, make a copy since map_char_table modifies
it in place. */
if (CONSP (key))
key = Fcons (XCAR (key), XCDR (key));
map_keymap_item (fun, XCDR (args), key, val,
XSAVE_POINTER (XCAR (args), 0));
map_keymap_item (fun, XSAVE_OBJECT (args, 2), key,
val, XSAVE_POINTER (args, 1));
}
}
......@@ -610,12 +609,8 @@ map_keymap_internal (Lisp_Object map,
}
}
else if (CHAR_TABLE_P (binding))
{
map_char_table (map_keymap_char_table_item, Qnil, binding,
Fcons (make_save_value ((void *) fun, 0),
Fcons (make_save_value (data, 0),
args)));
}
map_char_table (map_keymap_char_table_item, Qnil, binding,
format_save_value ("ppo", fun, data, args));
}
UNGCPRO;
return tail;
......
......@@ -2236,8 +2236,8 @@ menu_help_callback (char const *help_string, int pane, int item)
static Lisp_Object
pop_down_menu (Lisp_Object arg)
{
FRAME_PTR f = XSAVE_POINTER (Fcar (arg), 0);
XMenu *menu = XSAVE_POINTER (Fcdr (arg), 0);
FRAME_PTR f = XSAVE_POINTER (arg, 0);
XMenu *menu = XSAVE_POINTER (arg, 1);
block_input ();
#ifndef MSDOS
......@@ -2479,8 +2479,7 @@ xmenu_show (FRAME_PTR f, int x, int y, bool for_click, bool keymaps,
#endif
record_unwind_protect (pop_down_menu,
Fcons (make_save_value (f, 0),
make_save_value (menu, 0)));
format_save_value ("pp", f, menu));
/* Help display under X won't work because XMenuActivate contains
a loop that doesn't give Emacs a chance to process it. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment