Mercurial > emacs
comparison src/fileio.c @ 16651:e7449d679e72
(Fread_file_name_internal): Verify STRING is a string.
(Fread_file_name): Don't insert DIR or INITIAL if it isn't a string.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 09 Dec 1996 06:38:01 +0000 |
parents | 21aae8d73ddd |
children | d3d202f71430 |
comparison
equal
deleted
inserted
replaced
16650:092790f767a4 | 16651:e7449d679e72 |
---|---|
4302 { | 4302 { |
4303 Lisp_Object name, specdir, realdir, val, orig_string; | 4303 Lisp_Object name, specdir, realdir, val, orig_string; |
4304 int changed; | 4304 int changed; |
4305 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; | 4305 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; |
4306 | 4306 |
4307 CHECK_STRING (string, 0); | |
4308 | |
4307 realdir = dir; | 4309 realdir = dir; |
4308 name = string; | 4310 name = string; |
4309 orig_string = Qnil; | 4311 orig_string = Qnil; |
4310 specdir = Qnil; | 4312 specdir = Qnil; |
4311 changed = 0; | 4313 changed = 0; |
4407 dir = make_string (XSTRING (dir)->data + strlen (homedir) - 1, | 4409 dir = make_string (XSTRING (dir)->data + strlen (homedir) - 1, |
4408 XSTRING (dir)->size - strlen (homedir) + 1); | 4410 XSTRING (dir)->size - strlen (homedir) + 1); |
4409 XSTRING (dir)->data[0] = '~'; | 4411 XSTRING (dir)->data[0] = '~'; |
4410 } | 4412 } |
4411 | 4413 |
4412 if (insert_default_directory) | 4414 if (insert_default_directory && STRINGP (dir)) |
4413 { | 4415 { |
4414 insdef = dir; | 4416 insdef = dir; |
4415 if (!NILP (initial)) | 4417 if (!NILP (initial)) |
4416 { | 4418 { |
4417 Lisp_Object args[2], pos; | 4419 Lisp_Object args[2], pos; |
4423 insdef1 = Fcons (double_dollars (insdef), pos); | 4425 insdef1 = Fcons (double_dollars (insdef), pos); |
4424 } | 4426 } |
4425 else | 4427 else |
4426 insdef1 = double_dollars (insdef); | 4428 insdef1 = double_dollars (insdef); |
4427 } | 4429 } |
4428 else if (!NILP (initial)) | 4430 else if (STRINGP (initial)) |
4429 { | 4431 { |
4430 insdef = initial; | 4432 insdef = initial; |
4431 insdef1 = Fcons (double_dollars (insdef), 0); | 4433 insdef1 = Fcons (double_dollars (insdef), 0); |
4432 } | 4434 } |
4433 else | 4435 else |