nsis.rst
changeset 1905 fba288d59662
child 1912 8b81a8f0f692
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nsis.rst	Mon Feb 22 12:46:36 2016 +0200
@@ -0,0 +1,79 @@
+.. -*- coding: utf-8; -*-
+.. include:: HEADER.rst
+
+======
+ NSIS
+======
+.. contents::
+   :local:
+
+Strings
+=======
+
+String is a sequence of chars. To represent spaces enclose string in quotes.
+To escape quote use $\. ${MACRO_NAME}, $(VAR_NAME) substituted with
+macros/variable values. To escape $ use $$.
+
+  MessageBox MB_OK "I'll be happy" ; this one puts a ' inside a string
+  MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string
+  MessageBox MB_OK `And he said to me "I'll be happy!"` ; this one puts both ' and "s inside a string
+  MessageBox MB_OK "$\"A quote from a wise man$\" said the wise man" ; this one shows escaping of quotes
+
+Variables
+=========
+
+Allowed chaacters for variable names: [a-z][A-Z][0-9] and '_'.
+
+Variable definition
+-------------------
+
+To declare variable::
+
+  Var NAME
+
+There are exist registers (predefined variable) through them passed args for
+macros/functions/plug-ins::
+
+  $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9
+
+To assign value to variable use::
+
+  StrCpy $NAME STRING
+
+To access to there value use such syntax::
+
+  $NAME
+
+Language strings
+----------------
+
+To declare multilingual string use::
+
+  LangString NAME LANGUAGE_ID STRING
+
+For ``LANGUAGE_ID`` use ``${LANG_ENGLISH}``, ``${LANG_RUSSIAN}``, etc.
+
+To access to there value use such syntax::
+
+  $(NAME)
+
+Standard language strings
+-------------------------
+
+You can see list of such var under Contrib\Language Files\*.nlf files, which
+loaded by ``LoadLanguageFile``.
+
+To access to there value use such syntax::
+
+  $(^NAME)
+
+Macros definition
+-----------------
+
+To define macro variable::
+
+  !define NAME STRING
+
+To access to there value use such syntax::
+
+  ${NAME}