https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7249b8b74f4eb70f85dc31db6be3c6161a9c0826

commit 7249b8b74f4eb70f85dc31db6be3c6161a9c0826
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Tue Jan 28 23:31:09 2020 +0900
Commit:     GitHub <[email protected]>
CommitDate: Tue Jan 28 23:31:09 2020 +0900

    [CPL][APPWIZ] Use display name for shortcut label (#2284)
    
    CORE-16534
---
 dll/cpl/appwiz/createlink.c  | 88 ++++++++++++++++++++++++++++++++++++++++++--
 dll/cpl/appwiz/lang/bg-BG.rc |  1 +
 dll/cpl/appwiz/lang/cs-CZ.rc |  1 +
 dll/cpl/appwiz/lang/de-DE.rc |  1 +
 dll/cpl/appwiz/lang/el-GR.rc |  1 +
 dll/cpl/appwiz/lang/en-US.rc |  1 +
 dll/cpl/appwiz/lang/es-ES.rc |  1 +
 dll/cpl/appwiz/lang/et-EE.rc |  1 +
 dll/cpl/appwiz/lang/fr-FR.rc |  1 +
 dll/cpl/appwiz/lang/he-IL.rc |  1 +
 dll/cpl/appwiz/lang/id-ID.rc |  1 +
 dll/cpl/appwiz/lang/it-IT.rc |  1 +
 dll/cpl/appwiz/lang/ja-JP.rc |  1 +
 dll/cpl/appwiz/lang/no-NO.rc |  1 +
 dll/cpl/appwiz/lang/pl-PL.rc |  1 +
 dll/cpl/appwiz/lang/pt-BR.rc |  1 +
 dll/cpl/appwiz/lang/pt-PT.rc |  1 +
 dll/cpl/appwiz/lang/ro-RO.rc |  1 +
 dll/cpl/appwiz/lang/ru-RU.rc |  1 +
 dll/cpl/appwiz/lang/sk-SK.rc |  1 +
 dll/cpl/appwiz/lang/sq-AL.rc |  1 +
 dll/cpl/appwiz/lang/tr-TR.rc |  1 +
 dll/cpl/appwiz/lang/uk-UA.rc |  1 +
 dll/cpl/appwiz/lang/zh-CN.rc |  1 +
 dll/cpl/appwiz/lang/zh-TW.rc |  1 +
 dll/cpl/appwiz/resource.h    |  1 +
 26 files changed, 109 insertions(+), 4 deletions(-)

diff --git a/dll/cpl/appwiz/createlink.c b/dll/cpl/appwiz/createlink.c
index 7925f0b2ea3..27ac650e96e 100644
--- a/dll/cpl/appwiz/createlink.c
+++ b/dll/cpl/appwiz/createlink.c
@@ -11,6 +11,7 @@
  */
 
 #include "appwiz.h"
+#include <shellapi.h>
 #include <strsafe.h>
 
 BOOL
@@ -176,6 +177,50 @@ BOOL IsInternetLocation(LPCWSTR pszLocation)
     return (PathIsURLW(pszLocation) || wcsstr(pszLocation, L"www.") == 
pszLocation);
 }
 
+/* Remove all invalid characters from the name */
+void
+DoConvertNameForFileSystem(LPWSTR szName)
+{
+    LPWSTR pch1, pch2;
+    for (pch1 = pch2 = szName; *pch1; ++pch1)
+    {
+        if (wcschr(L"\\/:*?\"<>|", *pch1) != NULL)
+        {
+            /* *pch1 is an invalid character */
+            continue;
+        }
+        *pch2 = *pch1;
+        ++pch2;
+    }
+    *pch2 = 0;
+}
+
+BOOL
+DoValidateShortcutName(PCREATE_LINK_CONTEXT pContext)
+{
+    SIZE_T cch;
+    LPCWSTR pch, pszName = pContext->szDescription;
+
+    if (!pszName || !pszName[0])
+        return FALSE;
+
+    cch = wcslen(pContext->szOrigin) + wcslen(pszName) + 1;
+    if (cch >= MAX_PATH)
+        return FALSE;
+
+    pch = pszName;
+    for (pch = pszName; *pch; ++pch)
+    {
+        if (wcschr(L"\\/:*?\"<>|", *pch) != NULL)
+        {
+            /* *pch is an invalid character */
+            return FALSE;
+        }
+    }
+
+    return TRUE;
+}
+
 INT_PTR
 CALLBACK
 WelcomeDlgProc(HWND hwndDlg,
@@ -191,6 +236,7 @@ WelcomeDlgProc(HWND hwndDlg,
     BROWSEINFOW brws;
     LPITEMIDLIST pidllist;
     LPWSTR pch;
+    SHFILEINFOW FileInfo;
 
     switch(uMsg)
     {
@@ -259,6 +305,11 @@ WelcomeDlgProc(HWND hwndDlg,
                     SetFocus(GetDlgItem(hwndDlg, IDC_SHORTCUT_LOCATION));
                     SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, 
PSNRET_INVALID_NOCHANGEPAGE);
 
+                    /* get display name */
+                    FileInfo.szDisplayName[0] = 0;
+                    if (SHGetFileInfoW(pContext->szTarget, 0, &FileInfo, 
sizeof(FileInfo), SHGFI_DISPLAYNAME))
+                        StringCchCopyW(pContext->szDescription, 
_countof(pContext->szDescription), FileInfo.szDisplayName);
+
                     /* set working directory */
                     StringCchCopyW(pContext->szWorkingDirectory, 
_countof(pContext->szWorkingDirectory),
                                    pContext->szTarget);
@@ -272,10 +323,17 @@ WelcomeDlgProc(HWND hwndDlg,
                 {
                     /* not found */
                     WCHAR szError[MAX_PATH + 100];
+
+                    SendDlgItemMessageW(hwndDlg, IDC_SHORTCUT_LOCATION, 
EM_SETSEL, 0, -1);
+
                     LoadStringW(hApplet, IDS_CREATE_SHORTCUT, szDesc, 
_countof(szDesc));
                     LoadStringW(hApplet, IDS_ERROR_NOT_FOUND, szPath, 
_countof(szPath));
                     StringCchPrintfW(szError, _countof(szError), szPath, 
pContext->szTarget);
                     MessageBoxW(hwndDlg, szError, szDesc, MB_ICONERROR);
+
+                    /* prevent the wizard to go next */
+                    SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+                    return TRUE;
                 }
             }
             else if (lppsn->hdr.code == PSN_RESET)
@@ -300,6 +358,8 @@ FinishDlgProc(HWND hwndDlg,
     PCREATE_LINK_CONTEXT pContext;
     LPPSHNOTIFY lppsn;
     LPWSTR pch;
+    WCHAR szText[MAX_PATH];
+    WCHAR szMessage[128];
 
     switch(uMsg)
     {
@@ -307,7 +367,11 @@ FinishDlgProc(HWND hwndDlg,
             ppsp = (LPPROPSHEETPAGEW)lParam;
             pContext = (PCREATE_LINK_CONTEXT) ppsp->lParam;
             SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pContext);
+
+            /* TODO: Use shell32!PathCleanupSpec instead of 
DoConvertNameForFileSystem */
+            DoConvertNameForFileSystem(pContext->szDescription);
             SetDlgItemTextW(hwndDlg, IDC_SHORTCUT_NAME, 
pContext->szDescription);
+
             PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | 
PSWIZB_FINISH);
             break;
         case WM_COMMAND:
@@ -316,7 +380,12 @@ FinishDlgProc(HWND hwndDlg,
                 case EN_CHANGE:
                     if (SendDlgItemMessage(hwndDlg, IDC_SHORTCUT_NAME, 
WM_GETTEXTLENGTH, 0, 0))
                     {
-                        PropSheet_SetWizButtons(GetParent(hwndDlg), 
PSWIZB_BACK | PSWIZB_FINISH);
+                        GetDlgItemTextW(hwndDlg, IDC_SHORTCUT_NAME, szText, 
_countof(szText));
+                        StrTrimW(szText, L" \t");
+                        if (szText[0])
+                            PropSheet_SetWizButtons(GetParent(hwndDlg), 
PSWIZB_BACK | PSWIZB_FINISH);
+                        else
+                            PropSheet_SetWizButtons(GetParent(hwndDlg), 
PSWIZB_BACK);
                     }
                     else
                     {
@@ -330,9 +399,21 @@ FinishDlgProc(HWND hwndDlg,
             pContext = (PCREATE_LINK_CONTEXT) GetWindowLongPtr(hwndDlg, 
DWLP_USER);
             if (lppsn->hdr.code == PSN_WIZFINISH)
             {
-                GetDlgItemTextW(hwndDlg, IDC_SHORTCUT_NAME, 
pContext->szDescription, MAX_PATH);
+                GetDlgItemTextW(hwndDlg, IDC_SHORTCUT_NAME, 
pContext->szDescription, _countof(pContext->szDescription));
                 StrTrimW(pContext->szDescription, L" \t");
 
+                if (!DoValidateShortcutName(pContext))
+                {
+                    SendDlgItemMessageW(hwndDlg, IDC_SHORTCUT_NAME, EM_SETSEL, 
0, -1);
+
+                    LoadStringW(hApplet, IDS_INVALID_NAME, szMessage, 
_countof(szMessage));
+                    MessageBoxW(hwndDlg, szMessage, NULL, MB_ICONERROR);
+
+                    /* prevent the wizard to go next */
+                    SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+                    return TRUE;
+                }
+
                 /* if old shortcut file exists, then delete it now */
                 DeleteFileW(pContext->szOldFile);
                 SHChangeNotify(SHCNE_DELETE, SHCNF_PATHW, pContext->szOldFile, 
NULL);
@@ -352,7 +433,6 @@ FinishDlgProc(HWND hwndDlg,
 
                     if (!CreateInternetShortcut(pContext))
                     {
-                        WCHAR szMessage[128];
                         LoadStringW(hApplet, IDS_CANTMAKEINETSHORTCUT, 
szMessage, _countof(szMessage));
                         MessageBoxW(hwndDlg, szMessage, NULL, MB_ICONERROR);
                     }
@@ -522,7 +602,7 @@ NewLinkHereA(HWND hwndCPl, UINT uMsg, LPARAM lParam1, 
LPARAM lParam2)
 {
     WCHAR szFile[MAX_PATH];
 
-    if (MultiByteToWideChar(CP_ACP, 0, (LPSTR) lParam1, -1, szFile, MAX_PATH))
+    if (MultiByteToWideChar(CP_ACP, 0, (LPSTR)lParam1, -1, szFile, 
_countof(szFile)))
     {
         return ShowCreateShortcutWizard(hwndCPl, szFile);
     }
diff --git a/dll/cpl/appwiz/lang/bg-BG.rc b/dll/cpl/appwiz/lang/bg-BG.rc
index 4198ecd3879..1771b697598 100644
--- a/dll/cpl/appwiz/lang/bg-BG.rc
+++ b/dll/cpl/appwiz/lang/bg-BG.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/cs-CZ.rc b/dll/cpl/appwiz/lang/cs-CZ.rc
index 4d0157bc21d..a03f07ba4b9 100644
--- a/dll/cpl/appwiz/lang/cs-CZ.rc
+++ b/dll/cpl/appwiz/lang/cs-CZ.rc
@@ -90,4 +90,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/de-DE.rc b/dll/cpl/appwiz/lang/de-DE.rc
index 29f55f9f696..f44b8e79fee 100644
--- a/dll/cpl/appwiz/lang/de-DE.rc
+++ b/dll/cpl/appwiz/lang/de-DE.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/el-GR.rc b/dll/cpl/appwiz/lang/el-GR.rc
index 4f996bd341e..53c815a9f37 100644
--- a/dll/cpl/appwiz/lang/el-GR.rc
+++ b/dll/cpl/appwiz/lang/el-GR.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/en-US.rc b/dll/cpl/appwiz/lang/en-US.rc
index b84f58d92e1..7f25e1b4a74 100644
--- a/dll/cpl/appwiz/lang/en-US.rc
+++ b/dll/cpl/appwiz/lang/en-US.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/es-ES.rc b/dll/cpl/appwiz/lang/es-ES.rc
index 52f809c83b7..9758843998e 100644
--- a/dll/cpl/appwiz/lang/es-ES.rc
+++ b/dll/cpl/appwiz/lang/es-ES.rc
@@ -94,4 +94,5 @@ BEGIN
     IDS_NO_MEMORY "No se pudo asignar memoria"
     IDS_NO_DIRECTORY "No se ha especificado directorio alguno"
     IDS_INVALID_PATH "La ruta proporcionada es inválida"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/et-EE.rc b/dll/cpl/appwiz/lang/et-EE.rc
index 9a28610184e..1536a64b7ef 100644
--- a/dll/cpl/appwiz/lang/et-EE.rc
+++ b/dll/cpl/appwiz/lang/et-EE.rc
@@ -92,4 +92,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/fr-FR.rc b/dll/cpl/appwiz/lang/fr-FR.rc
index 3a3b8419808..e03f2ef5d7c 100644
--- a/dll/cpl/appwiz/lang/fr-FR.rc
+++ b/dll/cpl/appwiz/lang/fr-FR.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/he-IL.rc b/dll/cpl/appwiz/lang/he-IL.rc
index e4ab1dd5d2f..ade66f0999d 100644
--- a/dll/cpl/appwiz/lang/he-IL.rc
+++ b/dll/cpl/appwiz/lang/he-IL.rc
@@ -86,4 +86,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/id-ID.rc b/dll/cpl/appwiz/lang/id-ID.rc
index 08924fa71a4..32e0a8ea171 100644
--- a/dll/cpl/appwiz/lang/id-ID.rc
+++ b/dll/cpl/appwiz/lang/id-ID.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "Tidak ada memori yang bisa dialokasikan!"
     IDS_NO_DIRECTORY "Direktori belum diberi!"
     IDS_INVALID_PATH "Jalur yang diberikan tidak sah!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/it-IT.rc b/dll/cpl/appwiz/lang/it-IT.rc
index 248a279785d..7cde7d4e4e2 100644
--- a/dll/cpl/appwiz/lang/it-IT.rc
+++ b/dll/cpl/appwiz/lang/it-IT.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/ja-JP.rc b/dll/cpl/appwiz/lang/ja-JP.rc
index 01ad4976552..045e9ac89de 100644
--- a/dll/cpl/appwiz/lang/ja-JP.rc
+++ b/dll/cpl/appwiz/lang/ja-JP.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/no-NO.rc b/dll/cpl/appwiz/lang/no-NO.rc
index 77ac73142bb..f1a85e72e07 100644
--- a/dll/cpl/appwiz/lang/no-NO.rc
+++ b/dll/cpl/appwiz/lang/no-NO.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/pl-PL.rc b/dll/cpl/appwiz/lang/pl-PL.rc
index 5af34f868d2..caf66710be7 100644
--- a/dll/cpl/appwiz/lang/pl-PL.rc
+++ b/dll/cpl/appwiz/lang/pl-PL.rc
@@ -95,4 +95,5 @@ BEGIN
     IDS_NO_MEMORY "Nie można przydzielić pamięci!"
     IDS_NO_DIRECTORY "Nie podano ścieżki!"
     IDS_INVALID_PATH "Podana ścieżka jest niepoprawna!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/pt-BR.rc b/dll/cpl/appwiz/lang/pt-BR.rc
index a76c1bcd118..35404e74dc2 100644
--- a/dll/cpl/appwiz/lang/pt-BR.rc
+++ b/dll/cpl/appwiz/lang/pt-BR.rc
@@ -87,4 +87,5 @@ BEGIN
     IDS_NO_MEMORY "A memória não pode ser alocada!"
     IDS_NO_DIRECTORY "Sem diretoria!"
     IDS_INVALID_PATH "O caminho é invalido!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/pt-PT.rc b/dll/cpl/appwiz/lang/pt-PT.rc
index 0c6e6801ee3..715daa40991 100644
--- a/dll/cpl/appwiz/lang/pt-PT.rc
+++ b/dll/cpl/appwiz/lang/pt-PT.rc
@@ -87,4 +87,5 @@ BEGIN
     IDS_NO_MEMORY "A memória não pode ser alocada!"
     IDS_NO_DIRECTORY "Sem directoria!"
     IDS_INVALID_PATH "O caminho é invalido!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/ro-RO.rc b/dll/cpl/appwiz/lang/ro-RO.rc
index 185243b789b..45eb1112d49 100644
--- a/dll/cpl/appwiz/lang/ro-RO.rc
+++ b/dll/cpl/appwiz/lang/ro-RO.rc
@@ -91,4 +91,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/ru-RU.rc b/dll/cpl/appwiz/lang/ru-RU.rc
index 94a9bc76c30..42d1c80017e 100644
--- a/dll/cpl/appwiz/lang/ru-RU.rc
+++ b/dll/cpl/appwiz/lang/ru-RU.rc
@@ -85,4 +85,5 @@ BEGIN
     IDS_NO_MEMORY "Невозможно выделить память."
     IDS_NO_DIRECTORY "Не указано ни одного каталога!"
     IDS_INVALID_PATH "Указанный путь неверен!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/sk-SK.rc b/dll/cpl/appwiz/lang/sk-SK.rc
index ab136de8f32..5a52da02bdc 100644
--- a/dll/cpl/appwiz/lang/sk-SK.rc
+++ b/dll/cpl/appwiz/lang/sk-SK.rc
@@ -89,4 +89,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/sq-AL.rc b/dll/cpl/appwiz/lang/sq-AL.rc
index 161f72f7e75..bf247b9a099 100644
--- a/dll/cpl/appwiz/lang/sq-AL.rc
+++ b/dll/cpl/appwiz/lang/sq-AL.rc
@@ -89,4 +89,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/tr-TR.rc b/dll/cpl/appwiz/lang/tr-TR.rc
index 34f4f76f9ed..a45bf5a6d7e 100644
--- a/dll/cpl/appwiz/lang/tr-TR.rc
+++ b/dll/cpl/appwiz/lang/tr-TR.rc
@@ -87,4 +87,5 @@ BEGIN
     IDS_NO_MEMORY "No memory could be allocated!"
     IDS_NO_DIRECTORY "No directory given!"
     IDS_INVALID_PATH "The given path is invalid!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/uk-UA.rc b/dll/cpl/appwiz/lang/uk-UA.rc
index c3ec10ceea9..965dc6233f2 100644
--- a/dll/cpl/appwiz/lang/uk-UA.rc
+++ b/dll/cpl/appwiz/lang/uk-UA.rc
@@ -93,4 +93,5 @@ BEGIN
     IDS_NO_MEMORY "Неможливо виділити пам'ять."
     IDS_NO_DIRECTORY "Не вказано жодного каталогу!"
     IDS_INVALID_PATH "Вказаний шлях недійсний!"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/zh-CN.rc b/dll/cpl/appwiz/lang/zh-CN.rc
index cd43aaeaf0e..42d017c2dd1 100644
--- a/dll/cpl/appwiz/lang/zh-CN.rc
+++ b/dll/cpl/appwiz/lang/zh-CN.rc
@@ -94,4 +94,5 @@ BEGIN
     IDS_NO_MEMORY "没有可以分配的内存空间。"
     IDS_NO_DIRECTORY "没有指定路径。"
     IDS_INVALID_PATH "指定的路径无效。"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/lang/zh-TW.rc b/dll/cpl/appwiz/lang/zh-TW.rc
index 7f499e1c37f..f2de51b4e78 100644
--- a/dll/cpl/appwiz/lang/zh-TW.rc
+++ b/dll/cpl/appwiz/lang/zh-TW.rc
@@ -94,4 +94,5 @@ BEGIN
     IDS_NO_MEMORY "沒有可以分配的記憶體空間。"
     IDS_NO_DIRECTORY "沒有指定路徑。"
     IDS_INVALID_PATH "指定的路徑無效。"
+    IDS_INVALID_NAME "The shortcut name you entered either contained 
characters that are invalid for file names or was too long."
 END
diff --git a/dll/cpl/appwiz/resource.h b/dll/cpl/appwiz/resource.h
index d91a360e172..28ddc864cf7 100644
--- a/dll/cpl/appwiz/resource.h
+++ b/dll/cpl/appwiz/resource.h
@@ -28,6 +28,7 @@
 #define IDS_NO_MEMORY               2026
 #define IDS_NO_DIRECTORY            2027
 #define IDS_INVALID_PATH            2028
+#define IDS_INVALID_NAME            2029
 
 #define IDS_DOWNLOADING        14
 #define IDS_INSTALLING         15

Reply via email to