Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Include files */
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAX_NAME_SIZE (8)
#define MAX_EXT_SIZE (3)
char CharRemoveList[] = "AEIOUaeiou_";
int ConvertFileName(char *NameToConvert);
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::: Main entry point */
__cdecl main(int argc, char *argv[]) { int index;
/*......................................... Validate input parameters */
if(argc < 2) { printf("Invalid usage : rename <filenames>\n"); return(1); }
for(index = 1; index < argc; index++) ConvertFileName(argv[index]);
return(0); }
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
int ConvertFileName(char *NameToConvert) { char *Name, *Ext, *ExtStart; int NameSize, ExtSize; char NewName[MAX_NAME_SIZE+1], NewFileName[1000]; char *NewNamePtr; /*....................... Get the size of the file name and extension */
for(Name = NameToConvert, NameSize = 0; *Name && *Name != '.'; Name++, NameSize++);
for(ExtStart = Name, Ext = *Name == '.' ? Name+1 : Name, ExtSize = 0; *Ext ; Ext++, ExtSize++);
/*................................ Validate name and extension sizes */
if(ExtSize > MAX_EXT_SIZE) { printf("Unable to convert '%s' to 8.3 filename\n", NameToConvert); return(1); }
if(NameSize <= MAX_NAME_SIZE) { /* Name does not need conversion */ return(0); }
/*................................................ Convert file name */
NewNamePtr = &NewName[MAX_NAME_SIZE]; *NewNamePtr-- = 0;
do { Name--;
if(NameSize > MAX_NAME_SIZE && strchr(CharRemoveList, *Name)) NameSize--; /* Remove character */ else *NewNamePtr-- = *Name; } while(NewNamePtr >= NewName && Name != NameToConvert);
/*............................................. Validate conversion */
if(NameSize > MAX_NAME_SIZE) { printf("Unable to convert '%s' to 8.3 filename\n", NameToConvert); return(1); }
sprintf(NewFileName,"%s%s", NewNamePtr+1, ExtStart); printf("REN '%s' to '%s'\n", NameToConvert, NewFileName); rename(NameToConvert, NewFileName);
return(0); }
|