comparison src/dired-msw.c @ 622:11502791fc1c

[xemacs-hg @ 2001-06-22 01:49:57 by ben] dired-msw.c: Fix problem noted by Michael Sperber with directories containing [] and code that destructively modifies an existing string. term\AT386.el: Fix warnings. term\apollo.el: Removed. Kill kill kill. Sync with FSF and remove most crap. term\linux.el: Removed. Sync with FSF. Don't define most defns, because they are automatically defined by termcap. But do add defns for keys that normally get defined as f13, f14, etc. and really ought to be shift-f3, shift-f4, etc. (NOTE: I did this based on Cygwin, which emulates the Linux console. I would appreciate it if someone on Linux could verify.) term\cygwin.el: New. Load term/linux. term\lk201.el, term\news.el, term\vt100.el: Sync with FSF. Fix warnings. dialog-gtk.el: Fix warning. For 21.4: help.el, update-elc.el: Compile in proper order. Maybe for 21.4: keydefs.el: Add a defn for M-?, previously undefined, to access help -- in case the terminal is not set up right, or f1 gets redefined. README: Rewrite.
author ben
date Fri, 22 Jun 2001 01:50:04 +0000
parents 183866b06e0b
children 943eaba38521
comparison
equal deleted inserted replaced
621:29117767b6b8 622:11502791fc1c
418 switches do not contain `d', so that a full listing is expected. 418 switches do not contain `d', so that a full listing is expected.
419 */ 419 */
420 (file, switches, wildcard, full_directory_p)) 420 (file, switches, wildcard, full_directory_p))
421 { 421 {
422 Lisp_Object result, handler, wildpat, fns, basename; 422 Lisp_Object result, handler, wildpat, fns, basename;
423 char *filename;
424 char *switchstr; 423 char *switchstr;
425 int len, nfiles, i; 424 int nfiles, i;
426 int hide_system, hide_dot, reverse, display_size; 425 int hide_system, hide_dot, reverse, display_size;
427 WIN32_FIND_DATA *files, **sorted_files; 426 WIN32_FIND_DATA *files, **sorted_files;
428 enum mswindows_sortby sort_by; 427 enum mswindows_sortby sort_by;
429 char fmtbuf[MAXNAMLEN+100]; /* larger than necessary */ 428 char fmtbuf[MAXNAMLEN+100]; /* larger than necessary */
430 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; 429 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
485 break; 484 break;
486 } 485 }
487 } 486 }
488 } 487 }
489 488
490 /*
491 * Sometimes we get ".../foo* /" as FILE (without the space).
492 * While the shell and `ls' don't mind, we certainly do,
493 * because it makes us think there is no wildcard, only a
494 * directory name.
495 */
496 if (!NILP(Fstring_match(build_string("[[?*]"), file, Qnil, Qnil)))
497 {
498 wildcard = Qt;
499 filename = XSTRING_DATA(file);
500 len = strlen(filename);
501 if (len > 0 && (filename[len - 1] == '\\' ||
502 filename[len - 1] == '/'))
503 {
504 filename[len - 1] = '\0';
505 }
506 file = build_string(filename);
507 }
508 if (!NILP(wildcard)) 489 if (!NILP(wildcard))
509 { 490 {
510 Lisp_Object newfile; 491 Lisp_Object newfile;
511 492
493 file = Fdirectory_file_name (file);
512 basename = Ffile_name_nondirectory(file); 494 basename = Ffile_name_nondirectory(file);
513 fns = intern("wildcard-to-regexp"); 495 fns = intern("wildcard-to-regexp");
514 wildpat = call1(fns, basename); 496 wildpat = call1(fns, basename);
515 newfile = Ffile_name_directory(file); 497 newfile = Ffile_name_directory(file);
516 if (NILP(newfile)) 498 if (NILP(newfile))