]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Pure HTML output for math macros.
[lyx.git] / src / LyXAction.cpp
index 0ccf57cb7502ede59c80e029ce4ad85caf8761bd..af1f6041dea1bc9b0afe5c9c7dd491faca11c8bf 100644 (file)
@@ -35,7 +35,7 @@ namespace lyx {
      Here's the set of rules to apply when a new command name is introduced:
 
      1) Use the object.event order. That is, use `word-forward'
      Here's the set of rules to apply when a new command name is introduced:
 
      1) Use the object.event order. That is, use `word-forward'
-       instead of `forward-word'.
+        instead of `forward-word'.
      2) Don't introduce an alias for an already named object. Same for events.
      3) Forward movement or focus is called `forward' (not `right').
      4) Backward movement or focus is called `backward' (not `left').
      2) Don't introduce an alias for an already named object. Same for events.
      3) Forward movement or focus is called `forward' (not `right').
      4) Backward movement or focus is called `backward' (not `left').
@@ -57,6 +57,8 @@ namespace lyx {
  *
  * Doxygen template below. Some notes: Parameters should be set in uppercase
  * and put in <BRACKETS>, [<PARAM>] means optional one.
  *
  * Doxygen template below. Some notes: Parameters should be set in uppercase
  * and put in <BRACKETS>, [<PARAM>] means optional one.
+ *
+ * Use spaces for indentation (doxy -> .lyx generator is tab-sensitive).
  */
 
 /*!
  */
 
 /*!
@@ -74,7 +76,7 @@ LyXAction lyxaction;
 
 
 void LyXAction::newFunc(FuncCode action, string const & name,
 
 
 void LyXAction::newFunc(FuncCode action, string const & name,
-                       unsigned int attrib, LyXAction::func_type type)
+                       unsigned int attrib, LyXAction::FuncType type)
 {
        lyx_func_map[name] = action;
        FuncInfo tmpinfo;
 {
        lyx_func_map[name] = action;
        FuncInfo tmpinfo;
@@ -97,13 +99,14 @@ void LyXAction::init()
        // magnitudes faster.
 
        static bool init;
        // magnitudes faster.
 
        static bool init;
-       if (init) return;
+       if (init) 
+               return;
 
        struct ev_item {
                FuncCode action;
                char const * name;
                unsigned int attrib;
 
        struct ev_item {
                FuncCode action;
                char const * name;
                unsigned int attrib;
-               func_type type;
+               FuncType type;
        };
 
        ev_item const items[] = {
        };
 
        ev_item const items[] = {
@@ -365,12 +368,20 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
  * \endvar
  */
                { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_PREVIEW_INSERT
+ * \li Action: Inserts a new preview inset.
+ * \li Syntax: preview-insert
+ * \li Origin: vfr, 28 Mar 2010
+ * \endvar
+ */
+               { LFUN_PREVIEW_INSERT, "preview-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TAB_INSERT
  * \li Action: Insert a tab into a listings inset.
  * \li Notion: It also works on a selection.
  * \li Syntax: tab-insert
 /*!
  * \var lyx::FuncCode lyx::LFUN_TAB_INSERT
  * \li Action: Insert a tab into a listings inset.
  * \li Notion: It also works on a selection.
  * \li Syntax: tab-insert
- * \li Origin: vfvanravesteijn, Sep 30 2008
+ * \li Origin: vfr, Sep 30 2008
  * \endvar
  */
                { LFUN_TAB_INSERT, "tab-insert", SingleParUpdate, Edit },
  * \endvar
  */
                { LFUN_TAB_INSERT, "tab-insert", SingleParUpdate, Edit },
@@ -380,16 +391,16 @@ void LyXAction::init()
                a listings inset.
  * \li Notion: It also works on a selection - it removes a tab or spaces from the
                beginning of each line spanned by the selection. This is useful if
                a listings inset.
  * \li Notion: It also works on a selection - it removes a tab or spaces from the
                beginning of each line spanned by the selection. This is useful if
-              you want to indent/unindent multiple lines in one action.
+               you want to indent/unindent multiple lines in one action.
  * \li Syntax: tab-delete
  * \li Syntax: tab-delete
- * \li Origin: vfvanravesteijn, Sep 30 2008
+ * \li Origin: vfr, Sep 30 2008
  * \endvar
  */
                { LFUN_TAB_DELETE, "tab-delete", SingleParUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_QUOTE_INSERT
  * \li Action: Inserts quotes according to the type and quote-language preference.
  * \endvar
  */
                { LFUN_TAB_DELETE, "tab-delete", SingleParUpdate, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_QUOTE_INSERT
  * \li Action: Inserts quotes according to the type and quote-language preference.
- * \li Action: Currently  English, Swedish, German, Polish, French, Danish quotes
+ * \li Notion: Currently English, Swedish, German, Polish, French, Danish quotes
                are distinguished.
  * \li Syntax: quote-insert [<TYPE>]
  * \li Params: <TYPE>: 'single' for single quotes, otherwise double quotes will be used.
                are distinguished.
  * \li Syntax: quote-insert [<TYPE>]
  * \li Params: <TYPE>: 'single' for single quotes, otherwise double quotes will be used.
@@ -403,11 +414,19 @@ void LyXAction::init()
  * \li Notion: Apart from lfun arguments you can use the following method: \n
                1. input the type and argument of this inset, e.g. "menu paste", in
                the work area.\n
  * \li Notion: Apart from lfun arguments you can use the following method: \n
                1. input the type and argument of this inset, e.g. "menu paste", in
                the work area.\n
-              2. select the text and run info-insert lfun.
+               2. select the text and run info-insert lfun.
  * \li Syntax: info-insert <TYPE> <ARG>
  * \li Syntax: info-insert <TYPE> <ARG>
- * \li Params: <TYPE>: shortcut|lyxrc|package|textclass|menu|buffer \n
+ * \li Params: <TYPE>: shortcut[s]|lyxrc|package|textclass|menu|buffer \n
                <ARG>: argument for a given type. Look into InsetInfo.h for detailed
                <ARG>: argument for a given type. Look into InsetInfo.h for detailed
-                     description.
+                      description. \n
+                     shortcut[s]: name of lfun (e.g math-insert \alpha) \n
+                     lyxrc: name of rc_entry (e.g. bind_file) \n
+                     package: name of latex package (e.g. listings) \n
+                     textclass: name of textclass (e.g. article) \n
+                     menu: name of lfun used in menu  \n
+                     icon: name of lfun used in toolbar \n
+                     buffer: "name"|"path"|"class"|"vcs-tree-revision"|
+                              "vcs-revision"|"vcs-author"|"vcs-date"|"vcs-time"
  * \li Sample: command-sequence info-insert buffer path; info-insert buffer name
  * \li Origin: bpeng, 7 Oct 2007
  * \endvar
  * \li Sample: command-sequence info-insert buffer path; info-insert buffer name
  * \li Origin: bpeng, 7 Oct 2007
  * \endvar
@@ -440,16 +459,16 @@ void LyXAction::init()
                class you're using has to load the character styles. There are
                a few contained in the Logical Markup module. You can also of
                course create some yourself. \n
                class you're using has to load the character styles. There are
                a few contained in the Logical Markup module. You can also of
                course create some yourself. \n
-              For dissolving the element see #LFUN_INSET_DISSOLVE.
+               For dissolving the element see #LFUN_INSET_DISSOLVE.
  * \li Syntax: flex-insert <TYPE:Name>
  * \li Params: TYPE: CharStyle|Custom|Element|Standard \n
  * \li Syntax: flex-insert <TYPE:Name>
  * \li Params: TYPE: CharStyle|Custom|Element|Standard \n
-                    Identifies whether this is a Character Style, a
-                    Custom Inset or an XML Element, and which dynamical 
-                    sub-menu this flex inset is in on the LyX menu tree. 
-                    If Standard (currently unused): none of these.
-              Name: This name must be defined either in your layout file
-                    or imported by some module. The definition is \n
-                    InsetLayout <TYPE:Name>
+                     Identifies whether this is a Character Style, a
+                     Custom Inset or an XML Element, and which dynamical 
+                     sub-menu this flex inset is in on the LyX menu tree. 
+                     If Standard (currently unused): none of these.\n
+               Name: This name must be defined either in your layout file
+                     or imported by some module. The definition is 
+                     InsetLayout <TYPE:Name>
  * \li Sample: flex-insert CharStyle:Code
  * \endvar
  */
  * \li Sample: flex-insert CharStyle:Code
  * \endvar
  */
@@ -567,16 +586,6 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_NOTES_MUTATE
- * \li Action: Changes all Note insets of a particular type (source)
-               to a different type (target) fot the current document.
- * \li Syntax: notes-mutate <SOURCE> <TARGET>
- * \li Params: <SOURCE/TARGET>: Note|Comment|Greyedout
- * \li Origin: sanda, 18 Jun 2008
- * \endvar
- */
-               { LFUN_NOTES_MUTATE, "notes-mutate", Argument, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PHANTOM_INSERT
  * \li Action: Inserts phantom on the current cursor postion,
 /*!
  * \var lyx::FuncCode lyx::LFUN_PHANTOM_INSERT
  * \li Action: Inserts phantom on the current cursor postion,
@@ -599,6 +608,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_ESCAPE
  * \li Action: Clears the selection. If no text is selected call #LFUN_FINISHED_FORWARD.
 /*!
  * \var lyx::FuncCode lyx::LFUN_ESCAPE
  * \li Action: Clears the selection. If no text is selected call #LFUN_FINISHED_FORWARD.
+               Inside math mode jumps out of the math inset.
  * \li Syntax: escape
  * \li Origin: Lgb, 17 May 2001
  * \endvar
  * \li Syntax: escape
  * \li Origin: Lgb, 17 May 2001
  * \endvar
@@ -635,7 +645,7 @@ void LyXAction::init()
  */
                { LFUN_UP_SELECT, "up-select", ReadOnly | SingleParUpdate, Edit },
 /*!
  */
                { LFUN_UP_SELECT, "up-select", ReadOnly | SingleParUpdate, Edit },
 /*!
- * \var lyx::FuncCode lyx::SCREEN_DOWN
+ * \var lyx::FuncCode lyx::LFUN_SCREEN_DOWN
  * \li Action: Moves the cursor one page in downward direction.
  * \li Syntax: screen-down
  * \endvar
  * \li Action: Moves the cursor one page in downward direction.
  * \li Syntax: screen-down
  * \endvar
@@ -807,7 +817,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_BACKWARD_SELECT
  * \li Action: Moves the cursor to the logically previous beginning of a word,
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_BACKWARD_SELECT
  * \li Action: Moves the cursor to the logically previous beginning of a word,
-                          adding the logically traversed text to the selection.
+               adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_BACKWARD.
  * \li Syntax: word-backward-select
  * \endvar
  * \li Notion: See also #LFUN_WORD_BACKWARD.
  * \li Syntax: word-backward-select
  * \endvar
@@ -851,7 +861,7 @@ void LyXAction::init()
  * \li Syntax: word-find [<DATA>]
  * \li Params: <DATA>: data encoded from Find dialog (see #lyx::find2string()).
                        If no parameter is given, search with last find-dialog
  * \li Syntax: word-find [<DATA>]
  * \li Params: <DATA>: data encoded from Find dialog (see #lyx::find2string()).
                        If no parameter is given, search with last find-dialog
-                      data is used for search (i.e. find-next).
+                       data is used for search (i.e. find-next).
  * \li Origin: Andre, Jan 7 2004
  * \endvar
  */
  * \li Origin: Andre, Jan 7 2004
  * \endvar
  */
@@ -861,8 +871,8 @@ void LyXAction::init()
  * \li Action: Replace a string in the document.
  * \li Syntax: word-replace [<DATA>]
  * \li Params: <DATA>: data is of the form
  * \li Action: Replace a string in the document.
  * \li Syntax: word-replace [<DATA>]
  * \li Params: <DATA>: data is of the form
-                       "<search> \n
-                        <replace> \n
+                       "<replace> \n
+                        <search> \n
                         <casesensitive> <matchword> <all> <forward>"
  * \li Origin: Andre, Jan 7 2004
  * \endvar
                         <casesensitive> <matchword> <all> <forward>"
  * \li Origin: Andre, Jan 7 2004
  * \endvar
@@ -878,8 +888,9 @@ void LyXAction::init()
  * \li Origin: Tommaso, Nov 15 2007
  * \endvar
  */
  * \li Origin: Tommaso, Nov 15 2007
  * \endvar
  */
-               { LFUN_WORD_FINDADV, "word-findadv", ReadOnly, Edit },
-/*! \var lyx::FuncCode lyx::LFUN_WORD_FORWARD
+               { LFUN_WORD_FINDADV, "word-findadv", ReadOnly | NoBuffer, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD
  * \li Action: Moves the cursor to the logically next beginning of a word.
  * \li Notion: This is not the action which should be bound to the arrow keys,
                because forward may be left or right, depending on the language.
  * \li Action: Moves the cursor to the logically next beginning of a word.
  * \li Notion: This is not the action which should be bound to the arrow keys,
                because forward may be left or right, depending on the language.
@@ -892,7 +903,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD_SELECT
  * \li Action: Moves the cursor to the logically next beginning of a word, 
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD_SELECT
  * \li Action: Moves the cursor to the logically next beginning of a word, 
-                          adding the logically traversed text to the selection.
+               adding the logically traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_FORWARD.
  * \li Syntax: word-forward-select
  * \endvar
  * \li Notion: See also #LFUN_WORD_FORWARD.
  * \li Syntax: word-forward-select
  * \endvar
@@ -902,12 +913,12 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT
  * \li Action: Moves the cursor to the next beginning of a word "on the left".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT
  * \li Action: Moves the cursor to the next beginning of a word "on the left".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-                          "left" key is pressed. Generally, it moves the cursor to the 
-                          next beginning of a word on the left. However, in Bidi text this 
-                          become slightly more complicated, and there are different modes
-                          of cursor movement. In "visual mode", this moves left, plain and
-                          simple. In "logical mode", movement is logically forward in RTL
-                          paragraphs, and logically backwards in LTR paragraphs.
+               "left" key is pressed. Generally, it moves the cursor to the 
+               next beginning of a word on the left. However, in Bidi text this 
+               become slightly more complicated, and there are different modes
+               of cursor movement. In "visual mode", this moves left, plain and
+               simple. In "logical mode", movement is logically forward in RTL
+               paragraphs, and logically backwards in LTR paragraphs.
  * \li Syntax: word-left
  * \li Origin: dov, 28 Oct 2007
  * \endvar
  * \li Syntax: word-left
  * \li Origin: dov, 28 Oct 2007
  * \endvar
@@ -916,7 +927,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the left",
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_LEFT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the left",
-                          adding *logically* traversed text to the selection.
+               adding *logically* traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_LEFT for exact details of the movement.
  * \li Syntax: word-left-select
  * \li Origin: dov, 28 Oct 2007
  * \li Notion: See also #LFUN_WORD_LEFT for exact details of the movement.
  * \li Syntax: word-left-select
  * \li Origin: dov, 28 Oct 2007
@@ -927,13 +938,13 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT
  * \li Action: Moves the cursor to the next beginning of a word "on the right".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT
  * \li Action: Moves the cursor to the next beginning of a word "on the right".
  * \li Notion: This is the action which should be taken when the (e.g., ctrl-)
-                          "right" key is pressed. Generally, it moves the cursor to the 
-                          next beginning of a word on the right. However, in Bidi text 
-                          this become slightly more complicated, and there are different
-                          modes of cursor movement. In "visual mode", this moves right,
-                          plain and simple. In "logical mode", movement is logically 
-                          forward in LTR paragraphs, and logically backwards in RTL 
-                          paragraphs.
+               "right" key is pressed. Generally, it moves the cursor to the 
+               next beginning of a word on the right. However, in Bidi text 
+               this become slightly more complicated, and there are different
+               modes of cursor movement. In "visual mode", this moves right,
+               plain and simple. In "logical mode", movement is logically 
+               forward in LTR paragraphs, and logically backwards in RTL 
+               paragraphs.
  * \li Syntax: word-right
  * \li Origin: dov, 28 Oct 2007
  * \endvar
  * \li Syntax: word-right
  * \li Origin: dov, 28 Oct 2007
  * \endvar
@@ -942,7 +953,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the right",
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_RIGHT_SELECT
  * \li Action: Moves the cursor to the next beginning of a word "on the right",
-                          adding *logically* traversed text to the selection.
+               adding *logically* traversed text to the selection.
  * \li Notion: See also #LFUN_WORD_RIGHT for exact details of the movement.
  * \li Syntax: word-right-select
  * \li Origin: dov, 28 Oct 2007
  * \li Notion: See also #LFUN_WORD_RIGHT for exact details of the movement.
  * \li Syntax: word-right-select
  * \li Origin: dov, 28 Oct 2007
@@ -981,6 +992,28 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
  * \endvar
  */
                { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_ADD
+ * \li Action: Add the word under the cursor to the respective
+ *             spell checker dictionary.
+ * \li Syntax: spelling-add [<STRING>] [<LANG>]
+ * \li Params: <WORD>: word to add
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_ADD, "spelling-add", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SPELLING_IGNORE
+ * \li Action: Let the spell checker ignore the word under the cursor
+ *             in the current session for the given language.
+ * \li Syntax: spelling-ignore [<WORD>] [<LANG>]
+ * \li Params: <WORD>: word to ignore
+               <LANG>: language name (see file languages)
+ * \li Origin: JSpitzm, 18 Jan 2010
+ * \endvar
+ */
+               { LFUN_SPELLING_IGNORE, "spelling-ignore", ReadOnly, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_THESAURUS_ENTRY
  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
 /*!
  * \var lyx::FuncCode lyx::LFUN_THESAURUS_ENTRY
  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
@@ -1028,7 +1061,7 @@ void LyXAction::init()
                if it is not already there, or at the beginning of the 
                enclosing inset otherwise
  * \li Syntax: inset-begin
                if it is not already there, or at the beginning of the 
                enclosing inset otherwise
  * \li Syntax: inset-begin
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_BEGIN, "inset-begin", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_INSET_BEGIN, "inset-begin", ReadOnly, Edit },
@@ -1039,7 +1072,7 @@ void LyXAction::init()
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-begin-select
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-begin-select
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_BEGIN_SELECT, "inset-begin-select", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_INSET_BEGIN_SELECT, "inset-begin-select", ReadOnly, Edit },
@@ -1049,7 +1082,7 @@ void LyXAction::init()
                if it is not already there, or at the end of the 
                enclosing inset otherwise
  * \li Syntax: inset-end
                if it is not already there, or at the end of the 
                enclosing inset otherwise
  * \li Syntax: inset-end
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_END, "inset-end", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_INSET_END, "inset-end", ReadOnly, Edit },
@@ -1060,11 +1093,31 @@ void LyXAction::init()
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-end-select
                enclosing inset otherwise (adding the
                traversed text to the selection).
  * \li Syntax: inset-end-select
- * \li Origin: JMarc, 2009/03/16
+ * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
  */
                { LFUN_INSET_END_SELECT, "inset-end-select", ReadOnly, Edit },
 
  * \endvar
  */
                { LFUN_INSET_END_SELECT, "inset-end-select", ReadOnly, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_SELECT_ALL
+ * \li Action: Selects all contents of an inset.
+ * \li Syntax: inset-select-all
+ * \li Origin: vfr, 22 Aug 2009
+ * \endvar
+ */
+               { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
+ * \li Action: Selects the whole section.
+ * \li Notion: The cursor should be in a section heading
+               before calling this lfun.
+ * \li Syntax: section-select
+ * \li Origin: vfr, 05 May 2009
+ * \endvar
+ */
+               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN
  * \li Action: Move the cursor to the begining of the (screen) line.
 /*!
  * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN
  * \li Action: Move the cursor to the begining of the (screen) line.
@@ -1119,9 +1172,10 @@ void LyXAction::init()
                { LFUN_CUT, "cut", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PASTE
                { LFUN_CUT, "cut", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_PASTE
- * \li Action: Pastes material from the active clipboard.
- * \li Syntax: paste [<TYPE>]
- * \li Params: <TYPE>: emf|pdf|png|jpeg|linkback|wmf
+ * \li Action: Pastes material (text or picture) from the active clipboard.
+ * \li Syntax: paste [<TYPE>|<NUM>]
+ * \li Params: <TYPE>: emf|pdf|png|jpeg|linkback|wmf \n
+               <NUM>: number of the selection in the internal clipboard stack to be pasted.
  * \endvar
  */
                { LFUN_PASTE, "paste", Noop, Edit },
  * \endvar
  */
                { LFUN_PASTE, "paste", Noop, Edit },
@@ -1327,9 +1381,9 @@ void LyXAction::init()
  * \li Syntax: textstyle-update <FONT_INFO>
  * \li Params: <FONT_INFO>: specifies font atributes, e.g. family, series, shape,
                             size, emph, noun, underbar, number, color, language,
  * \li Syntax: textstyle-update <FONT_INFO>
  * \li Params: <FONT_INFO>: specifies font atributes, e.g. family, series, shape,
                             size, emph, noun, underbar, number, color, language,
-                           toggleall.\n
-                           Use lyx -dbg action for exact syntax of text-style
-                           dialog parameters.
+                            toggleall.\n
+                            Use lyx -dbg action for exact syntax of text-style
+                            dialog parameters.
  * \li Origin: leeming, 12 Mar 2003
  * \endvar
  */
  * \li Origin: leeming, 12 Mar 2003
  * \endvar
  */
@@ -1422,7 +1476,7 @@ void LyXAction::init()
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
-               { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout },
+               { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULE_ADD
  * \li Action: Adds a module.
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULE_ADD
  * \li Action: Adds a module.
@@ -1432,7 +1486,7 @@ void LyXAction::init()
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
  * \li Origin: rgh, 25 August 2007
  * \endvar
  */
-               { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout },
+               { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_RELOAD
  * \li Action: Reloads layout information.
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_RELOAD
  * \li Action: Reloads layout information.
@@ -1444,7 +1498,7 @@ void LyXAction::init()
  * \li Origin: rgh, 3 September 2007
  * \endvar
  */
  * \li Origin: rgh, 3 September 2007
  * \endvar
  */
-               { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout },
+               { LFUN_LAYOUT_RELOAD, "layout-reload", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_APPLY
  * \li Action: Sets the text class for the current buffer.
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_APPLY
  * \li Action: Sets the text class for the current buffer.
@@ -1453,7 +1507,7 @@ void LyXAction::init()
                    the filename, minus the ".layout" extension.
  * \endvar
  */
                    the filename, minus the ".layout" extension.
  * \endvar
  */
-               { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout },
+               { LFUN_TEXTCLASS_APPLY, "textclass-apply", NoInternal, Layout },
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_LOAD
  * \li Action: Loads information for a textclass from disk.
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_LOAD
  * \li Action: Loads information for a textclass from disk.
@@ -1462,7 +1516,7 @@ void LyXAction::init()
                    the filename, minus the ".layout" extension.
  * \endvar
  */
                    the filename, minus the ".layout" extension.
  * \endvar
  */
-               { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout },
+               { LFUN_TEXTCLASS_LOAD, "textclass-load", NoInternal, Layout },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_MARK_OFF
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_MARK_OFF
@@ -1487,7 +1541,7 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
-               
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_DELIM
  * \li Action: Inserts math delimiters (e.g. parentheses, brackets) enclosing expression.
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_DELIM
  * \li Action: Inserts math delimiters (e.g. parentheses, brackets) enclosing expression.
@@ -1527,6 +1581,14 @@ void LyXAction::init()
  * \li Action: Inserts math objects and symbols.
  * \li Syntax: math-insert <ARG>
  * \li Params: <ARG>: Symbol or LaTeX code to be inserted.
  * \li Action: Inserts math objects and symbols.
  * \li Syntax: math-insert <ARG>
  * \li Params: <ARG>: Symbol or LaTeX code to be inserted.
+ * \li Notion: When <ARG> is a _single_ math inset with more than one cell
+               (such as "x_y^z" or "\frac{x}{y}"), the content of cell(0) is
+               replaced by the current selection (only works if the selection
+               is in mathed). As an example, if "abc" is selected in mathed,
+               "math-insert \frac{x}{y}" replaces "abc" with "\frac{abc}{y}",
+               and "math-insert x_y^z" replaces "abc" with "abc_y^z".
+               If nothing is selected (or the selection is not in mathed),
+               math-insert works as expected.
  * \endvar
  */
                { LFUN_MATH_INSERT, "math-insert", Noop, Math },
  * \endvar
  */
                { LFUN_MATH_INSERT, "math-insert", Noop, Math },
@@ -1561,7 +1623,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO
  * \li Action: Inserts a math macro definition at the cursor position in the text.
  * \li Syntax: math-macro <NAME> [<NARGS>] [def]
  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO
  * \li Action: Inserts a math macro definition at the cursor position in the text.
  * \li Syntax: math-macro <NAME> [<NARGS>] [def]
- * \li Params: <NAME>: The name of the macro, e.g. "mymacro".
+ * \li Params: <NAME>: The name of the macro, e.g. "mymacro".\n
                <NARGS>: The number of parameters of the macro. Default is 0.
                "def": Has no effect anymore, just for compatibility with former LyX versions.
  * \li Origin: ale, 10 May 1997;  sts, 21 Dec 2007
                <NARGS>: The number of parameters of the macro. Default is 0.
                "def": Has no effect anymore, just for compatibility with former LyX versions.
  * \li Origin: ale, 10 May 1997;  sts, 21 Dec 2007
@@ -1586,9 +1648,9 @@ void LyXAction::init()
  * \li Params: <TYPE>: negative spaces: !|negthinspace|negmedspace|negthickspace \n
                        positive spaces: ,|thinspace|:|medspace|;|thickspace|enskip|quad|qquad \n
                        custom space: hspace \n
  * \li Params: <TYPE>: negative spaces: !|negthinspace|negmedspace|negthickspace \n
                        positive spaces: ,|thinspace|:|medspace|;|thickspace|enskip|quad|qquad \n
                        custom space: hspace \n
-                       "," used by default.
+                       "," used by default.\n
                        Note that ! is equivalent to negthinspace, , = thinspace,
                        Note that ! is equivalent to negthinspace, , = thinspace,
-                       : = medspace, and ; = thickspace.
+                       : = medspace, and ; = thickspace.\n
                <LEN>: length for custom spaces (hspace)
  * \li Origin: Andre, 25 Jul 2001; sanda, 16 Jun 2008
  * \endvar
                <LEN>: length for custom spaces (hspace)
  * \li Origin: Andre, 25 Jul 2001; sanda, 16 Jun 2008
  * \endvar
@@ -1600,18 +1662,29 @@ void LyXAction::init()
  * \li Syntax: math-matrix <COLS> <ROWS> [<ALIGN>]
  * \li Params: <ALIGN>: Alignment is a word composed of the vertical alignment
                         (b, c or t) (i.e. 1 char) and the horizontal alignments 
  * \li Syntax: math-matrix <COLS> <ROWS> [<ALIGN>]
  * \li Params: <ALIGN>: Alignment is a word composed of the vertical alignment
                         (b, c or t) (i.e. 1 char) and the horizontal alignments 
-                       (l, c or r) (i.e. <COL> chars).
+                        (l, c or r) (i.e. <COL> chars).
  * \li Sample: math-matrix 3 3 bccc
  * \endvar
  */
                { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
  * \li Sample: math-matrix 3 3 bccc
  * \endvar
  */
                { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_MATH_AMS_MATRIX
+ * \li Action: Inserts a matrix.
+ * \li Syntax: math-matrix <COLS> <ROWS> [<DECORATION>]
+ * \li Params: <DECORATION>: Decoration determines the LaTeX name of the matrix
+                             that should be created.
+ * \li Sample: math-ams-matrix 3 3 bmatrix
+ * \endvar
+ */
+               { LFUN_MATH_AMS_MATRIX, "math-ams-matrix", Noop, Math },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_MODE
  * \li Action: In text mode enters math mode (i.e. puts math insets on the current
                cursor position), in math mode enters text mode inside math expression.
  * \li Notion: If there is some selected text, it puts the text inside created math box.
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_MODE
  * \li Action: In text mode enters math mode (i.e. puts math insets on the current
                cursor position), in math mode enters text mode inside math expression.
  * \li Notion: If there is some selected text, it puts the text inside created math box.
- * \li Syntax: math-mode [<ARG>]
- * \li Params: <ARG>: eventual argument (LaTeX code) is passed to #LFUN_MATH_INSERT .
+ * \li Syntax: math-mode [on|<ARG>]
+ * \li Params: <ARG>: eventual argument (LaTeX code) is passed to #LFUN_MATH_INSERT .\n
+                "on": allow only entering of math mode from text mode.
  * \li Origin: Alejandro, 4 Jun 1996
  * \endvar
  */
  * \li Origin: Alejandro, 4 Jun 1996
  * \endvar
  */
@@ -1667,7 +1740,7 @@ void LyXAction::init()
  * \li Notion: Provides an interface to the LaTeX math mode font size commands.
  * \li Syntax: math-size <STYLE>
  * \li Params: <STYLE>: \displaystyle|\textstyle|\scriptstyle|\scriptscriptstyle
  * \li Notion: Provides an interface to the LaTeX math mode font size commands.
  * \li Syntax: math-size <STYLE>
  * \li Params: <STYLE>: \displaystyle|\textstyle|\scriptstyle|\scriptscriptstyle
- * \li Origin: Alejandro, 15 Aug 1996; ps, 14 Jun 2008
+ * \li Origin: Alejandro, 15 Aug 1996; sanda, 14 Jun 2008
  * \endvar
  */
                { LFUN_MATH_SIZE, "math-size", Noop, Math },
  * \endvar
  */
                { LFUN_MATH_SIZE, "math-size", Noop, Math },
@@ -1879,14 +1952,7 @@ void LyXAction::init()
  * \li Origin: Dekel, 26 Aug 2000
  * \endvar
  */
  * \li Origin: Dekel, 26 Aug 2000
  * \endvar
  */
-               { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
- * \li Action: Breaks the current paragraph at the current location.
- * \li Syntax: break-paragraph
- * \endvar
- */
-               { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit },
+               { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly | NoInternal, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
  * \li Action: Breaks the current paragraph at the current location.
 /*!
  * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
  * \li Action: Breaks the current paragraph at the current location.
@@ -1905,10 +1971,10 @@ void LyXAction::init()
                This function only modifies, and does not override, existing settings.
                Note that the "leftindent" indent setting is deprecated.
  * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
                This function only modifies, and does not override, existing settings.
                Note that the "leftindent" indent setting is deprecated.
  * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
- * \li Params: <INDENT>:  \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
-               <SPACING>: \\paragraph_spacing default|single|onehalf|double|other\n
-               <ALIGN>:   \\align block|left|right|center|default\n
-               <OTHERS>:  \\labelwidthstring WIDTH|\\start_of_appendix\n
+ * \li Params: <INDENT>:  \noindent|\indent|\indent-toggle|\leftindent LENGTH\n
+               <SPACING>: \paragraph_spacing default|single|onehalf|double|other SIZE \n
+               <ALIGN>:   \align block|left|right|center|default\n
+               <OTHERS>:  \labelwidthstring WIDTH|\start_of_appendix
  * \li Origin: rgh, Aug 15 2007
  * \endvar
  */
  * \li Origin: rgh, Aug 15 2007
  * \endvar
  */
@@ -1976,10 +2042,11 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
  * \endvar
  */
                { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
  * \li Action: Edit the inset at cursor with an external application,
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
  * \li Action: Edit the inset at cursor with an external application,
*             if one is attributed.
              if one is attributed.
  * \li Syntax: inset-edit [<INSET_PARAMS>]
  * \li Params: <INSET_PARAMS>: Parameters for the inset. \n
                                Currently only the filename will be considered.
  * \li Syntax: inset-edit [<INSET_PARAMS>]
  * \li Params: <INSET_PARAMS>: Parameters for the inset. \n
                                Currently only the filename will be considered.
@@ -1991,36 +2058,15 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_TABULAR_INSERT
  * \li Action: Inserts table into the document.
 /*!
  * \var lyx::FuncCode lyx::LFUN_TABULAR_INSERT
  * \li Action: Inserts table into the document.
+ * \li Notion: See #LFUN_INSET_MODIFY for some more details
+               about tabular modifications.
  * \li Syntax: tabular-insert [<ROWS> <COLUMNS>]
  * \li Params: In case no arguments are given show insert dialog.
  * \li Origin: Jug, 12 Apr 2000
  * \endvar
  */
                { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
  * \li Syntax: tabular-insert [<ROWS> <COLUMNS>]
  * \li Params: In case no arguments are given show insert dialog.
  * \li Origin: Jug, 12 Apr 2000
  * \endvar
  */
                { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
-/*!
- * \var lyx::FuncCode lyx::LFUN_TABULAR_FEATURE
- * \li Action: Sets various features to the table/cell on the current cursor position.
- * \li Notion: Various math-environment features are handled here as well, e.g.
-               add-vline-left/right for the Grid/Array environment
- * \li Syntax: tabular-feature <FEATURE> [<ARG>]
- * \li Params: <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
-                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
-                       align-left|align-right|align-center|align-block|valign-top|valign-bottom|
-                       valign-middle|m-align-left|m-align-right|m-align-center|m-valign-top|
-                       m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|unset-all-lines|
-                       set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
-                       set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
-                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
-                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
-                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|
-                       set-special-column|set-special-multi|set-booktabs|unset-booktabs|
-                       set-top-space|set-bottom-space|set-interline-space|set-border-lines|
-                       tabular-valign-top|tabular-valign-middle|tabular-valign-bottom \n
-               <ARG>: additional argument for some commands, use debug mode to explore its values.
- * \li Origin: Jug, 28 Jul 2000
- * \endvar
- */
-               { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_BACKWARD
  * \li Action: Moves the cursor to the previous cell inside the table.
 /*!
  * \var lyx::FuncCode lyx::LFUN_CELL_BACKWARD
  * \li Action: Moves the cursor to the previous cell inside the table.
@@ -2050,8 +2096,8 @@ void LyXAction::init()
  * \li Action: Register the document as an file inside version control system (RCS, CVS).
  * \li Notion: File is registered inside cvs, svn or rcs repository acording to the existence
                of cvs/svn/rcs entries in the document's directory. \n
  * \li Action: Register the document as an file inside version control system (RCS, CVS).
  * \li Notion: File is registered inside cvs, svn or rcs repository acording to the existence
                of cvs/svn/rcs entries in the document's directory. \n
-              See LyX Additional Features Manual (Version Control Chapter) for additional
-              information.
+               See LyX Additional Features Manual (Version Control Chapter) for additional
+               information.
  * \li Syntax: vc-register
  * \li Origin: Lgb, 1 Jul 1997
  * \endvar
  * \li Syntax: vc-register
  * \li Origin: Lgb, 1 Jul 1997
  * \endvar
@@ -2098,18 +2144,59 @@ void LyXAction::init()
                additional VCS commands.
  * \li Syntax: vc-command <FLAG> <PATH> <COMMAND>
  * \li Params:  <FLAG>: Flags for the command can be combined together.\n
                additional VCS commands.
  * \li Syntax: vc-command <FLAG> <PATH> <COMMAND>
  * \li Params:  <FLAG>: Flags for the command can be combined together.\n
-                       U - dUmmy - no flags \n
-                       D - Doc - need document loaded to proceed \n
-                       I - dIrty - mark document dirty \n
-                       R - Reload - ensure that the document is saved and reload it after command execution \n
-                       M - Message - ask for input string (commit message)\n
-               <PATH>: path where to start. $$p will be replaced by the current document path.\n
-               <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current document/path/message.
+                        U - dUmmy - no flags \n
+                        D - Doc - need document loaded to proceed \n
+                        I - dIrty - mark document dirty \n
+                        R - Reload - ensure that the document is saved and reload it after command execution \n
+                        M - Message - ask for input string (commit message)\n
+                <PATH>: path where to start. $$p will be replaced by the current document path.\n
+                <COMMAND>: command to execute. $$i/$$p/$$m will be replaced by the current
+                           document(with absolute path)/path/message.
  * \li Sample: vc-command DR $$p "svn up"
  * \li Origin: sanda, 13 Jan 2009
  * \endvar
  */
                { LFUN_VC_COMMAND, "vc-command", NoBuffer | ReadOnly, System },
  * \li Sample: vc-command DR $$p "svn up"
  * \li Origin: sanda, 13 Jan 2009
  * \endvar
  */
                { LFUN_VC_COMMAND, "vc-command", NoBuffer | ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_LOCKING_TOGGLE
+ * \li Action: Toggles the locking property of the edited file.
+ * \li Notion: This is currently implemented only for SVN.
+ * \li Syntax: vc-locking-toggle
+ * \li Origin: sanda, 25 Jun 2009
+ * \endvar
+ */
+               { LFUN_VC_LOCKING_TOGGLE, "vc-locking-toggle", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_REPO_UPDATE
+ * \li Action: Update the local archive directory in which resides
+               the current document with the remote repository.
+ * \li Notion: This is currently implemented only for SVN.
+ * \li Syntax: vc-repo-update
+ * \li Origin: sanda, 16 Oct 2009
+ * \endvar
+ */
+               { LFUN_VC_REPO_UPDATE, "vc-repo-update", ReadOnly, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_VC_COMPARE
+ * \li Action: Compares two revisions of the same file under version control.
+ * \li Notion: This is currently implemented only for SVN and RCS.
+ * \li Syntax: vc-compare <REV1> [<REV2>]
+ * \li Params: Revision number either points directly to commit in history
+               or if negative number -x it points to last commit - x.\n
+              In RCS we subtract only in the last number of revision specification.
+               Special case "0" is reserved for the last committed revision.\n
+               <REV1>: Older file.\n
+              <REV2>: Newer file. Used only if REV1 > 0.
+ * \li Sample: Compare current document against last commit\n
+               vc-compare 0
+ * \li Sample: Compare current document against current revision - 5 commits\n
+               vc-compare -5
+ * \li Sample: Compare revisions 120 and 155\n
+               vc-compare 120 155
+ * \li Origin: sanda, 12 Feb 2010
+ * \endvar
+ */
+               { LFUN_VC_COMPARE, "vc-compare", ReadOnly, System },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_TRACK
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_TRACK
@@ -2207,55 +2294,64 @@ void LyXAction::init()
                         is dissolved. For example "dissolve" entry in the charstyles
                         sub-menu should only dissolve the charstyle inset, even if the
                         cursor is inside several nested insets of different type.\n
                         is dissolved. For example "dissolve" entry in the charstyles
                         sub-menu should only dissolve the charstyle inset, even if the
                         cursor is inside several nested insets of different type.\n
-                       For values see #lyx::InsetLayout::lyxtype_ .
+                        For values see #lyx::InsetLayout::lyxtype_ .
  * \li Origin: JSpitz, 7 Aug 2006
  * \endvar
  */
  * \li Origin: JSpitz, 7 Aug 2006
  * \endvar
  */
-               { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit },
+               { LFUN_INSET_DISSOLVE, "inset-dissolve", AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_INSERT
  * \li Action: Insert new inset (type given by the parameters).
  * \li Syntax: inset-insert <INSET> <ARGS>
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_INSERT
  * \li Action: Insert new inset (type given by the parameters).
  * \li Syntax: inset-insert <INSET> <ARGS>
- * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|
+ * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|tabular
                          hyperlink|include|index|label|nomencl|vspace|ref|toc>\n
                          hyperlink|include|index|label|nomencl|vspace|ref|toc>\n
-               <ARGS>: depends on the given inset. Use "lyx -dbg action" to
-                      explore.
+               <ARGS>: depends on the given inset. Use "lyx -dbg action" to explore.
  * \li Sample: inset-insert ref LatexCommand <Format> reference "<label name>"\end_inset \n
                where <label name> is the name of the referenced label and
  * \li Sample: inset-insert ref LatexCommand <Format> reference "<label name>"\end_inset \n
                where <label name> is the name of the referenced label and
-              <Format> is one of the following: \n
-              ref -- <reference> \n
-              eqref -- (<reference>) \n
-              pageref -- <page> \n
+               <Format> is one of the following: \n
+               ref -- <reference> \n
+               eqref -- (<reference>) \n
+               pageref -- <page> \n
                vpageref -- on <page> \n
                vpageref -- on <page> \n
-              vref -- <reference> on <page> \n
+               vref -- <reference> on <page> \n
                prettyref -- Formatted reference
  * \endvar
  */
                { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_MODIFY
                prettyref -- Formatted reference
  * \endvar
  */
                { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_MODIFY
- * \li Action: Modify existing inset.
+ * \li Action: Modify some properties of an inset.
  * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
  * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
+                        floats, graphics, include, index, info, label, 
+                        listings, newline, newpage, nomencl, note, phantom, 
+                        ref, space, tabular, vspace, wrap insets.
  * \li Syntax: inset-modify <INSET> <ARGS>
  * \li Syntax: inset-modify <INSET> <ARGS>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \endvar
- */
-               { LFUN_INSET_MODIFY, "", Noop, Hidden },
-/*!
- * \var lyx::FuncCode lyx::LFUN_NEXT_INSET_MODIFY
- * \li Action: Modify the inset at cursor position, if there is one.
- * \li Notion: Used for bibitem, bibtex, box, branch, command, ert, external,
-                        floats, graphics, include, label, listings, note,
-                        phantom, ref, space, tabular, vspace, wrap insets.
- * \li Syntax: next-inset-modify <INSET> <ARGS>
- * \li Syntax: next-inset-modify changetype <TYPE>
- * \li Params: See #LFUN_INSET_INSERT for further details.
- * \li Origin: JSpitzm, 23 Mar 2008
+ * \li Syntax: inset-modify changetype <TYPE>
+ * \li Syntax: inset-modify tabular <FEATURE> [<ARG>]
+ * \li Params: Generally see #LFUN_INSET_INSERT for further details.\n
+               In case that <INSET> is "tabular" various math-environment features
+               are handled as well, e.g. add-vline-left/right for the Grid/Array environment.\n
+               <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|copy-column|
+                       toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|
+                       align-left|align-right|align-center|align-block|valign-top|valign-bottom|
+                       valign-middle|longtabular-align-left|longtabular-align-center|
+                       longtabular-align-right|m-align-left|m-align-right|m-align-center|
+                       m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|set-all-lines|
+                       unset-all-lines|set-longtabular|unset-longtabular|set-pwidth|set-mpwidth|
+                       set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|
+                       set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|
+                       unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|
+                       set-ltlastfoot|unset-ltlastfoot|set-ltnewpage|toggle-ltcaption|
+                       set-special-column|set-special-multicolumn|set-special-multirow|
+                       set-booktabs|unset-booktabs|set-top-space|set-bottom-space|
+                       set-interline-space|set-border-lines|tabular-valign-top|
+                       tabular-valign-middle|tabular-valign-bottom \n
+               <ARG>: additional argument for some commands, use debug mode to explore its values.
+ * \li Sample: inset-modify note Note Comment
+ * \li Sample: inset-modify changetype Ovalbox
  * \endvar
  */
  * \endvar
  */
-               { LFUN_NEXT_INSET_MODIFY, "next-inset-modify", Noop, Edit },
+               { LFUN_INSET_MODIFY, "inset-modify", AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_DIALOG_UPDATE
  * \li Action: Updates the values inside the dialog from the inset.
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_DIALOG_UPDATE
  * \li Action: Updates the values inside the dialog from the inset.
@@ -2270,24 +2366,24 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_INSET_SETTINGS
  * \li Action: Open the inset's properties dialog.
  * \li Notion: Used for bibitem, bibtex, box, branch, citation, ert, external,
  * \var lyx::FuncCode lyx::LFUN_INSET_SETTINGS
  * \li Action: Open the inset's properties dialog.
  * \li Notion: Used for bibitem, bibtex, box, branch, citation, ert, external,
*             float, graphics, href, include, index, index_print, label, listings,
*             note, phantom, ref, space, tabular, vspace, wrap insets.
              float, graphics, href, include, index, index_print, label, listings,
              note, phantom, ref, space, tabular, vspace, wrap insets.
  * \li Syntax: inset-settings <INSET>
  * \li Params: <INSET>: <bibitem|bibtex|box|branch|citation|ert|external|float|
  * \li Syntax: inset-settings <INSET>
  * \li Params: <INSET>: <bibitem|bibtex|box|branch|citation|ert|external|float|
*                       graphics|href|include|index|index_print|label|listings|
*                       note|phantom|ref|space|tabular|vspace|wrap>.
                        graphics|href|include|index|index_print|label|listings|
                        note|phantom|ref|space|tabular|vspace|wrap>.
  * \endvar
  */
                { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly | AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_TOGGLE
  * \li Action: Toggles the collapsable inset at cursor position,
  * \endvar
  */
                { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly | AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_TOGGLE
  * \li Action: Toggles the collapsable inset at cursor position,
*             or the inset we are currently in.
              or the inset we are currently in.
  * \li Syntax: inset-toggle [<ARG>]
  * \li Params: <ARG>: <open|close|toggle|assign>. \n
                open/close/toggle are for collapsable insets. toggle is used when no argument is given.\n
                assign synchronize the branch-inset with activation status of the branch.
  * \li Syntax: inset-toggle [<ARG>]
  * \li Params: <ARG>: <open|close|toggle|assign>. \n
                open/close/toggle are for collapsable insets. toggle is used when no argument is given.\n
                assign synchronize the branch-inset with activation status of the branch.
-              Used for global toggling when changed activation.
+               Used for global toggling when changed activation.
  * \li Origin: lasgouttes, 19 Jul 2001
  * \endvar
  */
  * \li Origin: lasgouttes, 19 Jul 2001
  * \endvar
  */
@@ -2303,6 +2399,41 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
  * \endvar
  */
                { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_FORALL
+ * \li Action: Apply the given commands on insets of a given name.
+ * \li Notion: WARNING: use at your own risks; this function gives
+               you too many ways of shooting yourself in the foot.
+               A typical example is
+                   inset-forall Note note-insert
+               which starts an infinite loop. This is mitigated by the fact
+               that the number of actions is arbitrarily limited to 10000.
+ * \li Syntax: inset-forall <NAME> <LFUN-COMMAND> \n
+               <NAME>: Type of Inset. If <NAME> is *, all insets are matched.
+               The name is used like for InsetLayout in layout files: "Note"
+               matches all note insets, while "Note:Note" only matches LyX
+               yellow note insets.
+ * \li Sample: Remove all index insets: \n
+                  inset-forall Index delete-char-forward \n
+               Close all Notes (also works for a particular branch, for example): \n
+                  inset-forall Note inset-toggle close \n
+               Transform all yellow notes to comments \n
+                   inset-forall Note:Note inset-modify note Note Comment \n
+               Try to put LyX in an infinite loop if there is at least a Note: \n
+                  inset-forall Note char-backward
+ * \li Origin: lasgouttes, 27 Nov 2009
+ * \endvar
+ */
+               { LFUN_INSET_FORALL, "inset-forall", ReadOnly, Edit },
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_GRAPHICS_RELOAD
+ * \li Action: Reloads the image if necessary.
+ * \li Syntax: graphics-reload
+ * \li Origin: vfr, 10 Aug 2009
+ * \endvar
+ */
+               { LFUN_GRAPHICS_RELOAD, "graphics-reload", ReadOnly | AtPoint, Edit },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SET_GRAPHICS_GROUP
  * \li Action: Set the group for the graphics inset on the cursor position.
 /*!
  * \var lyx::FuncCode lyx::LFUN_SET_GRAPHICS_GROUP
  * \li Action: Set the group for the graphics inset on the cursor position.
@@ -2364,8 +2495,8 @@ void LyXAction::init()
  * \li Action: Goto a label.
  * \li Syntax: label-goto [<LABEL>]
  * \li Params: <LABEL>: Requested label. If no label is given and reference
  * \li Action: Goto a label.
  * \li Syntax: label-goto [<LABEL>]
  * \li Params: <LABEL>: Requested label. If no label is given and reference
-                       is on cursor position, Bookmark 0 is saved and
-                       cursor moves to the position of referenced label.
+                        is on cursor position, Bookmark 0 is saved and
+                        cursor moves to the position of referenced label.
  * \li Origin: Ale, 6 Aug 1997
  * \endvar
  */
  * \li Origin: Ale, 6 Aug 1997
  * \endvar
  */
@@ -2395,10 +2526,10 @@ void LyXAction::init()
                per file.
  * \li Notion: Bookmark 0 has a special purpose. It is automatically set \n
                1. to the paragraph you are currently editing \n
                per file.
  * \li Notion: Bookmark 0 has a special purpose. It is automatically set \n
                1. to the paragraph you are currently editing \n
-              2. to the paragraph from where you are jumping to the last-edited
-                 position (jump-back feature) \n
-              3. when jumping from crossreference to the requested label by
-                 #LFUN_LABEL_GOTO.
+               2. to the paragraph from where you are jumping to the last-edited
+                  position (jump-back feature) \n
+               3. when jumping from crossreference to the requested label by
+                  #LFUN_LABEL_GOTO.
  * \li Syntax: bookmark-goto <NUMBER>
  * \li Params: <NUMBER>: the number of the bookmark to restore.
  * \li Origin: Dekel, 27 January 2001
  * \li Syntax: bookmark-goto <NUMBER>
  * \li Params: <NUMBER>: the number of the bookmark to restore.
  * \li Origin: Dekel, 27 January 2001
@@ -2447,7 +2578,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE
  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
 /*!
  * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE
  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
- * \li Notion: Skiping "auto" when allowauto is false.
+ * \li Notion: Skipping "auto" when allowauto is false.
  * \li Syntax: toolbar-toggle <NAME> [allowauto]
  * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|
                        minibuffer|review|view/update|math_panels|vcs
  * \li Syntax: toolbar-toggle <NAME> [allowauto]
  * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|
                        minibuffer|review|view/update|math_panels|vcs
@@ -2469,11 +2600,11 @@ void LyXAction::init()
  * \li Syntax: ui-toggle <statusbar|menubar|scrollbar|frame|fullscreen>
  * \li Params: statusbar  : Toggle visibility of the statusbar.\n
                menubar    : Toggle visibility of the menubar.\n
  * \li Syntax: ui-toggle <statusbar|menubar|scrollbar|frame|fullscreen>
  * \li Params: statusbar  : Toggle visibility of the statusbar.\n
                menubar    : Toggle visibility of the menubar.\n
-              scrollbar  : Toggle visibility of the scrollbar.\n
-              frame      : Toggle visibility of the frames around editing window.\n
-              fullscreen : Toggle fullscreen mode. This also covers calling the
-                           previous functions. However #LFUN_TOOLBAR_TOGGLE for the
-                           custom tweaks of the toolbars should be used.
+               scrollbar  : Toggle visibility of the scrollbar.\n
+               frame      : Toggle visibility of the frames around editing window.\n
+               fullscreen : Toggle fullscreen mode. This also covers calling the
+                            previous functions. However #LFUN_TOOLBAR_TOGGLE for the
+                            custom tweaks of the toolbars should be used.
  * \li Origin: sanda, 9 Feb 2007
  * \endvar
  */
  * \li Origin: sanda, 9 Feb 2007
  * \endvar
  */
@@ -2526,11 +2657,11 @@ void LyXAction::init()
  * \li Action: Shows hidden dialog or create new one for a given function/inset settings etc.
  * \li Syntax: dialog-show <NAME> [<DATA>]
  * \li Params: <NAME>: aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n
  * \li Action: Shows hidden dialog or create new one for a given function/inset settings etc.
  * \li Syntax: dialog-show <NAME> [<DATA>]
  * \li Params: <NAME>: aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n
-               document|errorlist|ert|external|file|findreplace|float|graphics|\n
-               include|index|info|nomenclature|label|listings|log|mathdelimiter|\n
-               mathmatrix|note|paragraph|phantom|prefs|print|ref|sendto|space|\n
-               spellchecker|symbols|tabular|tabularcreate|thesaurus|texinfo|toc|href|\n
-               view-source|vspace|wrap|<SPECIAL> \n
+               compare|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n
+               graphics|href|include|index|index_print|info|label|listings|log|mathdelimiter|\n
+               mathmatrix|mathspace|nomenclature|nomencl_print|note|paragraph|phantom|prefs|\n
+               print|ref|sendto|space|spellchecker|symbols|tabular|tabularcreate|\n
+               thesaurus|texinfo|toc|view-source|vspace|wrap|<SPECIAL> \n
                <SPECIAL>: latexlog|vclog \n
                <DATA>: data, usually settings for the given dialog. Use debug mode for the
                        details.
                <SPECIAL>: latexlog|vclog \n
                <DATA>: data, usually settings for the given dialog. Use debug mode for the
                        details.
@@ -2687,19 +2818,20 @@ void LyXAction::init()
  * \li Action: Sets the cursor position based on the row number of generated TeX file.
  * \li Notion: This can be useful for DVI inverse-search or detection of the problematic
                line from LaTeX compilation. Note that before this function can be used
  * \li Action: Sets the cursor position based on the row number of generated TeX file.
  * \li Notion: This can be useful for DVI inverse-search or detection of the problematic
                line from LaTeX compilation. Note that before this function can be used
-              export to LaTeX output must occur (in order to map the row numbers).
+               export to LaTeX output must occur (in order to map the row numbers).
  * \li Syntax: server-goto-file-row <FILE[.ext]> <ROW_NUMBER>
  * \li Syntax: server-goto-file-row <FILE[.ext]> <ROW_NUMBER>
- * \li Params: <FILE>: the filename. Environment variables are expaned in the path.
+ * \li Params: <FILE>: the filename. Environment variables are expanded in the path.
                        In case this LFUN does not work make sure you are giving correct
                        In case this LFUN does not work make sure you are giving correct
-                      path to the file.\n
+                       path to the file.\n
                        If the file is located inside LyX temporary directory it will be
                        If the file is located inside LyX temporary directory it will be
-                      mapped back into the appropriate opened buffer (e.g. for the case
-                      of generated .tex file).
+                       mapped back into the appropriate opened buffer (e.g. for the case
+                       of generated .tex file).
                  .ext: extensions will be automatically replaced by .lyx.
                  .ext: extensions will be automatically replaced by .lyx.
+                 <ROW_NUMBER> The row number of the LaTeX file to which to go.
  * \li Origin: Edmar, 23 Dec 1998
  * \endvar
  */
  * \li Origin: Edmar, 23 Dec 1998
  * \endvar
  */
-               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
+               { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly | NoBuffer, System },
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_NOTIFY
  * \li Action: Sends notify message about the last key-sequence to client.
 /*!
  * \var lyx::FuncCode lyx::LFUN_SERVER_NOTIFY
  * \li Action: Sends notify message about the last key-sequence to client.
@@ -2730,12 +2862,12 @@ void LyXAction::init()
  * \li Action: Generates the code (literate programming).
  * \li Notion: Latex file with extension \literate_extension is generated.
                Then LyX invokes \build_command (with a default of``make'') to generate the code and
  * \li Action: Generates the code (literate programming).
  * \li Notion: Latex file with extension \literate_extension is generated.
                Then LyX invokes \build_command (with a default of``make'') to generate the code and
-              \build_error_filter to process the compilation error messages. \n
-              In case you want to process your literate file with a script, or some other program,
-              just insert in your lyxrc file an entry with:\n
-              \build_command "my_script my_arguments" \n
-              The \build_error_filter differs from the \literate_error_filter only in that the
-              former will identify error messages from your compiler.
+               \build_error_filter to process the compilation error messages. \n
+               In case you want to process your literate file with a script, or some other program,
+               just insert in your lyxrc file an entry with:\n
+               \build_command "my_script my_arguments" \n
+               The \build_error_filter differs from the \literate_error_filter only in that the
+               former will identify error messages from your compiler.
  * \li Syntax: build-program
  * \endvar
  */
  * \li Syntax: build-program
  * \endvar
  */
@@ -2785,18 +2917,27 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
  * \endvar
  */
                { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_CLOSE_ALL
+ * \li Action: Closes all buffers.
+ * \li Notion: Closes all buffers, asking whether to save it, etc,
+               if a buffer has been modified.
+ * \li Syntax: buffer-close-all
+ * \endvar
+ */
+               { LFUN_BUFFER_CLOSE_ALL, "buffer-close-all", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT
  * \li Action: Exports the current buffer (document) to the given format.
  * \li Syntax: buffer-export <FORMAT>
  * \li Params: <FORMAT> is either "custom" or one of the formats which you
                         can find in Tools->Preferences->File formats->Format.
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT
  * \li Action: Exports the current buffer (document) to the given format.
  * \li Syntax: buffer-export <FORMAT>
  * \li Params: <FORMAT> is either "custom" or one of the formats which you
                         can find in Tools->Preferences->File formats->Format.
-                       Usual format you will enter is "pdf2" (pdflatex),
-                       "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
-                       In case of "custom" you will be asked for a format you
-                       want to start from and for the command that you want to
-                       apply to this format. Internally the control is then passed
-                       to #LFUN_BUFFER_EXPORT_CUSTOM.
+                        Usual format you will enter is "pdf2" (pdflatex),
+                        "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
+                        In case of "custom" you will be asked for a format you
+                        want to start from and for the command that you want to
+                        apply to this format. Internally the control is then passed
+                        to #LFUN_BUFFER_EXPORT_CUSTOM.
  * \li Origin: Lgb, 29 Jul 1997
  * \endvar
  */
  * \li Origin: Lgb, 29 Jul 1997
  * \endvar
  */
@@ -2809,7 +2950,7 @@ void LyXAction::init()
  * \li Params: <FORMAT> format to start from (LyX will care to produce such
                         intermediate file).\n
                <COMMAND> this command will be launched on the file. Note that you can
  * \li Params: <FORMAT> format to start from (LyX will care to produce such
                         intermediate file).\n
                <COMMAND> this command will be launched on the file. Note that you can
-              use "$$FName" string to qualify the intermediate file.
+                         use "$$FName" string to qualify the intermediate file.
  * \li Sample: buffer-export-custom dvi dvips -f $$FName -o myfile.ps
  * \li Origin: leeming, 27 Mar 2004
  * \endvar
  * \li Sample: buffer-export-custom dvi dvips -f $$FName -o myfile.ps
  * \li Origin: leeming, 27 Mar 2004
  * \endvar
@@ -2822,7 +2963,7 @@ void LyXAction::init()
  * \li Syntax: buffer-print <TARGET> <TARGET-NAME> <COMMAND>
  * \li Params: <TARGET> is either "printer" or "file".\n
                <TARGER-NAME> is either "default" or file name or printer name.\n
  * \li Syntax: buffer-print <TARGET> <TARGET-NAME> <COMMAND>
  * \li Params: <TARGET> is either "printer" or "file".\n
                <TARGER-NAME> is either "default" or file name or printer name.\n
-              <COMMAND> command ensuring the printing job.
+               <COMMAND> command ensuring the printing job.
  * \li Sample: buffer-print file "/trash/newfile1.ps" "dvips"
  * \li Origin: leeming, 28 Mar 2004
  * \endvar
  * \li Sample: buffer-print file "/trash/newfile1.ps" "dvips"
  * \li Origin: leeming, 28 Mar 2004
  * \endvar
@@ -2833,7 +2974,7 @@ void LyXAction::init()
  * \li Action: Import a given file as a lyx document.
  * \li Notion: File can be imported iff lyx file format is (transitively) reachable via
                defined convertors in preferences. Look into File->Import menu to get
  * \li Action: Import a given file as a lyx document.
  * \li Notion: File can be imported iff lyx file format is (transitively) reachable via
                defined convertors in preferences. Look into File->Import menu to get
-              an idea of the currently active import formats.
+               an idea of the currently active import formats.
  * \li Syntax: buffer-import <FORMAT> [<FILE>]
  * \li Origin: Asger, 24 Jul 1998
  * \endvar
  * \li Syntax: buffer-import <FORMAT> [<FILE>]
  * \li Origin: Asger, 24 Jul 1998
  * \endvar
@@ -2868,20 +3009,18 @@ void LyXAction::init()
                { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_SWITCH
                { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_SWITCH
- * \li Action: Switch to the given buffer.
- * \li Notion: This is useful also in case you need simultaneously more views of the edited
-               document in different LyX windows.
- * \li Syntax: buffer-new-template <BUFFER>
- * \li Params: <BUFFER>: already opened document which is to be shown.
+ * \li Action: Display/switch to the given buffer.
+ * \li Syntax: buffer-switch <BUFFER>
+ * \li Params: <BUFFER>: path and filename of already opened (but possibly hidden)
+                         document which is to be shown.
  * \endvar
  */
                { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_READ_ONLY
  * \li Action: Toggle editing mode of the current document between read/write and read-only.
  * \endvar
  */
                { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_READ_ONLY
  * \li Action: Toggle editing mode of the current document between read/write and read-only.
- * \li Notion: In the ->Readonly mode checks-in/commits the data if the file is under version control.
-               In the Readonly-> mode checkouts the data from repository. \n
-              If these operations fail, buffer won't be toggled.
+ * \li Notion: This function is not allowed if the file is under version control, since
+               read-only flag is often used in version control file locking.
  * \li Syntax: buffer-toggle-read-only
  * \li Origin: Lgb, 27 May 1997
  * \endvar
  * \li Syntax: buffer-toggle-read-only
  * \li Origin: Lgb, 27 May 1997
  * \endvar
@@ -2908,7 +3047,7 @@ void LyXAction::init()
                temporary directory.
  * \li Notion: In case you are already viewing the exported document (see #LFUN_BUFFER_VIEW)
                the output will be rewriten - updated. This is useful in case your viewer
                temporary directory.
  * \li Notion: In case you are already viewing the exported document (see #LFUN_BUFFER_VIEW)
                the output will be rewriten - updated. This is useful in case your viewer
-              is able to detect such changes (e.g. ghostview for postscript).
+               is able to detect such changes (e.g. ghostview for postscript).
  * \li Syntax: buffer-update [<FORMAT>]
  * \li Params: <FORMAT>: The format to display, where this is one of the
                          formats defined (in the current GUI) in the
  * \li Syntax: buffer-update [<FORMAT>]
  * \li Params: <FORMAT>: The format to display, where this is one of the
                          formats defined (in the current GUI) in the
@@ -3020,7 +3159,7 @@ void LyXAction::init()
  * \li Origin: leeming, 30 Mar 2004
  * \endvar
  */
  * \li Origin: leeming, 30 Mar 2004
  * \endvar
  */
-               { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer },
+               { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", NoInternal, Buffer },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT
@@ -3061,10 +3200,10 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_CALL
  * \li Action: Executes a command defined in a .def file.
  * \li Notion: The definitions are by default read from lib/commands/default.def.\n
  * \var lyx::FuncCode lyx::LFUN_CALL
  * \li Action: Executes a command defined in a .def file.
  * \li Notion: The definitions are by default read from lib/commands/default.def.\n
-               A .def file allows to define a command with \\define "<NAME>" "<LFUN>"
+               A .def file allows to define a command with \define "<NAME>" "<LFUN>"
                where <NAME> is the name of the new command and <LFUN> is the lfun code
                to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
                where <NAME> is the name of the new command and <LFUN> is the lfun code
                to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
-               \\def_file "FileName" allows to include another .def file. \n
+               \def_file "FileName" allows to include another .def file. \n
                This is particularly useful in connection with toolbar buttons:
                Since the name of the button image for this lfun is 
                lib/images/commands/<NAME>.png this is the way to assign an image
                This is particularly useful in connection with toolbar buttons:
                Since the name of the button image for this lfun is 
                lib/images/commands/<NAME>.png this is the way to assign an image
@@ -3093,12 +3232,14 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_EXECUTE
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_EXECUTE
- * \li Action: Opens the minibuffer toolbar so that the user can type in there.
+ * \li Action: Switches the focus to the minibuffer so that the user can type
+               in there. If necessary, it opens the minibuffer toolbar.
  * \li Notion: Usually bound to M-x shortcut.
  * \li Syntax: command-execute
  * \endvar
  */
                { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
  * \li Notion: Usually bound to M-x shortcut.
  * \li Syntax: command-execute
  * \endvar
  */
                { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_PREFIX
  * \li Action: Return the current key sequence and available options as a string.
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMMAND_PREFIX
  * \li Action: Return the current key sequence and available options as a string.
@@ -3138,6 +3279,19 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_MESSAGE, "message", NoBuffer, System },
  * \endvar
  */
                { LFUN_MESSAGE, "message", NoBuffer, System },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_DEBUG_LEVEL_SET
+ * \li Action: Set debug output level.
+ * \li Syntax: debug-level-set <LEVEL>
+ * \li Params: <LEVEL>: comma separated list of levels or the correspondent number
+                        of their combination. 0 is equivalent to disabling all debug
+                        events. See lyx -dbg for the current list of debug levels
+                        and their numbers.
+ * \li Origin: sanda, 28 Dec 2009
+ * \endvar
+ */
+               { LFUN_DEBUG_LEVEL_SET, "debug-level-set", NoBuffer, System },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_PREFERENCES_SAVE
  * \li Action: Save user preferences.
 /*!
  * \var lyx::FuncCode lyx::LFUN_PREFERENCES_SAVE
  * \li Action: Save user preferences.
@@ -3221,7 +3375,7 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_CANCEL
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_COMPLETION_CANCEL
- * \li Action: Try to cancel completion, either the popup or the inline completion
+ * \li Action: Try to cancel completion, either the popup or the inline completion.
  * \li Syntax: completion-cancel
  * \li Origin: sts, Sep 07 2008
  * \endvar
  * \li Syntax: completion-cancel
  * \li Origin: sts, Sep 07 2008
  * \endvar
@@ -3237,9 +3391,20 @@ void LyXAction::init()
                { LFUN_COMPLETION_ACCEPT, "completion-accept", SingleParUpdate, Edit },
 
 
                { LFUN_COMPLETION_ACCEPT, "completion-accept", SingleParUpdate, Edit },
 
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_ADD
+ * \li Action: Add a branch to the buffer's BranchList.
+ * \li Syntax: branch-add <BRANCH>
+ * \li Params: <BRANCH>: Name of the branch to add
+ * \li Origin: spitz, 7 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCH_ADD, "branch-add", Noop, Buffer },
+
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_ACTIVATE
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_ACTIVATE
- * \li Action: Activate the branch
+ * \li Action: Activate the branch.
  * \li Syntax: branch-activate <BRANCH>
  * \li Params: <BRANCH>: The branch to activate
  * \li Sample: lyx -x "branch-activate answers" -e pdf2 finalexam.lyx \n
  * \li Syntax: branch-activate <BRANCH>
  * \li Params: <BRANCH>: The branch to activate
  * \li Sample: lyx -x "branch-activate answers" -e pdf2 finalexam.lyx \n
@@ -3251,7 +3416,7 @@ void LyXAction::init()
                { LFUN_BRANCH_ACTIVATE, "branch-activate", AtPoint, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_DEACTIVATE
                { LFUN_BRANCH_ACTIVATE, "branch-activate", AtPoint, Buffer },
 /*!
  * \var lyx::FuncCode lyx::LFUN_BRANCH_DEACTIVATE
- * \li Action: De-activate the branch
+ * \li Action: De-activate the branch.
  * \li Syntax: branch-deactivate <BRANCH>
  * \li Params: <BRANCH>: The branch to deactivate
  * \li Origin: rgh, 27 May 2008
  * \li Syntax: branch-deactivate <BRANCH>
  * \li Params: <BRANCH>: The branch to deactivate
  * \li Origin: rgh, 27 May 2008
@@ -3260,22 +3425,45 @@ void LyXAction::init()
                { LFUN_BRANCH_DEACTIVATE, "branch-deactivate", AtPoint, Buffer },
 
 /*!
                { LFUN_BRANCH_DEACTIVATE, "branch-deactivate", AtPoint, Buffer },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_COPY_LABEL_AS_REF
+ * \var lyx::FuncCode lyx::LFUN_BRANCHES_RENAME
+ * \li Action: Rename all branches of a given name in a document.
+ * \li Syntax: branches-rename <OLDNAME> <NEWNAME>
+ * \li Params: <OLDNAME>: Current name of the branch to be renamed
+ *             <NEWNAME>: New name of the branch
+ * \li Origin: spitz, 9 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCHES_RENAME, "branches-rename", Noop, Buffer },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BRANCH_ADD_INSERT
+ * \li Action: Create new branch and directly put the branch inset into
+               the document.
+ * \li Syntax: branch-add-insert [<NAME>]
+ * \li Params: <NAME>: Branch name. If it is not specified, you will be asked.
+ * \li Origin: sanda, 10 Jul 2009
+ * \endvar
+ */
+               { LFUN_BRANCH_ADD_INSERT, "branch-add-insert", Noop, Buffer },
+
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_LABEL_COPY_AS_REF
  * \li Action: Copies the label at the cursor as a cross-reference to be pasted elsewhere.
  * \li Action: Copies the label at the cursor as a cross-reference to be pasted elsewhere.
- * \li Syntax: copy-label-as-reference
+ * \li Syntax: copy-label-as-reference <LABEL>
+ * \li Params: <LABEL>: The label to copy (for multi-line math)
  * \li Origin: sts, 16 Nov 2008
  * \endvar
  */
  * \li Origin: sts, 16 Nov 2008
  * \endvar
  */
-               { LFUN_COPY_LABEL_AS_REF, "copy-label-as-reference", ReadOnly | NoUpdate, Edit },
+               { LFUN_LABEL_COPY_AS_REF, "copy-label-as-reference", ReadOnly | NoUpdate, Edit },
 
 /*!
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_INSERT_LABEL_AS_REF
+ * \var lyx::FuncCode lyx::LFUN_LABEL_INSERT_AS_REF
  * \li Action: Inserts the label as a cross-reference at the position of the cursor.
  * \li Action: Inserts the label as a cross-reference at the position of the cursor.
- * \li Syntax: insert-label-as-reference
+ * \li Syntax: label-insert-as-reference
  * \li Origin: vfr, 7 Apr 2009
  * \endvar
  */
  * \li Origin: vfr, 7 Apr 2009
  * \endvar
  */
-               { LFUN_INSERT_LABEL_AS_REF, "insert-label-as-reference", Noop, Edit},
+               { LFUN_LABEL_INSERT_AS_REF, "label-insert-as-reference", Noop, Edit},
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_ZOOM_IN
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_ZOOM_IN
@@ -3297,24 +3485,14 @@ void LyXAction::init()
  */
                { LFUN_BUFFER_ZOOM_OUT, "buffer-zoom-out", ReadOnly, Buffer },
 
  */
                { LFUN_BUFFER_ZOOM_OUT, "buffer-zoom-out", ReadOnly, Buffer },
 
-/*!
- * \var lyx::FuncCode lyx::LFUN_SECTION_SELECT
- * \li Action: Selects the whole section.
- * \li Notion: The cursor should be in a section heading 
-               before calling this lfun.
- * \li Syntax: section-select
- * \li Origin: vfr, 05 May 2009
- * \endvar
- */
-               { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit },
+
 
                { LFUN_NOACTION, "", Noop, Hidden }
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
        };
 
 
                { LFUN_NOACTION, "", Noop, Hidden }
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
        };
 
-       for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
+       for (int i = 0; items[i].action != LFUN_NOACTION; ++i)
                newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
                newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
-       }
 
        init = true;
 }
 
        init = true;
 }
@@ -3326,42 +3504,42 @@ LyXAction::LyXAction()
 }
 
 
 }
 
 
-// Returns an action tag from a string.
 FuncRequest LyXAction::lookupFunc(string const & func) const
 {
        string const func2 = trim(func);
 
 FuncRequest LyXAction::lookupFunc(string const & func) const
 {
        string const func2 = trim(func);
 
-       if (func2.empty()) {
+       if (func2.empty())
                return FuncRequest(LFUN_NOACTION);
                return FuncRequest(LFUN_NOACTION);
-       }
 
        string cmd;
        string const arg = split(func2, cmd, ' ');
 
 
        string cmd;
        string const arg = split(func2, cmd, ' ');
 
-       func_map::const_iterator fit = lyx_func_map.find(cmd);
+       FuncMap::const_iterator const fit = lyx_func_map.find(cmd);
 
 
-       return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
+       return fit != lyx_func_map.end() 
+                       ? FuncRequest(fit->second, arg) 
+                       : FuncRequest(LFUN_UNKNOWN_ACTION);
 }
 
 
 string const LyXAction::getActionName(FuncCode action) const
 {
 }
 
 
 string const LyXAction::getActionName(FuncCode action) const
 {
-       info_map::const_iterator const it = lyx_info_map.find(action);
+       InfoMap::const_iterator const it = lyx_info_map.find(action);
        return it != lyx_info_map.end() ? it->second.name : string();
 }
 
 
        return it != lyx_info_map.end() ? it->second.name : string();
 }
 
 
-LyXAction::func_type LyXAction::getActionType(FuncCode action) const
+LyXAction::FuncType LyXAction::getActionType(FuncCode action) const
 {
 {
-       info_map::const_iterator const it = lyx_info_map.find(action);
+       InfoMap::const_iterator const it = lyx_info_map.find(action);
        return it != lyx_info_map.end() ? it->second.type : Hidden;
 }
 
 
 bool LyXAction::funcHasFlag(FuncCode action,
        return it != lyx_info_map.end() ? it->second.type : Hidden;
 }
 
 
 bool LyXAction::funcHasFlag(FuncCode action,
-                           LyXAction::func_attrib flag) const
+                           LyXAction::FuncAttribs flag) const
 {
 {
-       info_map::const_iterator ici = lyx_info_map.find(action);
+       InfoMap::const_iterator ici = lyx_info_map.find(action);
 
        if (ici == lyx_info_map.end()) {
                LYXERR0("action: " << action << " is not known.");
 
        if (ici == lyx_info_map.end()) {
                LYXERR0("action: " << action << " is not known.");
@@ -3372,13 +3550,13 @@ bool LyXAction::funcHasFlag(FuncCode action,
 }
 
 
 }
 
 
-LyXAction::const_func_iterator LyXAction::func_begin() const
+LyXAction::const_iterator LyXAction::func_begin() const
 {
        return lyx_func_map.begin();
 }
 
 
 {
        return lyx_func_map.begin();
 }
 
 
-LyXAction::const_func_iterator LyXAction::func_end() const
+LyXAction::const_iterator LyXAction::func_end() const
 {
        return lyx_func_map.end();
 }
 {
        return lyx_func_map.end();
 }