nsis.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
child 1912 8b81a8f0f692
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.

.. -*- 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}