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