Mercurial > emacs
changeset 19293:af78882332ed
(IT_set_frame_parameters): Actually store the frame
parameters in the frame parameters' alist.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 11 Aug 1997 21:40:57 +0000 |
parents | 06e026c6ba9e |
children | 1f8ca0c4836f |
files | src/msdos.c |
diffstat | 1 files changed, 26 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/msdos.c Mon Aug 11 18:32:12 1997 +0000 +++ b/src/msdos.c Mon Aug 11 21:40:57 1997 +0000 @@ -1,5 +1,5 @@ /* MS-DOS specific C utilities. - Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -956,18 +956,36 @@ Lisp_Object alist; { Lisp_Object tail; + int length = XINT (Flength (alist)); + int i; + Lisp_Object *parms + = (Lisp_Object *) alloca (length * sizeof (Lisp_Object)); + Lisp_Object *values + = (Lisp_Object *) alloca (length * sizeof (Lisp_Object)); int redraw; extern unsigned long load_color (); redraw = 0; + + /* Extract parm names and values into those vectors. */ + i = 0; for (tail = alist; CONSP (tail); tail = Fcdr (tail)) { - Lisp_Object elt, prop, val; + Lisp_Object elt; elt = Fcar (tail); - prop = Fcar (elt); - val = Fcdr (elt); - CHECK_SYMBOL (prop, 1); + parms[i] = Fcar (elt); + CHECK_SYMBOL (parms[i], 1); + values[i] = Fcdr (elt); + i++; + } + + + /* Now process them in reverse of specified order. */ + for (i--; i >= 0; i--) + { + Lisp_Object prop = parms[i]; + Lisp_Object val = values[i]; if (EQ (prop, intern ("foreground-color"))) { @@ -993,6 +1011,9 @@ } else if (EQ (prop, intern ("menu-bar-lines"))) x_set_menu_bar_lines (f, val, 0); + + store_frame_param (f, prop, val); + } if (redraw)