Mercurial > emacs
comparison src/xfns.c @ 15566:3d03a3fb8757
(Fx_create_frame): Gcpro parms, parent, and name.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 29 Jun 1996 06:45:08 +0000 |
parents | 94467271b641 |
children | 5dca1a2581b4 |
comparison
equal
deleted
inserted
replaced
15565:2a0d1c1d2746 | 15566:3d03a3fb8757 |
---|---|
3009 Lisp_Object name; | 3009 Lisp_Object name; |
3010 int minibuffer_only = 0; | 3010 int minibuffer_only = 0; |
3011 long window_prompting = 0; | 3011 long window_prompting = 0; |
3012 int width, height; | 3012 int width, height; |
3013 int count = specpdl_ptr - specpdl; | 3013 int count = specpdl_ptr - specpdl; |
3014 struct gcpro gcpro1; | 3014 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; |
3015 Lisp_Object display; | 3015 Lisp_Object display; |
3016 struct x_display_info *dpyinfo; | 3016 struct x_display_info *dpyinfo; |
3017 Lisp_Object parent; | 3017 Lisp_Object parent; |
3018 struct kboard *kb; | 3018 struct kboard *kb; |
3019 | 3019 |
3047 if (EQ (parent, Qunbound)) | 3047 if (EQ (parent, Qunbound)) |
3048 parent = Qnil; | 3048 parent = Qnil; |
3049 if (! NILP (parent)) | 3049 if (! NILP (parent)) |
3050 CHECK_NUMBER (parent, 0); | 3050 CHECK_NUMBER (parent, 0); |
3051 | 3051 |
3052 /* make_frame_without_minibuffer can run Lisp code and garbage collect. */ | |
3053 /* No need to protect DISPLAY because that's not used after passing | |
3054 it to make_frame_without_minibuffer. */ | |
3055 frame = Qnil; | |
3056 GCPRO4 (parms, parent, name, frame); | |
3052 tem = x_get_arg (parms, Qminibuffer, 0, 0, symbol); | 3057 tem = x_get_arg (parms, Qminibuffer, 0, 0, symbol); |
3053 if (EQ (tem, Qnone) || NILP (tem)) | 3058 if (EQ (tem, Qnone) || NILP (tem)) |
3054 f = make_frame_without_minibuffer (Qnil, kb, display); | 3059 f = make_frame_without_minibuffer (Qnil, kb, display); |
3055 else if (EQ (tem, Qonly)) | 3060 else if (EQ (tem, Qonly)) |
3056 { | 3061 { |
3060 else if (WINDOWP (tem)) | 3065 else if (WINDOWP (tem)) |
3061 f = make_frame_without_minibuffer (tem, kb, display); | 3066 f = make_frame_without_minibuffer (tem, kb, display); |
3062 else | 3067 else |
3063 f = make_frame (1); | 3068 f = make_frame (1); |
3064 | 3069 |
3070 XSETFRAME (frame, f); | |
3071 | |
3065 /* Note that X Windows does support scroll bars. */ | 3072 /* Note that X Windows does support scroll bars. */ |
3066 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; | 3073 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; |
3067 | |
3068 XSETFRAME (frame, f); | |
3069 GCPRO1 (frame); | |
3070 | 3074 |
3071 f->output_method = output_x_window; | 3075 f->output_method = output_x_window; |
3072 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output)); | 3076 f->output_data.x = (struct x_output *) xmalloc (sizeof (struct x_output)); |
3073 bzero (f->output_data.x, sizeof (struct x_output)); | 3077 bzero (f->output_data.x, sizeof (struct x_output)); |
3074 f->output_data.x->icon_bitmap = -1; | 3078 f->output_data.x->icon_bitmap = -1; |