https://git.reactos.org/?p=reactos.git;a=commitdiff;h=16f64a95337854a3db4ab…
commit 16f64a95337854a3db4aba60e94bcc04689cd751
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Tue Dec 24 18:28:05 2019 +0100
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Tue Dec 24 18:30:54 2019 +0100
[SHELL32] Improve the displayed error on file copy / displacement + simplify code.
Also update the corresponding french translations, see CORE-16572.
And fix a regression introduced in 257e7307 that allowed again copying
or moving a directory into its sub-tree...
I also personally think that these checks must also be done within the
copy_files() / move_files() helpers instead?
---
dll/win32/shell32/lang/bg-BG.rc | 8 ++++---
dll/win32/shell32/lang/ca-ES.rc | 8 ++++---
dll/win32/shell32/lang/cs-CZ.rc | 8 ++++---
dll/win32/shell32/lang/da-DK.rc | 8 ++++---
dll/win32/shell32/lang/de-DE.rc | 8 ++++---
dll/win32/shell32/lang/el-GR.rc | 8 ++++---
dll/win32/shell32/lang/en-GB.rc | 8 ++++---
dll/win32/shell32/lang/en-US.rc | 8 ++++---
dll/win32/shell32/lang/es-ES.rc | 8 ++++---
dll/win32/shell32/lang/et-EE.rc | 8 ++++---
dll/win32/shell32/lang/fi-FI.rc | 8 ++++---
dll/win32/shell32/lang/fr-FR.rc | 20 +++++++++--------
dll/win32/shell32/lang/he-IL.rc | 8 ++++---
dll/win32/shell32/lang/hi-IN.rc | 8 ++++---
dll/win32/shell32/lang/hu-HU.rc | 8 ++++---
dll/win32/shell32/lang/id-ID.rc | 8 ++++---
dll/win32/shell32/lang/it-IT.rc | 8 ++++---
dll/win32/shell32/lang/ja-JP.rc | 8 ++++---
dll/win32/shell32/lang/ko-KR.rc | 8 ++++---
dll/win32/shell32/lang/nl-NL.rc | 8 ++++---
dll/win32/shell32/lang/no-NO.rc | 8 ++++---
dll/win32/shell32/lang/pl-PL.rc | 8 ++++---
dll/win32/shell32/lang/pt-BR.rc | 8 ++++---
dll/win32/shell32/lang/pt-PT.rc | 8 ++++---
dll/win32/shell32/lang/ro-RO.rc | 8 ++++---
dll/win32/shell32/lang/ru-RU.rc | 8 ++++---
dll/win32/shell32/lang/sk-SK.rc | 8 ++++---
dll/win32/shell32/lang/sl-SI.rc | 8 ++++---
dll/win32/shell32/lang/sq-AL.rc | 8 ++++---
dll/win32/shell32/lang/sv-SE.rc | 8 ++++---
dll/win32/shell32/lang/tr-TR.rc | 8 ++++---
dll/win32/shell32/lang/uk-UA.rc | 8 ++++---
dll/win32/shell32/lang/zh-CN.rc | 8 ++++---
dll/win32/shell32/lang/zh-TW.rc | 8 ++++---
dll/win32/shell32/shlfileop.cpp | 49 ++++++++++++++++-------------------------
dll/win32/shell32/shresdef.h | 12 +++++-----
36 files changed, 202 insertions(+), 143 deletions(-)
diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc
index 979da9dc353..81c88858464 100644
--- a/dll/win32/shell32/lang/bg-BG.rc
+++ b/dll/win32/shell32/lang/bg-BG.rc
@@ -773,12 +773,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc
index 58c2455943a..5b7e3d51ed0 100644
--- a/dll/win32/shell32/lang/ca-ES.rc
+++ b/dll/win32/shell32/lang/ca-ES.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc
index e437182022d..0999bd245f3 100644
--- a/dll/win32/shell32/lang/cs-CZ.rc
+++ b/dll/win32/shell32/lang/cs-CZ.rc
@@ -778,12 +778,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Složku '%1' nebylo možné vytvořit"
IDS_CREATEFOLDER_CAPTION "Složku nebylo možné vytvořit"
diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc
index 6233431c38e..12a3f90cf48 100644
--- a/dll/win32/shell32/lang/da-DK.rc
+++ b/dll/win32/shell32/lang/da-DK.rc
@@ -778,12 +778,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc
index 38d75a4297e..39495e5d7ec 100644
--- a/dll/win32/shell32/lang/de-DE.rc
+++ b/dll/win32/shell32/lang/de-DE.rc
@@ -773,12 +773,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED " Der Ordner kann nicht erstellt werden '%1'"
IDS_CREATEFOLDER_CAPTION " Der Ordner kann nicht erstellt werden."
diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc
index ca57c93f42c..2699d7fd27c 100644
--- a/dll/win32/shell32/lang/el-GR.rc
+++ b/dll/win32/shell32/lang/el-GR.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc
index 5073c9866ef..1f0e069167a 100644
--- a/dll/win32/shell32/lang/en-GB.rc
+++ b/dll/win32/shell32/lang/en-GB.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc
index ed821b399eb..163a9a4ba3b 100644
--- a/dll/win32/shell32/lang/en-US.rc
+++ b/dll/win32/shell32/lang/en-US.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc
index ba2623d97f0..971f303c0ec 100644
--- a/dll/win32/shell32/lang/es-ES.rc
+++ b/dll/win32/shell32/lang/es-ES.rc
@@ -780,12 +780,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "No se pudo crear la carpeta '%1'"
IDS_CREATEFOLDER_CAPTION "No se pudo crear la carpeta"
diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc
index e188b6ae007..6e1459df8e1 100644
--- a/dll/win32/shell32/lang/et-EE.rc
+++ b/dll/win32/shell32/lang/et-EE.rc
@@ -779,12 +779,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Ei saa luua kausta '%1'"
IDS_CREATEFOLDER_CAPTION "Ei saa kausta luua"
diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc
index 15a8dc3e0d8..634905f20b5 100644
--- a/dll/win32/shell32/lang/fi-FI.rc
+++ b/dll/win32/shell32/lang/fi-FI.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc
index 532827de319..f97fb3a98de 100644
--- a/dll/win32/shell32/lang/fr-FR.rc
+++ b/dll/win32/shell32/lang/fr-FR.rc
@@ -769,15 +769,17 @@ BEGIN
IDS_PASTE "Insérer"
IDS_EJECT "Éjecter"
IDS_DISCONNECT "Déconnecter"
- IDS_OPENFILELOCATION "Open f&ile location"
- IDS_DESKLINK "Desktop (Create shortcut)"
- IDS_SENDTO_MENU "Se&nd To"
- IDS_MOVEERRORTITLE "Error Moving File or Folder"
- IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
- IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_OPENFILELOCATION "Ouvrir l'empla&cement du fichier"
+ IDS_DESKLINK "Bureau (Créer un raccourci)"
+ IDS_SENDTO_MENU "Envo&yer vers"
+
+ IDS_MOVEERRORTITLE "Erreur lors du déplacement du fichier ou du dossier"
+ IDS_COPYERRORTITLE "Erreur lors de la copie du fichier ou du dossier"
+ IDS_MOVEERRORSAMEFOLDER "Impossible de déplacer '%s' : Le dossier de destination est identique au dossier source."
+ IDS_MOVEERRORSAME "Impossible de déplacer '%s' : Les noms des fichiers source et destination sont identiques."
+ IDS_COPYERRORSAME "Impossible de copier '%s' : Les noms des fichiers source et destination sont identiques."
+ IDS_MOVEERRORSUBFOLDER "Impossible de déplacer '%s' : Le dossier de destination est un sous-dossier du dossier source."
+ IDS_COPYERRORSUBFOLDER "Impossible de copier '%s' : Le dossier de destination est un sous-dossier du dossier source."
IDS_CREATEFOLDER_DENIED "Impossible de créer le dossier '%1'"
IDS_CREATEFOLDER_CAPTION "Impossible de créer un dossier"
diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc
index a4ecdec500e..7addbf0983e 100644
--- a/dll/win32/shell32/lang/he-IL.rc
+++ b/dll/win32/shell32/lang/he-IL.rc
@@ -774,12 +774,14 @@ BEGIN
IDS_OPENFILELOCATION "&פתח מיקום קובץ"
IDS_DESKLINK "שולחן העבודה (צור קיצור דרך)"
IDS_SENDTO_MENU "&שלח אל"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc
index e711c7295f3..108557a5dec 100644
--- a/dll/win32/shell32/lang/hi-IN.rc
+++ b/dll/win32/shell32/lang/hi-IN.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "फ़ोल्डर '%1' बनाने में असमर्थ"
IDS_CREATEFOLDER_CAPTION "फ़ोल्डर बनाने में असमर्थ"
diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc
index d9fe252d6cc..ba97317bb44 100644
--- a/dll/win32/shell32/lang/hu-HU.rc
+++ b/dll/win32/shell32/lang/hu-HU.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc
index 9e0e8d4cc3b..21935963686 100644
--- a/dll/win32/shell32/lang/id-ID.rc
+++ b/dll/win32/shell32/lang/id-ID.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Tidak bisa membuat folder folder '%1'"
IDS_CREATEFOLDER_CAPTION "Tidak bisa membuat folder"
diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc
index bc6a7e40b75..96bd078aa86 100644
--- a/dll/win32/shell32/lang/it-IT.rc
+++ b/dll/win32/shell32/lang/it-IT.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc
index 7913f783df1..75e36307eda 100644
--- a/dll/win32/shell32/lang/ja-JP.rc
+++ b/dll/win32/shell32/lang/ja-JP.rc
@@ -769,12 +769,14 @@ BEGIN
IDS_OPENFILELOCATION "ファイルの場所を開く(&I)"
IDS_DESKLINK "デスクトップ (ショートカットの作成)"
IDS_SENDTO_MENU "送る(&N)"
+
IDS_MOVEERRORTITLE "ファイルまたはフォルダの移動のエラー"
IDS_COPYERRORTITLE "ファイルまたはフォルダのコピーのエラー"
- IDS_MOVEERRORSAME "移動できません '%s': 移動先のフォルダは移動元のフォルダと同じです。"
+ IDS_MOVEERRORSAMEFOLDER "移動できません '%s': 移動先のフォルダは移動元のフォルダと同じです。"
+ IDS_MOVEERRORSAME "移動できません '%s': コピー元とコピー先のファイル名が同じです。"
IDS_COPYERRORSAME "コピーできません '%s': コピー元とコピー先のファイル名が同じです。"
- IDS_MOVEERRORSUBF "移動できません '%s': 移動先のフォルダは移動元のフォルダのサブフォルダです。"
- IDS_COPYERRORSUBF "コピーできません '%s': コピー先のフォルダはコピー元のフォルダのサブフォルダです。"
+ IDS_MOVEERRORSUBFOLDER "移動できません '%s': 移動先のフォルダは移動元のフォルダのサブフォルダです。"
+ IDS_COPYERRORSUBFOLDER "コピーできません '%s': コピー先のフォルダはコピー元のフォルダのサブフォルダです。"
IDS_CREATEFOLDER_DENIED "フォルダ '%1' を作成できません"
IDS_CREATEFOLDER_CAPTION "フォルダを作成できません"
diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc
index 77bc592ee41..2b8848cd76c 100644
--- a/dll/win32/shell32/lang/ko-KR.rc
+++ b/dll/win32/shell32/lang/ko-KR.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc
index a50fe1aac5e..937b14b02e7 100644
--- a/dll/win32/shell32/lang/nl-NL.rc
+++ b/dll/win32/shell32/lang/nl-NL.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc
index 32e80b4bf92..6e76a278a23 100644
--- a/dll/win32/shell32/lang/no-NO.rc
+++ b/dll/win32/shell32/lang/no-NO.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc
index d69f49ebd59..a509fe820b6 100644
--- a/dll/win32/shell32/lang/pl-PL.rc
+++ b/dll/win32/shell32/lang/pl-PL.rc
@@ -777,12 +777,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Nie można utworzyć folderu '%1'"
IDS_CREATEFOLDER_CAPTION "Nie można utworzyć folderu"
diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc
index 91c816306e9..cc2aa88bc95 100644
--- a/dll/win32/shell32/lang/pt-BR.rc
+++ b/dll/win32/shell32/lang/pt-BR.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc
index a50a08f91c1..55442632492 100644
--- a/dll/win32/shell32/lang/pt-PT.rc
+++ b/dll/win32/shell32/lang/pt-PT.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Abrir localização do f&icheiro"
IDS_DESKLINK "Área de trabalho (Criar atalho)"
IDS_SENDTO_MENU "&Enviar para"
+
IDS_MOVEERRORTITLE "Erro ao mover pasta ou ficheiro"
IDS_COPYERRORTITLE "Erro ao copiar pasta ou ficheiro"
- IDS_MOVEERRORSAME "Impossivel mover '%s': A paste de destino é a mesma da origem."
+ IDS_MOVEERRORSAMEFOLDER "Impossivel mover '%s': A paste de destino é a mesma da origem."
+ IDS_MOVEERRORSAME "Impossivel mover '%s': Os nomes dos arquivos de origem e de destino são os mesmos."
IDS_COPYERRORSAME "Impossivel copiar '%s': Os nomes dos arquivos de origem e de destino são os mesmos."
- IDS_MOVEERRORSUBF "Impossivel mover '%s': A pasta de destino é uma subpasta da pasta de origem."
- IDS_COPYERRORSUBF "Impossivel copiar '%s': A pasta de destino é uma subpasta da pasta de origem."
+ IDS_MOVEERRORSUBFOLDER "Impossivel mover '%s': A pasta de destino é uma subpasta da pasta de origem."
+ IDS_COPYERRORSUBFOLDER "Impossivel copiar '%s': A pasta de destino é uma subpasta da pasta de origem."
IDS_CREATEFOLDER_DENIED "Impossivel criar pasta '%1'"
IDS_CREATEFOLDER_CAPTION "Impossivel criar pasta"
diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc
index 3e1b6861b82..3bdc4e3d49b 100644
--- a/dll/win32/shell32/lang/ro-RO.rc
+++ b/dll/win32/shell32/lang/ro-RO.rc
@@ -774,12 +774,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Nu poate fi creat un dosar cu numele „%1”"
IDS_CREATEFOLDER_CAPTION "Nu poate fi creat dosar"
diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc
index 8da35e1e9bf..e8df7f4febc 100644
--- a/dll/win32/shell32/lang/ru-RU.rc
+++ b/dll/win32/shell32/lang/ru-RU.rc
@@ -779,12 +779,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Невозможно создать папку '%1'"
IDS_CREATEFOLDER_CAPTION "Невозможно создать папку"
diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc
index 0f7e2ba41e8..5760c756886 100644
--- a/dll/win32/shell32/lang/sk-SK.rc
+++ b/dll/win32/shell32/lang/sk-SK.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc
index 8823dd6c82b..44ef2b84db4 100644
--- a/dll/win32/shell32/lang/sl-SI.rc
+++ b/dll/win32/shell32/lang/sl-SI.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc
index 6546f0f5342..ee82a9cffa4 100644
--- a/dll/win32/shell32/lang/sq-AL.rc
+++ b/dll/win32/shell32/lang/sq-AL.rc
@@ -776,12 +776,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'"
IDS_CREATEFOLDER_CAPTION "Unable to create folder"
diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc
index 71cc07adae6..4414618e9fb 100644
--- a/dll/win32/shell32/lang/sv-SE.rc
+++ b/dll/win32/shell32/lang/sv-SE.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Kunde inte skapa mappen '%1'"
IDS_CREATEFOLDER_CAPTION "Kunde inte skapa mapp"
diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc
index e80b864b735..50e0ff1b785 100644
--- a/dll/win32/shell32/lang/tr-TR.rc
+++ b/dll/win32/shell32/lang/tr-TR.rc
@@ -774,12 +774,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED """%1"" dizini oluşturulamıyor."
IDS_CREATEFOLDER_CAPTION "Dizin Oluşturulamıyor"
diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc
index f0049c6aba0..4f70b6f5456 100644
--- a/dll/win32/shell32/lang/uk-UA.rc
+++ b/dll/win32/shell32/lang/uk-UA.rc
@@ -772,12 +772,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "Не вдалося створити папку '%1'"
IDS_CREATEFOLDER_CAPTION "Не вдалося створити папку"
diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc
index 5f90351692b..ce65a180c8d 100644
--- a/dll/win32/shell32/lang/zh-CN.rc
+++ b/dll/win32/shell32/lang/zh-CN.rc
@@ -780,12 +780,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "无法创建文件夹 '%1'"
IDS_CREATEFOLDER_CAPTION "无法创建文件夹"
diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc
index c05bc04534e..7402ad10e2b 100644
--- a/dll/win32/shell32/lang/zh-TW.rc
+++ b/dll/win32/shell32/lang/zh-TW.rc
@@ -781,12 +781,14 @@ BEGIN
IDS_OPENFILELOCATION "Open f&ile location"
IDS_DESKLINK "Desktop (Create shortcut)"
IDS_SENDTO_MENU "Se&nd To"
+
IDS_MOVEERRORTITLE "Error Moving File or Folder"
IDS_COPYERRORTITLE "Error Copying File or Folder"
- IDS_MOVEERRORSAME "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder."
+ IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same."
IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same."
- IDS_MOVEERRORSUBF "Cannot move '%s': The destination folder is a subfolder of the source folder."
- IDS_COPYERRORSUBF "Cannot copy '%s': The destination folder is a subfolder of the source folder."
+ IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder."
+ IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder."
IDS_CREATEFOLDER_DENIED "無法建立資料夾 '%1'"
IDS_CREATEFOLDER_CAPTION "無法建立資料夾"
diff --git a/dll/win32/shell32/shlfileop.cpp b/dll/win32/shell32/shlfileop.cpp
index 9c20be4a6c1..c9e7400bed2 100644
--- a/dll/win32/shell32/shlfileop.cpp
+++ b/dll/win32/shell32/shlfileop.cpp
@@ -1812,22 +1812,12 @@ static void check_flags(FILEOP_FLAGS fFlags)
#ifdef __REACTOS__
-/* Error codes could be pre-Win32 */
-#define DE_SAMEFILE 0x71
-#define DE_MANYSRC1DEST 0x72
-#define DE_DIFFDIR 0x73
-#define DE_OPCANCELLED 0x75
-#define DE_DESTSUBTREE 0x76
-#define DE_INVALIDFILES 0x7C
-#define DE_DESTSAMETREE 0x7D
-#define DE_FLDDESTISFILE 0x7E
-#define DE_FILEDESTISFLD 0x80
-
static DWORD
validate_operation(LPSHFILEOPSTRUCTW lpFileOp, FILE_LIST *flFrom, FILE_LIST *flTo)
{
DWORD i, k, dwNumDest;
- WCHAR szFrom[MAX_PATH], szTo[MAX_PATH], szText[MAX_PATH];
+ WCHAR szFrom[MAX_PATH], szTo[MAX_PATH];
+ CStringW strTitle, strText;
const FILE_ENTRY *feFrom;
const FILE_ENTRY *feTo;
UINT wFunc = lpFileOp->wFunc;
@@ -1845,7 +1835,6 @@ validate_operation(LPSHFILEOPSTRUCTW lpFileOp, FILE_LIST *flFrom, FILE_LIST *flT
{
feFrom = &flFrom->feFiles[i];
StringCbCopyW(szFrom, sizeof(szFrom), feFrom->szFullPath);
-
StringCbCopyW(szTo, sizeof(szTo), feTo->szFullPath);
if (IsAttribDir(feTo->attributes))
{
@@ -1860,18 +1849,20 @@ validate_operation(LPSHFILEOPSTRUCTW lpFileOp, FILE_LIST *flFrom, FILE_LIST *flT
{
if (wFunc == FO_MOVE)
{
- CStringW strTitle(MAKEINTRESOURCEW(IDS_MOVEERRORTITLE));
- CStringW strText(MAKEINTRESOURCEW(IDS_MOVEERRORSAME));
- StringCchPrintfW(szText, sizeof(szText), strText, feFrom->szFilename);
- MessageBoxW(hwnd, szText, strTitle, MB_ICONERROR);
+ strTitle.LoadStringW(IDS_MOVEERRORTITLE);
+ if (IsAttribDir(feFrom->attributes))
+ strText.Format(IDS_MOVEERRORSAMEFOLDER, feFrom->szFilename);
+ else
+ strText.Format(IDS_MOVEERRORSAME, feFrom->szFilename);
}
else
{
- CStringW strTitle(MAKEINTRESOURCEW(IDS_COPYERRORTITLE));
- CStringW strText(MAKEINTRESOURCEW(IDS_COPYERRORSAME));
- StringCchPrintfW(szText, sizeof(szText), strText, feFrom->szFilename);
- MessageBoxW(hwnd, szText, strTitle, MB_ICONERROR);
+ strTitle.LoadStringW(IDS_COPYERRORTITLE);
+ strText.Format(IDS_COPYERRORSAME, feFrom->szFilename);
+ return ERROR_SUCCESS;
}
+ MessageBoxW(hwnd, strText, strTitle, MB_ICONERROR);
+ return DE_SAMEFILE;
}
return DE_OPCANCELLED;
}
@@ -1894,20 +1885,18 @@ validate_operation(LPSHFILEOPSTRUCTW lpFileOp, FILE_LIST *flFrom, FILE_LIST *flT
{
if (wFunc == FO_MOVE)
{
- CStringW strTitle(MAKEINTRESOURCEW(IDS_MOVEERRORTITLE));
- CStringW strText(MAKEINTRESOURCEW(IDS_MOVEERRORSUBF));
- StringCchPrintfW(szText, sizeof(szText), strText, feFrom->szFilename);
- MessageBoxW(hwnd, szText, strTitle, MB_ICONERROR);
+ strTitle.LoadStringW(IDS_MOVEERRORTITLE);
+ strText.Format(IDS_MOVEERRORSUBFOLDER, feFrom->szFilename);
}
else
{
- CStringW strTitle(MAKEINTRESOURCEW(IDS_COPYERRORTITLE));
- CStringW strText(MAKEINTRESOURCEW(IDS_COPYERRORSUBF));
- StringCchPrintfW(szText, sizeof(szText), strText, feFrom->szFilename);
- MessageBoxW(hwnd, szText, strTitle, MB_ICONERROR);
+ strTitle.LoadStringW(IDS_COPYERRORTITLE);
+ strText.Format(IDS_COPYERRORSUBFOLDER, feFrom->szFilename);
}
+ MessageBoxW(hwnd, strText, strTitle, MB_ICONERROR);
+ return DE_DESTSUBTREE;
}
- return ERROR_SUCCESS;
+ return DE_OPCANCELLED;
}
}
}
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index 9f18d8d4b4f..166068a756c 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -217,7 +217,7 @@
#define IDS_DESCRIPTION 331
#define IDS_COPY_OF 332
-/* Strings for file operations*/
+/* Strings for file operations */
#define IDS_FILEOOP_COPYING 333
#define IDS_FILEOOP_MOVING 334
#define IDS_FILEOOP_DELETING 335
@@ -231,12 +231,14 @@
#define IDS_OPENFILELOCATION 341
#define IDS_DESKLINK 342
#define IDS_SENDTO_MENU 343
+
#define IDS_MOVEERRORTITLE 344
#define IDS_COPYERRORTITLE 345
-#define IDS_MOVEERRORSAME 346
-#define IDS_COPYERRORSAME 347
-#define IDS_MOVEERRORSUBF 348
-#define IDS_COPYERRORSUBF 349
+#define IDS_MOVEERRORSAMEFOLDER 346
+#define IDS_MOVEERRORSAME 347
+#define IDS_COPYERRORSAME 348
+#define IDS_MOVEERRORSUBFOLDER 349
+#define IDS_COPYERRORSUBFOLDER 350
#define IDS_MENU_EMPTY 34561
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=aca7ff54b0c908b431c05…
commit aca7ff54b0c908b431c05dc52444707e439e1468
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Mon Dec 23 17:58:57 2019 +0100
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Mon Dec 23 21:06:59 2019 +0100
[BOOTVID] Correctly fix scrolling and printing when the scroll region contains the whole screen.
Addendum fixes to ca370b49 (r52239) and a965ca6b (r52409).
- Fix the comments to explain what is really happening.
- Fix the boundary calculations in VidDisplayString() so that we can
correctly display a character in the very last column before going
to the next line, and fix similarly the vertical boundary calculation.
- Port the fixes to the ARM code.
---
drivers/base/bootvid/arm/bootvid.c | 50 +++++++++++++++++++++-----------------
drivers/base/bootvid/i386/vga.c | 40 +++++++++++++++---------------
2 files changed, 49 insertions(+), 41 deletions(-)
diff --git a/drivers/base/bootvid/arm/bootvid.c b/drivers/base/bootvid/arm/bootvid.c
index 7a259885921..27e0e20af25 100644
--- a/drivers/base/bootvid/arm/bootvid.c
+++ b/drivers/base/bootvid/arm/bootvid.c
@@ -25,7 +25,7 @@
PUSHORT VgaArmBase;
PHYSICAL_ADDRESS VgaPhysical;
-BOOLEAN NextLine = FALSE;
+BOOLEAN ClearRow = FALSE;
UCHAR VidpTextColor = 0xF;
ULONG VidpCurrentX = 0;
ULONG VidpCurrentY = 0;
@@ -192,20 +192,21 @@ VOID
NTAPI
PreserveRow(IN ULONG CurrentTop,
IN ULONG TopDelta,
- IN BOOLEAN Direction)
+ IN BOOLEAN Restore)
{
PUSHORT Position1, Position2;
ULONG Count;
- /* Check which way we're preserving */
/* Calculate the position in memory for the row */
- if (Direction)
+ if (Restore)
{
+ /* Restore the row by copying back the contents saved off-screen */
Position1 = &VgaArmBase[CurrentTop * (SCREEN_WIDTH / 8)];
Position2 = &VgaArmBase[SCREEN_HEIGHT * (SCREEN_WIDTH / 8)];
}
else
{
+ /* Preserve the row by saving its contents off-screen */
Position1 = &VgaArmBase[SCREEN_HEIGHT * (SCREEN_WIDTH / 8)];
Position2 = &VgaArmBase[CurrentTop * (SCREEN_WIDTH / 8)];
}
@@ -415,38 +416,40 @@ VidDisplayString(IN PUCHAR String)
{
/* Modify Y position */
VidpCurrentY += TopDelta;
- if (VidpCurrentY >= VidpScrollRegion[3])
+ if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3])
{
- /* Scroll the view */
+ /* Scroll the view and clear the current row */
VgaScroll(TopDelta);
VidpCurrentY -= TopDelta;
-
- /* Preserve row */
PreserveRow(VidpCurrentY, TopDelta, TRUE);
}
+ else
+ {
+ /* Preserve the current row */
+ PreserveRow(VidpCurrentY, TopDelta, FALSE);
+ }
/* Update current X */
VidpCurrentX = VidpScrollRegion[0];
- /* Preserve the current row */
- PreserveRow(VidpCurrentY, TopDelta, FALSE);
+ /* No need to clear this row */
+ ClearRow = FALSE;
}
else if (*String == '\r')
{
/* Update current X */
VidpCurrentX = VidpScrollRegion[0];
- /* Check if we're being followed by a new line */
- if (String[1] != '\n') NextLine = TRUE;
+ /* If a new-line does not follow we will clear the current row */
+ if (String[1] != '\n') ClearRow = TRUE;
}
else
{
- /* Check if we had a \n\r last time */
- if (NextLine)
+ /* Clear the current row if we had a return-carriage without a new-line */
+ if (ClearRow)
{
- /* We did, preserve the current row */
PreserveRow(VidpCurrentY, TopDelta, TRUE);
- NextLine = FALSE;
+ ClearRow = FALSE;
}
/* Display this character */
@@ -458,21 +461,24 @@ VidDisplayString(IN PUCHAR String)
VidpCurrentX += 8;
/* Check if we should scroll */
- if (VidpCurrentX > VidpScrollRegion[2])
+ if (VidpCurrentX + 7 > VidpScrollRegion[2])
{
/* Update Y position and check if we should scroll it */
VidpCurrentY += TopDelta;
- if (VidpCurrentY > VidpScrollRegion[3])
+ if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3])
{
- /* Do the scroll */
+ /* Scroll the view and clear the current row */
VgaScroll(TopDelta);
VidpCurrentY -= TopDelta;
-
- /* Save the row */
PreserveRow(VidpCurrentY, TopDelta, TRUE);
}
+ else
+ {
+ /* Preserve the current row */
+ PreserveRow(VidpCurrentY, TopDelta, FALSE);
+ }
- /* Update X */
+ /* Update current X */
VidpCurrentX = VidpScrollRegion[0];
}
}
diff --git a/drivers/base/bootvid/i386/vga.c b/drivers/base/bootvid/i386/vga.c
index 2914200f246..99cd0dc7a9f 100644
--- a/drivers/base/bootvid/i386/vga.c
+++ b/drivers/base/bootvid/i386/vga.c
@@ -67,7 +67,7 @@ ULONG_PTR VgaBase = 0;
ULONG curr_x = 0;
ULONG curr_y = 0;
static ULONG VidTextColor = 0xF;
-static BOOLEAN CarriageReturn = FALSE;
+static BOOLEAN ClearRow = FALSE;
/* PRIVATE FUNCTIONS *********************************************************/
@@ -355,7 +355,7 @@ static VOID
NTAPI
PreserveRow(IN ULONG CurrentTop,
IN ULONG TopDelta,
- IN BOOLEAN Direction)
+ IN BOOLEAN Restore)
{
PUCHAR Position1, Position2;
ULONG Count;
@@ -369,15 +369,16 @@ PreserveRow(IN ULONG CurrentTop,
/* Set Mode 1 */
ReadWriteMode(1);
- /* Check which way we're preserving */
/* Calculate the position in memory for the row */
- if (Direction)
+ if (Restore)
{
+ /* Restore the row by copying back the contents saved off-screen */
Position1 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
Position2 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
}
else
{
+ /* Preserve the row by saving its contents off-screen */
Position1 = (PUCHAR)(VgaBase + SCREEN_HEIGHT * (SCREEN_WIDTH / 8));
Position2 = (PUCHAR)(VgaBase + CurrentTop * (SCREEN_WIDTH / 8));
}
@@ -760,40 +761,40 @@ VidDisplayString(IN PUCHAR String)
{
/* Modify Y position */
curr_y += TopDelta;
- if (curr_y + TopDelta >= ScrollRegion[3])
+ if (curr_y + TopDelta - 1 > ScrollRegion[3])
{
- /* Scroll the view */
+ /* Scroll the view and clear the current row */
VgaScroll(TopDelta);
curr_y -= TopDelta;
+ PreserveRow(curr_y, TopDelta, TRUE);
}
else
{
- /* Preserve row */
+ /* Preserve the current row */
PreserveRow(curr_y, TopDelta, FALSE);
}
/* Update current X */
curr_x = ScrollRegion[0];
- /* Do not clear line if "\r\n" is given */
- CarriageReturn = FALSE;
+ /* No need to clear this row */
+ ClearRow = FALSE;
}
else if (*String == '\r')
{
/* Update current X */
curr_x = ScrollRegion[0];
- /* Check if we're being followed by a new line */
- CarriageReturn = TRUE;
+ /* If a new-line does not follow we will clear the current row */
+ if (String[1] != '\n') ClearRow = TRUE;
}
else
{
- /* check if we had a '\r' last time */
- if (CarriageReturn)
+ /* Clear the current row if we had a return-carriage without a new-line */
+ if (ClearRow)
{
- /* We did, clear the current row */
PreserveRow(curr_y, TopDelta, TRUE);
- CarriageReturn = FALSE;
+ ClearRow = FALSE;
}
/* Display this character */
@@ -801,15 +802,16 @@ VidDisplayString(IN PUCHAR String)
curr_x += 8;
/* Check if we should scroll */
- if (curr_x + 8 > ScrollRegion[2])
+ if (curr_x + 7 > ScrollRegion[2])
{
/* Update Y position and check if we should scroll it */
curr_y += TopDelta;
- if (curr_y + TopDelta > ScrollRegion[3])
+ if (curr_y + TopDelta - 1 > ScrollRegion[3])
{
- /* Do the scroll */
+ /* Scroll the view and clear the current row */
VgaScroll(TopDelta);
curr_y -= TopDelta;
+ PreserveRow(curr_y, TopDelta, TRUE);
}
else
{
@@ -817,7 +819,7 @@ VidDisplayString(IN PUCHAR String)
PreserveRow(curr_y, TopDelta, FALSE);
}
- /* Update X */
+ /* Update current X */
curr_x = ScrollRegion[0];
}
}