From 4b174b6e6e9fa55e61872e38faff967b9685a1a1 Mon Sep 17 00:00:00 2001 From: "ssu%netscape.com" Date: Wed, 24 Nov 1999 20:48:32 +0000 Subject: [PATCH] initial checkin of tool that renames files. This tool is used with the psm.xpi installer to rename 8.3 filenames to long filenames under Win95/98. Not part of tinderbox build system yet. git-svn-id: svn://10.0.0.236/trunk@54422 18797224-902f-48f8-a5cc-f745e15eee43 --- .../wizard/windows/ren8dot3/example.ini | 3 + .../wizard/windows/ren8dot3/makefile.win | 42 ++++++ .../wizard/windows/ren8dot3/ren8dot3.c | 124 ++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 mozilla/xpinstall/wizard/windows/ren8dot3/example.ini create mode 100644 mozilla/xpinstall/wizard/windows/ren8dot3/makefile.win create mode 100644 mozilla/xpinstall/wizard/windows/ren8dot3/ren8dot3.c diff --git a/mozilla/xpinstall/wizard/windows/ren8dot3/example.ini b/mozilla/xpinstall/wizard/windows/ren8dot3/example.ini new file mode 100644 index 00000000000..dce9f38d1de --- /dev/null +++ b/mozilla/xpinstall/wizard/windows/ren8dot3/example.ini @@ -0,0 +1,3 @@ +[rename] +d:\work\1 2\longfi~1.txt=d:\work\1 2\longfilename.txt + diff --git a/mozilla/xpinstall/wizard/windows/ren8dot3/makefile.win b/mozilla/xpinstall/wizard/windows/ren8dot3/makefile.win new file mode 100644 index 00000000000..619b7148ac2 --- /dev/null +++ b/mozilla/xpinstall/wizard/windows/ren8dot3/makefile.win @@ -0,0 +1,42 @@ +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is Mozilla Communicator client code, +# released March 31, 1998. +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are +# Copyright (C) 1999 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# Sean Su + +DEPTH=..\..\..\.. + +MAKE_OBJ_TYPE = EXE +USE_NON_MT_LIBS = 1 + +MODULE = ren8dot3 +PROGRAM = .\$(OBJDIR)\$(MODULE).exe + +OBJS = \ + .\$(OBJDIR)\ren8dot3.obj \ + $(NULL) + +include <$(DEPTH)\config\rules.mak> + +libs:: $(PROGRAM) + $(MAKE_INSTALL) $(PROGRAM) $(DIST)\install + +clobber_all:: + $(RM) $(DIST)\install\$(MODULE).exe + diff --git a/mozilla/xpinstall/wizard/windows/ren8dot3/ren8dot3.c b/mozilla/xpinstall/wizard/windows/ren8dot3/ren8dot3.c new file mode 100644 index 00000000000..5c9bc7c9642 --- /dev/null +++ b/mozilla/xpinstall/wizard/windows/ren8dot3/ren8dot3.c @@ -0,0 +1,124 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code, + * released March 31, 1998. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Sean Su + */ + +#include +#include +#include +#include + +#define _MAX_SIZE_ 64000 + +char *GetSubString(char *Strings) +{ + return(strchr(Strings,0)+1); +} + +void ShowUsage(char *name) +{ + char szBuf[_MAX_SIZE_]; + + sprintf(szBuf, "usage: %s \n", name); + MessageBox(NULL, szBuf, "Usage", MB_OK); +} + +void RemoveQuotes(LPSTR lpszCmdLine, LPSTR szBuf) +{ + char *lpszBegin; + + if(*lpszCmdLine == '\"') + lpszBegin = &lpszCmdLine[1]; + else + lpszBegin = lpszCmdLine; + + lstrcpy(szBuf, lpszBegin); + + if(szBuf[lstrlen(szBuf) - 1] == '\"') + szBuf[lstrlen(szBuf) - 1] = '\0'; +} + +int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) +{ + char *temp; + char *SubKey; + char *SubKeyPtr; + char *SubString; + char *SubStringPtr; + char *ReturnedKeys; + char *ReturnedStrings; + char *KeyValue; + char *SrcIni; + char *DestIni; + char szBuf[_MAX_SIZE_]; + + if(*lpszCmdLine == '\0') + { + ShowUsage("Ren8dot3.exe"); + exit(1); + } + + SrcIni = (char *)calloc(_MAX_DIR, sizeof(char)); + + RemoveQuotes(lpszCmdLine, szBuf); + GetShortPathName(szBuf, SrcIni, _MAX_DIR); + + if(GetFileAttributes(SrcIni) == -1) + { + sprintf(szBuf, "%s not found!\n", SrcIni); + MessageBox(NULL, szBuf, "Usage", MB_OK); + + free(SrcIni); + exit(1); + } + + temp = (char *)calloc(_MAX_SIZE_, sizeof(char)); + KeyValue = (char *)calloc(_MAX_SIZE_, sizeof(char)); + ReturnedKeys = (char *)calloc(_MAX_SIZE_, sizeof(char)); + ReturnedStrings = (char *)calloc(_MAX_SIZE_, sizeof(char)); + SubString = (char *)calloc(_MAX_SIZE_, sizeof(char)); + DestIni = (char *)calloc(_MAX_DIR, sizeof(char)); + SubStringPtr = SubString; + + GetPrivateProfileString("rename", NULL, "_error_", &ReturnedKeys[1], _MAX_SIZE_, SrcIni); + SubKey = (char *)calloc(_MAX_SIZE_, sizeof(char)); + SubKeyPtr = SubKey; + memcpy(SubKey, ReturnedKeys, _MAX_SIZE_); + SubKey = GetSubString(SubKey); + while((SubKey[0]) != 0) + { + GetPrivateProfileString("rename", SubKey, "_error_", KeyValue, _MAX_SIZE_, SrcIni); + rename(SubKey, KeyValue); + SubKey = GetSubString(SubKey); + } + + unlink(SrcIni); + + free(SubKeyPtr); + free(temp); + free(ReturnedKeys); + free(ReturnedStrings); + free(KeyValue); + free(SubStringPtr); + free(SrcIni); + free(DestIni); +}