aboutsummaryrefslogtreecommitdiffstats
path: root/src/msdos.c
diff options
context:
space:
mode:
authorRichard M. Stallman1997-08-11 21:40:57 +0000
committerRichard M. Stallman1997-08-11 21:40:57 +0000
commitdb72273572272309e0fca323847488fa90150cb0 (patch)
tree6fa41c89c90f11a7ca2788c5302e2f8ddcfb1408 /src/msdos.c
parent5043ddd4d4ffa198c769e78e7de27b67f7486b25 (diff)
downloademacs-db72273572272309e0fca323847488fa90150cb0.tar.gz
emacs-db72273572272309e0fca323847488fa90150cb0.zip
(IT_set_frame_parameters): Actually store the frame
parameters in the frame parameters' alist.
Diffstat (limited to 'src/msdos.c')
-rw-r--r--src/msdos.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/msdos.c b/src/msdos.c
index 7d31874e38c..bed172fa03e 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1,5 +1,5 @@
1/* MS-DOS specific C utilities. 1/* MS-DOS specific C utilities.
2 Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. 2 Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
5 5
@@ -956,18 +956,36 @@ IT_set_frame_parameters (f, alist)
956 Lisp_Object alist; 956 Lisp_Object alist;
957{ 957{
958 Lisp_Object tail; 958 Lisp_Object tail;
959 int length = XINT (Flength (alist));
960 int i;
961 Lisp_Object *parms
962 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
963 Lisp_Object *values
964 = (Lisp_Object *) alloca (length * sizeof (Lisp_Object));
959 int redraw; 965 int redraw;
960 extern unsigned long load_color (); 966 extern unsigned long load_color ();
961 967
962 redraw = 0; 968 redraw = 0;
969
970 /* Extract parm names and values into those vectors. */
971 i = 0;
963 for (tail = alist; CONSP (tail); tail = Fcdr (tail)) 972 for (tail = alist; CONSP (tail); tail = Fcdr (tail))
964 { 973 {
965 Lisp_Object elt, prop, val; 974 Lisp_Object elt;
966 975
967 elt = Fcar (tail); 976 elt = Fcar (tail);
968 prop = Fcar (elt); 977 parms[i] = Fcar (elt);
969 val = Fcdr (elt); 978 CHECK_SYMBOL (parms[i], 1);
970 CHECK_SYMBOL (prop, 1); 979 values[i] = Fcdr (elt);
980 i++;
981 }
982
983
984 /* Now process them in reverse of specified order. */
985 for (i--; i >= 0; i--)
986 {
987 Lisp_Object prop = parms[i];
988 Lisp_Object val = values[i];
971 989
972 if (EQ (prop, intern ("foreground-color"))) 990 if (EQ (prop, intern ("foreground-color")))
973 { 991 {
@@ -993,6 +1011,9 @@ IT_set_frame_parameters (f, alist)
993 } 1011 }
994 else if (EQ (prop, intern ("menu-bar-lines"))) 1012 else if (EQ (prop, intern ("menu-bar-lines")))
995 x_set_menu_bar_lines (f, val, 0); 1013 x_set_menu_bar_lines (f, val, 0);
1014
1015 store_frame_param (f, prop, val);
1016
996 } 1017 }
997 1018
998 if (redraw) 1019 if (redraw)