From be49563060825d8b3baee044ec6e463444f9fcaa Mon Sep 17 00:00:00 2001 From: Andriy Palamarchuk Date: Tue, 19 Feb 2002 18:38:22 +0000 Subject: [PATCH] Implemented parsing of file name, passed in command line, loading new file on startup. --- programs/notepad/Da.rc | 3 + programs/notepad/De.rc | 5 ++ programs/notepad/En.rc | 3 + programs/notepad/Es.rc | 3 + programs/notepad/Fi.rc | 3 + programs/notepad/Fr.rc | 3 + programs/notepad/Pt.rc | 5 ++ programs/notepad/Sk.rc | 5 ++ programs/notepad/Sw.rc | 3 + programs/notepad/Wa.rc | 5 ++ programs/notepad/dialog.c | 4 +- programs/notepad/main.c | 113 ++++++++++++++++++++++++++++-------- programs/notepad/main.h | 21 +++---- programs/notepad/notepad.rc | 2 + 14 files changed, 143 insertions(+), 35 deletions(-) diff --git a/programs/notepad/Da.rc b/programs/notepad/Da.rc index 2cc3a3dd3a5..6ddc58191bc 100644 --- a/programs/notepad/Da.rc +++ b/programs/notepad/Da.rc @@ -91,6 +91,9 @@ /* FIXME: */ +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Filen '%s'\n has been modified.\n\n \ Would you like to save the changes ?" diff --git a/programs/notepad/De.rc b/programs/notepad/De.rc index c8af06dbcd3..b0108ae5de3 100644 --- a/programs/notepad/De.rc +++ b/programs/notepad/De.rc @@ -92,6 +92,11 @@ Benutzen Sie bitte einen anderen Editor, um diese Datei zu bearbeiten." gespeichert\n werden könnte. Geben Sie Text ein, und versuchen Sie es \ \nerneut." +/* FIXME */ + +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Datei %s\n wurde geaendert.\n\n \ Moechten Sie die Aenderungen speichern ?" diff --git a/programs/notepad/En.rc b/programs/notepad/En.rc index 1be4cb57fa9..2a56c224f47 100644 --- a/programs/notepad/En.rc +++ b/programs/notepad/En.rc @@ -91,6 +91,9 @@ Please use a different editor." #define STRING_NOTEXT "You didn't enter any text. \ \nPlease type something and try again" +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "File '%s'\nhas been modified\n\n \ Would you like to save the changes ?" diff --git a/programs/notepad/Es.rc b/programs/notepad/Es.rc index c908ad2e98b..79d7fb41709 100644 --- a/programs/notepad/Es.rc +++ b/programs/notepad/Es.rc @@ -94,6 +94,9 @@ Use otro editor." /* FIXME */ +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "El texto en el archivo '%s' ha cambiado\n\n \ żDesea guardar los cambios?" diff --git a/programs/notepad/Fi.rc b/programs/notepad/Fi.rc index 877d16078b6..8dfaf1bae70 100644 --- a/programs/notepad/Fi.rc +++ b/programs/notepad/Fi.rc @@ -92,6 +92,9 @@ Please use a different editor." /* FIXME */ +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "File '%s'\nhas been modified\n\n \ Would you like to save your changes ?" diff --git a/programs/notepad/Fr.rc b/programs/notepad/Fr.rc index 2778e6ba7a5..61b4166262f 100644 --- a/programs/notepad/Fr.rc +++ b/programs/notepad/Fr.rc @@ -93,6 +93,9 @@ Veuillez utiliser un autre /* FIXME */ +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Le fichier '%s'\n\n a change\n \ Would you like to save your changes ?" diff --git a/programs/notepad/Pt.rc b/programs/notepad/Pt.rc index 3f41d59fdeb..176e35dd54e 100644 --- a/programs/notepad/Pt.rc +++ b/programs/notepad/Pt.rc @@ -90,6 +90,11 @@ Por favor use um editor diferente." #define STRING_NOTEXT "Vocę năo digitou nenhum texto. \ \nPor favor digite alguma coisa e tente novamente" +/* FIXME */ + +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Arquivo '%s'\nfoi modificado\n\n \ Gostaria de salvar as alteraçŐes ?" diff --git a/programs/notepad/Sk.rc b/programs/notepad/Sk.rc index 3d58a8619cd..59acd593138 100644 --- a/programs/notepad/Sk.rc +++ b/programs/notepad/Sk.rc @@ -91,6 +91,11 @@ Please use a different editor." #define STRING_NOTEXT "Nič ste nenapísali. \ \nProsím, napíšte nejaký text a pokúste sa znovu." +/* FIXME */ + +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Súbor '%s'\nbol zmenenýn\n \ Prajete si uložiť zmeny ?" diff --git a/programs/notepad/Sw.rc b/programs/notepad/Sw.rc index 38c6c8d01f2..615ca333d8d 100644 --- a/programs/notepad/Sw.rc +++ b/programs/notepad/Sw.rc @@ -93,6 +93,9 @@ Anv /* FIXME */ +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Filen '%s'\nhas been modified\n\n \ Would you like to save your changes ?" diff --git a/programs/notepad/Wa.rc b/programs/notepad/Wa.rc index 4c2f558d2bc..ddfd1d4b38e 100644 --- a/programs/notepad/Wa.rc +++ b/programs/notepad/Wa.rc @@ -93,6 +93,11 @@ Eployoz on #define STRING_NOTEXT "Vos n' avoz rén sicrît. \ \nTapez ene sacwe čt rasayez" +/* FIXME */ + +#define STRING_DOESNOTEXIST "File '%s'\ndoes not exist\n\n \ +Do you want to create a new file ?" + #define STRING_NOTSAVED "Li fitchî '%s'\na candjî\n\n \ El voloz schaper ?" diff --git a/programs/notepad/dialog.c b/programs/notepad/dialog.c index e5de7612352..3b38a884a57 100644 --- a/programs/notepad/dialog.c +++ b/programs/notepad/dialog.c @@ -89,7 +89,7 @@ VOID AlertOutOfMemory(void) { } -BOOL ExistFile(LPCSTR szFilename) { +BOOL FileExists(LPCSTR szFilename) { /* * Returns: TRUE - if "szFileName" exists * FALSE - if it does not @@ -206,7 +206,7 @@ VOID DIALOG_FileOpen(VOID) if (GetOpenFileName(&openfilename)) { - if (ExistFile(openfilename.lpstrFile)) + if (FileExists(openfilename.lpstrFile)) DoOpenFile(openfilename.lpstrFile); else AlertFileNotFound(openfilename.lpstrFile); diff --git a/programs/notepad/main.c b/programs/notepad/main.c index c39f8bfff51..c6b686a7c05 100644 --- a/programs/notepad/main.c +++ b/programs/notepad/main.c @@ -34,6 +34,7 @@ #include "dialog.h" #include "language.h" +extern BOOL FileExists(LPCSTR szFilename); extern BOOL DoCloseFile(void); extern void DoOpenFile(LPCSTR szFileName); @@ -477,7 +478,6 @@ void LoadBufferFromFile(LPCSTR szFileName) memmove(&pTemp[0],&pTemp[i], bytes_left); } CloseHandle(hFile); - MessageBox(Globals.hMainWnd, "Finished", "Info", MB_OK); } BOOL DoInput(HDC hDC, WPARAM wParam, LPARAM lParam) @@ -847,6 +847,94 @@ LRESULT WINAPI NOTEPAD_WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPara return 0l; } +int AlertFileDoesNotExist(LPSTR szFileName) { + + int nResult; + CHAR szMessage[MAX_STRING_LEN]; + CHAR szRessource[MAX_STRING_LEN]; + + LoadString(Globals.hInstance, IDS_DOESNOTEXIST, szRessource, + sizeof(szRessource)); + wsprintf(szMessage, szRessource, szFileName); + + LoadString(Globals.hInstance, IDS_ERROR, szRessource, sizeof(szRessource)); + + nResult = MessageBox(Globals.hMainWnd, szMessage, szRessource, + MB_ICONEXCLAMATION | MB_YESNO); + + return(nResult); +} + +void HandleCommandLine(LPSTR cmdline) +{ + + while (*cmdline && (*cmdline == ' ' || *cmdline == '-')) + + { + CHAR option; + + if (*cmdline++ == ' ') continue; + + option = *cmdline; + if (option) cmdline++; + while (*cmdline && *cmdline == ' ') cmdline++; + + switch(option) + { + case 'p': + case 'P': printf("Print file: "); + /* Not yet able to print a file */ + break; + } + } + + if (*cmdline) + { + /* file name is passed in the command line */ + char *file_name; + BOOL file_exists; + char buf[MAX_PATH]; + + if (FileExists(cmdline)) + { + file_exists = TRUE; + file_name = cmdline; + } + else + { + /* try to find file with ".txt" extention */ + if (!strcmp(".txt", cmdline + strlen(cmdline) - strlen(".txt"))) + { + file_exists = FALSE; + file_name = cmdline; + } + else + { + strncpy(buf, cmdline, MAX_PATH - strlen(".txt") - 1); + strcat(buf, ".txt"); + file_name = buf; + file_exists = FileExists(buf); + } + } + + if (file_exists) + { + DoOpenFile(file_name); + InvalidateRect(Globals.hMainWnd, NULL, FALSE); + } + else + { + switch (AlertFileDoesNotExist(file_name)) { + case IDYES: + DoOpenFile(file_name); + break; + + case IDNO: + break; + } + } + } +} /*********************************************************************** @@ -932,28 +1020,7 @@ int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show "Error", MB_ICONEXCLAMATION); } - /* now handle command line */ - - while (*cmdline && (*cmdline == ' ' || *cmdline == '-')) - - { - CHAR option; -/* LPCSTR topic_id; */ - - if (*cmdline++ == ' ') continue; - - option = *cmdline; - if (option) cmdline++; - while (*cmdline && *cmdline == ' ') cmdline++; - - switch(option) - { - case 'p': - case 'P': printf("Print file: "); - /* Not yet able to print a file */ - break; - } - } + HandleCommandLine(cmdline); /* Set up Drag&Drop */ diff --git a/programs/notepad/main.h b/programs/notepad/main.h index 304491c7f95..a54fb634957 100644 --- a/programs/notepad/main.h +++ b/programs/notepad/main.h @@ -82,17 +82,18 @@ extern CHAR STRING_PAGESETUP_Xx[]; #define IDS_INFO STRINGID(07) #define IDS_TOOLARGE STRINGID(08) #define IDS_NOTEXT STRINGID(09) -#define IDS_NOTSAVED STRINGID(0A) -#define IDS_NOTFOUND STRINGID(0B) -#define IDS_OUT_OF_MEMORY STRINGID(0C) -#define IDS_UNTITLED STRINGID(0D) +#define IDS_DOESNOTEXIST STRINGID(0A) +#define IDS_NOTSAVED STRINGID(0B) +#define IDS_NOTFOUND STRINGID(0C) +#define IDS_OUT_OF_MEMORY STRINGID(0D) +#define IDS_UNTITLED STRINGID(0E) -#define IDS_PAGESETUP_HEADERVALUE STRINGID(0E) -#define IDS_PAGESETUP_FOOTERVALUE STRINGID(0F) -#define IDS_PAGESETUP_LEFTVALUE STRINGID(10) -#define IDS_PAGESETUP_RIGHTVALUE STRINGID(11) -#define IDS_PAGESETUP_TOPVALUE STRINGID(12) -#define IDS_PAGESETUP_BOTTOMVALUE STRINGID(13) +#define IDS_PAGESETUP_HEADERVALUE STRINGID(0F) +#define IDS_PAGESETUP_FOOTERVALUE STRINGID(10) +#define IDS_PAGESETUP_LEFTVALUE STRINGID(11) +#define IDS_PAGESETUP_RIGHTVALUE STRINGID(12) +#define IDS_PAGESETUP_TOPVALUE STRINGID(13) +#define IDS_PAGESETUP_BOTTOMVALUE STRINGID(14) /* main menu */ diff --git a/programs/notepad/notepad.rc b/programs/notepad/notepad.rc index fa14a82face..8d6d1f08cb0 100644 --- a/programs/notepad/notepad.rc +++ b/programs/notepad/notepad.rc @@ -102,6 +102,7 @@ ADDSTRING(WARNING) ADDSTRING(INFO) ADDSTRING(TOOLARGE) ADDSTRING(NOTEXT) +ADDSTRING(DOESNOTEXIST) ADDSTRING(NOTSAVED) ADDSTRING(NOTFOUND) ADDSTRING(OUT_OF_MEMORY) @@ -182,6 +183,7 @@ ADDSTRING(PAGESETUP_BOTTOMVALUE) #undef STRING_TEXT_FILES_TXT #undef STRING_TOOLARGE #undef STRING_NOTEXT +#undef STRING_DOESNOTEXIST #undef STRING_NOTSAVED #undef STRING_NOTFOUND #undef STRING_OUT_OF_MEMORY