home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2235 < prev    next >
Encoding:
Internet Message Format  |  1990-12-28  |  1.4 KB

  1. From: jay@gdx.UUCP (Jay A. Snyder)
  2. Newsgroups: alt.sources
  3. Subject: Neat utility to convert uppercase filenames
  4. Message-ID: <76@gdx.UUCP>
  5. Date: 7 Dec 90 18:39:51 GMT
  6.  
  7.  
  8. Did you ever do mget from simtel20 or ymodem batch downloads from an MSDOS
  9. BBS, and get a lot of uppercase files in your directory?
  10.  
  11. Well this is a utility that will take all specified files and convert
  12. them to lower case.
  13.  
  14. One exception is that trailing .Z's will be left uppercase
  15.  
  16. eg.
  17.  
  18. % ls
  19. FILE.ZIP  FOO.BAR  TESTARC.TAR
  20.  
  21. % fdncase *
  22. FILE.ZIP ==> file.zip
  23. FOO.BAR.Z ==> foo.bar
  24. TESTARC.TAR.Z ==> testarc.tar
  25. %
  26.  
  27. ----- snip snip -----
  28. #include <stdio.h>
  29. #include <stdlib.h>
  30.  
  31. usage()
  32. {
  33.   fprintf(stderr,"fdncase: File DowNcase\n");
  34.   fprintf(stderr,"usage: fdncase file1 file2 ...\n");
  35.   exit(0);
  36. }
  37.  
  38. char *strtolcpy(d,s)
  39.      char *s,*d;
  40. {
  41.   char *r;
  42.   r=d;
  43.   while (*d++=tolower(*s++));
  44.   return(r);
  45. }
  46.  
  47. #ifdef SYSV
  48. rename(old,new)
  49.      char *old,*new;
  50. {
  51.   int error;
  52.   if (!(error=link(old,new)))
  53.     {
  54.       unlink(old);
  55.       return(0);
  56.     }
  57.   else
  58.     return error;
  59. }
  60. #endif
  61.  
  62. main(argc,argv)
  63.      int argc;
  64.      int *argv[];
  65. {
  66.   int i;
  67.   char tmpstr[80];
  68.   if (argc==1) usage();
  69.   for (i=1;i<argc;++i)
  70.     {
  71.       if (strcmp(argv[i],strtolcpy(tmpstr,argv[i])))
  72.     {
  73.       if (!rename(argv[i],tmpstr))
  74.         fprintf(stderr,"%s ==> %s\n",argv[i],tmpstr);
  75.       else
  76.         fprintf(stderr,"error renaming %s\n",argv[i]);
  77.     }
  78.       else
  79.     {
  80.       fprintf(stderr,"%s already lower case\n",argv[i]);
  81.     }
  82.     }
  83. }
  84.