diff --git a/Contrib/nsDialogs/Readme.html b/Contrib/nsDialogs/Readme.html
index 2d797f17..95135dda 100644
--- a/Contrib/nsDialogs/Readme.html
+++ b/Contrib/nsDialogs/Readme.html
@@ -651,7 +651,7 @@ SectionEnd
NSD_OnBack
-${NSD_OnBack} function_address
+${NSD_OnBack} function_name
See OnBack for more details.
@@ -659,7 +659,7 @@ SectionEnd
NSD_OnChange
-${NSD_OnChange} control_HWND function_address
+${NSD_OnChange} control_HWND function_name
See OnChange for more details.
@@ -667,25 +667,25 @@ SectionEnd
NSD_OnClick
-${NSD_OnClick} control_HWND function_address
+${NSD_OnClick} control_HWND function_name
See OnClick for more details.
NSD_OnNotify
-${NSD_OnNotify} control_HWND function_address
+${NSD_OnNotify} control_HWND function_name
See OnNotify for more details.
NSD_CreateTimer
-${NSD_CreateTimer} function_address timer_interval
+${NSD_CreateTimer} function_name timer_interval
See CreateTimer for more details.
NSD_KillTimer
-${NSD_KillTimer} function_address
+${NSD_KillTimer} function_name
See KillTimer for more details.
@@ -876,7 +876,7 @@ SectionEnd
${NSD_SetIconFromInstaller} control_HWND output_variable
-Loads the icon used in the isntaller and displays it on control_HWND created by ${NSD_CreateIcon}. The image handle is stored in output_variable and should be freed using ${NSD_FreeIcon} once no longer necessary.
+Loads the icon used in the installer and displays it on control_HWND created by ${NSD_CreateIcon}. The image handle is stored in output_variable and should be freed using ${NSD_FreeIcon} once no longer necessary.
NSD_ClearImage
diff --git a/Docs/src/basic.but b/Docs/src/basic.but
index c6c3dbc7..ea5c4e51 100644
--- a/Docs/src/basic.but
+++ b/Docs/src/basic.but
@@ -96,7 +96,7 @@ will match the directory named \e{something} on the root directory, the file nam
\c File /r something\*.*
-When adding \e{\\*.*}, it will be used as the matching condition and \e{something} will be used as the directory to search. When only \e{something} is specified, the current directory will be recursively searched for every and directory named \e{something} and \e{another\\something} will be matched.
+When adding \e{\\*.*}, it will be used as the matching condition and \e{something} will be used as the directory to search. When only \e{something} is specified, the current directory will be recursively searched for every file and directory named \e{something} and \e{another\\something} will be matched.
\S2{rename} Rename
diff --git a/Docs/src/file.but b/Docs/src/file.but
index de50f6f8..08802c30 100644
--- a/Docs/src/file.but
+++ b/Docs/src/file.but
@@ -107,7 +107,7 @@ Seeks a file opened with \R{FileOpen}{FileOpen}. If mode is omitted or specified
Writes an ANSI string to a file opened with \R{FileOpen}{FileOpen}. If an error occurs writing, the error flag will be set.
-(If you are building a \R{intro-unicode}{Unicode installer}, the function makes the adequate conversion and writes an ANSI string)
+(If you are building a \R{intro-unicode}{Unicode installer}, the function converts the string to ANSI/MBCS. The \NsisACPcp is used during the conversion)
\c ClearErrors
\c FileOpen $0 $INSTDIR\file.dat w
diff --git a/Docs/src/history.but b/Docs/src/history.but
index 9599ccaa..bcb53c9d 100644
--- a/Docs/src/history.but
+++ b/Docs/src/history.but
@@ -4,10 +4,34 @@
Released on ?, 2013
+\S1{v3.0a0-rl} Release Notes
+
+\b MakeNSIS can now generate ANSI and \R{intro-unicode}{Unicode} installers. Source files can be UTF8SIG, UTF16LE or traditional MBCS text files (which are converted to Unicode with ACP unless you specify a different codepage). Plugins are now stored in sub-folders based on their CPU target and character set encoding.
+
\S1{v3.0a0-cl} Changelog
+\S2{} Major Changes
+
+\b Added the \R{aunicodetarget}{Unicode} attribute (\W{http://sourceforge.net/support/tracker.php?aid=1238132}{RFE #1238132}, \W{http://sourceforge.net/support/tracker.php?aid=1795257}{patch #1795257})
+
+\b MakeNSIS can read UTF8SIG and UTF16LE script files (\W{http://sourceforge.net/support/tracker.php?aid=2026892}{RFE #2026892})
+
+\b All NLF and NSH language files are stored in Unicode (\W{http://sourceforge.net/support/tracker.php?aid=1879642}{RFE #1879642})
+
+\b Scripts can control the SupportedOS list in the application manifest using \R{amanifestsupportedos}{ManifestSupportedOS} (\W{http://sourceforge.net/support/tracker.php?aid=2725883}{bug #2725883}\#{RFE 3020103?})
+
+\b Installers can claim DPI-awareness with \R{amanifestdpiaware}{ManifestDPIAware} (\W{http://sourceforge.net/support/tracker.php?aid=2897169}{bug #2897169})
+
+\b The index of the changed section is stored in $0 during .onSelChange callbacks (\W{http://sourceforge.net/support/tracker.php?aid=1634936}{RFE #1634936})
+
\S2{} Minor Changes
+\b %temp%\\Low will be used if the installer cannot write to %temp% nor %windir%\\Temp (\W{http://sourceforge.net/support/tracker.php?aid=2909242}{bug #2909242}, \W{http://sourceforge.net/support/tracker.php?aid=2912824}{patch #2912824})
+
+\b Added $\{NSIS_PACKEDVERSION\}, the NSIS version packed in a hex number (\W{http://sourceforge.net/support/tracker.php?aid=2680832}{patch #2680832})
+
+\b Added UnsafeStrCpy instruction, it can write to special variables like $PLUGINSDIR
+
\b Plugins in $\{NSISDIR\}\\Plugins have to be reserved with \c{ReserveFile /plugin}
\b MakeNSIS /NOTIFYHWND uses a (optional) new event name to abort compilation, see build.cpp/h for details.
@@ -16,6 +40,8 @@ Released on ?, 2013
\b Fixed minor MakeNSIS leaks (\W{http://sourceforge.net/support/tracker.php?aid=3474662}{bug #3474662})
+\b Various documentation fixes (bug #3063566, bug #3567313)
+
\S2{} Translations
\b Changed LANGFILE macro in LangFile.nsh
diff --git a/Source/build.cpp b/Source/build.cpp
index 94b0a6ad..eea1de3a 100644
--- a/Source/build.cpp
+++ b/Source/build.cpp
@@ -310,7 +310,7 @@ CEXEBuild::CEXEBuild() :
InitLangTables();
// Register static user variables $0, $1 and so on
- // with ONE of reference count, to avoid warning on this vars
+ // with ONE of reference count, to avoid warning on these vars
TCHAR Aux[3];
int i;
for (i = 0; i < 10; i++) // 0 - 9
diff --git a/Source/exehead/Main.c b/Source/exehead/Main.c
index f5ace5cc..e3a1b50c 100644
--- a/Source/exehead/Main.c
+++ b/Source/exehead/Main.c
@@ -179,6 +179,8 @@ EXTERN_C void NSISWinMainNOCRT()
mystrcat(state_temp_dir, _T("\\Temp"));
if (!ValidateTempDir())
{
+ // Bug #2909242:
+ // When running at <= Low IL we cannot write to %Temp% but we can try the temp folder used by IE.
// There does not seem to be a API to get the low temp dir directly, so we build the path on our own
GetTempPath(NSIS_MAX_STRLEN - 4, state_temp_dir); // leave space for \Low
diff --git a/Source/lineparse.cpp b/Source/lineparse.cpp
index 624a0156..7bb968bb 100644
--- a/Source/lineparse.cpp
+++ b/Source/lineparse.cpp
@@ -132,7 +132,7 @@ TCHAR* LineParser::gettoken_str(int token)
return m_tokens[token];
}
-int LineParser::gettoken_enum(int token, const TCHAR *strlist) // null seperated list
+int LineParser::gettoken_enum(int token, const TCHAR *strlist) // null separated list
{
int x=0;
TCHAR *tt=gettoken_str(token);
diff --git a/Source/lineparse.h b/Source/lineparse.h
index 6b3f6d81..dfa5404d 100644
--- a/Source/lineparse.h
+++ b/Source/lineparse.h
@@ -36,7 +36,7 @@ class LineParser {
int gettoken_int(int token, int *success=0);
double gettoken_number(int token, int *success=0);
TCHAR *gettoken_str(int token);
- int gettoken_enum(int token, const TCHAR *strlist); // null seperated list
+ int gettoken_enum(int token, const TCHAR *strlist); // null separated list
private: