diff options
| author | Richard M. Stallman | 1997-08-11 21:40:57 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1997-08-11 21:40:57 +0000 |
| commit | db72273572272309e0fca323847488fa90150cb0 (patch) | |
| tree | 6fa41c89c90f11a7ca2788c5302e2f8ddcfb1408 /src/msdos.c | |
| parent | 5043ddd4d4ffa198c769e78e7de27b67f7486b25 (diff) | |
| download | emacs-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.c | 31 |
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 | ||
| 4 | This file is part of GNU Emacs. | 4 | This 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) |