nsis.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 03 Jan 2019 22:13:18 +0200
changeset 2334 c44e4331713c
parent 2230 9e6ad6607a9e
permissions -rw-r--r--
merged

.. -*- coding: utf-8; -*-

======
 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}