Author: baum
Date: Fri Jan 21 22:21:58 2011
New Revision: 37289
URL: http://www.lyx.org/trac/changeset/37289

Log:
handle commands from xargs.sty correctly

Modified:
   lyx-devel/trunk/lib/syntax.default
   lyx-devel/trunk/src/tex2lyx/test/test-insets.tex
   lyx-devel/trunk/src/tex2lyx/text.cpp

Modified: lyx-devel/trunk/lib/syntax.default
==============================================================================
--- lyx-devel/trunk/lib/syntax.default  Fri Jan 21 20:18:27 2011        (r37288)
+++ lyx-devel/trunk/lib/syntax.default  Fri Jan 21 22:21:58 2011        (r37289)
@@ -394,6 +394,10 @@
 \chapter*{}
 \chaptername
 \check{}
+\CheckCommand{}[][]{}
+\CheckCommand*{}[][]{}
+\CheckCommandx{}[][]{} % xargs.sty
+\CheckCommandx*{}[][]{} % xargs.sty
 %\circle{}    % picture environment (JMarc)
 %\circle*{}
 \cleardoublepage
@@ -410,6 +414,10 @@
 \dblfigrule
 \dblfloatpagefraction
 \dbltopfraction
+\DeclareRobustCommand{}[][]{}
+\DeclareRobustCommand*{}[][]{}
+\DeclareRobustCommandx{}[][]{} % xargs.sty
+\DeclareRobustCommandx*{}[][]{} % xargs.sty
 \def{}{}
 \definecolor{}{}{,,}
 \DeleteShortVerb{} % from doc.sty, argument must be verbatim
@@ -507,11 +515,13 @@
 \newboolean{}
 \newcommand{}[][]{}
 \newcommand*{}[][]{}
-%\newcommand{}[]{}    % tex2lyx can support this when the file format is the 
one of LyX 1.6.x
+\newcommandx{}[][]{} % xargs.sty
+\newcommandx∗{}[][]{} % xargs.sty
 \newcounter{}[]
 \newenvironment{}[][]{}{}
 \newenvironment*{}[][]{}{}
-%\newenvironment{}[]{}{}    % tex2lyx can support this when the file format is 
the one of LyX 1.6.x
+\newenvironmentx{}[][]{}{} % xargs.sty
+\newenvironmentx*{}[][]{}{} % xargs.sty
 \newfont{}{ scaled }
 \newlength{}
 \newpage
@@ -553,6 +563,8 @@
 \protect
 \providecommand{}[][]{}
 \providecommand*{}[][]{}
+\providecommandx{}[][]{} % xargs.sty
+\providecommandx*{}[][]{} % xargs.sty
 \ps
 \psfrag{}[][][][]{translate}
 \psfrag*{}[][][][]{translate}
@@ -570,10 +582,13 @@
 \refstepcounter{}
 \renewcommand{}[][]{}
 \renewcommand*{}[][]{}
-%\renewcommand{}[]{}   % tex2lyx can support this when the file format is the 
one of LyX 1.6.x
+\renewcommandx{}[][]{} % xargs.sty
+\renewcommandx∗{}[][]{} % xargs.sty
 \renewenvironment{}[][]{}{}
 \renewenvironment*{}[][]{}{}
 %\renewenvironment{}[]{}{}
+\renewenvironmentx{}[][]{}{} % xargs.sty
+\renewenvironmentx*{}[][]{}{} % xargs.sty
 \resizebox{}{}{translate}
 \resizebox*{}{}{translate}
 \reversemarginpar

Modified: lyx-devel/trunk/src/tex2lyx/test/test-insets.tex
==============================================================================
--- lyx-devel/trunk/src/tex2lyx/test/test-insets.tex    Fri Jan 21 20:18:27 
2011        (r37288)
+++ lyx-devel/trunk/src/tex2lyx/test/test-insets.tex    Fri Jan 21 22:21:58 
2011        (r37289)
@@ -24,6 +24,7 @@
 
 \usepackage{graphicx}
 \usepackage{longtable}
+\usepackage{xargs}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
 \providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
@@ -244,13 +245,27 @@
 long def \long\def\macroc#1{c #1 c}
 global long def \global\long\def\macrod#1{d #1 d}
 providecommand \providecommand{\macroe}[1]{e #1 e}
-newcommand \newcommand{\macrof}[1]{f #1 f}
-renewcommand \renewcommand{\macrof}[1]{g #1 g}
-newcommand* \newcommand*{\macroh}[1]{h #1 h}
-renewcommand* \renewcommand*{\macroh}[1]{i #1 i}
+providecommand* \providecommand*{\macrof}[1]{f #1 f}
+newcommand \newcommand{\macrog}[1]{g #1 g}
+renewcommand \renewcommand{\macrog}[1]{h #1 h}
+newcommand* \newcommand*{\macroi}[1]{i #1 i}
+renewcommand* \renewcommand*{\macroi}[1]{j #1 j}
+providecommandx \providecommandx{\macrok}[1]{k #1 k}
+providecommandx* \providecommandx*{\macrok}[1]{l #1 l}
+newcommandx \newcommandx{\macrom}[1]{m #1 m}
+renewcommandx \renewcommandx{\macrom}[1]{n #1 n}
+newcommandx* \newcommandx*{\macroo}[1]{o #1 o}
+renewcommandx* \renewcommandx*{\macroo}[1]{p #1 p}
+DeclareRobustCommand \DeclareRobustCommand{\macroq}[1]{q #1 q}
+DeclareRobustCommand* \DeclareRobustCommand*{\macror}[1]{r #1 r}
+DeclareRobustCommandx \DeclareRobustCommandx{\macros}[1]{s #1 s}
+DeclareRobustCommandx* \DeclareRobustCommandx*{\macrot}[1]{t #1 t}
 
 Now use them all:
-\macroa{x} \macrob{x} \macroc{x} \macrod{x} \macroe{x} \macrof{x} \macroh{x}
+\macroa{x} \macrob{x} \macroc{x} \macrod{x} \macroe{x} \macrof{x} \macrog{x}
+\macroi{x} \macrok{x} \macrom{x} \macroo{x} \macroq{x} \macror{x}
+The following tow don't work, but they should???
+%\macros{x} \macrot{x}
 
 \section{Special formattings\index{Special formattings}}
 

Modified: lyx-devel/trunk/src/tex2lyx/text.cpp
==============================================================================
--- lyx-devel/trunk/src/tex2lyx/text.cpp        Fri Jan 21 20:18:27 2011        
(r37288)
+++ lyx-devel/trunk/src/tex2lyx/text.cpp        Fri Jan 21 22:21:58 2011        
(r37289)
@@ -2965,11 +2965,18 @@
                        skip_spaces_braces(p);
                }
 
-               else if (t.cs() == "newcommand" ||
+               else if (t.cs() == "DeclareRobustCommand" ||
+                        t.cs() == "DeclareRobustCommandx" ||
+                        t.cs() == "newcommand" ||
+                        t.cs() == "newcommandx" ||
                         t.cs() == "providecommand" ||
-                        t.cs() == "renewcommand") {
-                       // providecommand could be handled by parse_command(),
-                       // but we need to call add_known_command() here.
+                        t.cs() == "providecommandx" ||
+                        t.cs() == "renewcommand" ||
+                        t.cs() == "renewcommandx") {
+                       // DeclareRobustCommand, DeclareRobustCommandx,
+                       // providecommand and providecommandx could be handled
+                       // by parse_command(), but we need to call
+                       // add_known_command() here.
                        string name = t.asInput();
                        if (p.next_token().asInput() == "*") {
                                // Starred form. Eat '*'
@@ -2984,7 +2991,10 @@
                                           opt1 + opt2 +
                                           '{' + p.verbatim_item() + '}';
 
-                       if (t.cs() == "providecommand" ||
+                       if (t.cs() == "DeclareRobustCommand" ||
+                           t.cs() == "DeclareRobustCommandx" ||
+                           t.cs() == "providecommand" ||
+                           t.cs() == "providecommandx" ||
                            name[name.length()-1] == '*')
                                handle_ert(os, ert, context);
                        else {

Reply via email to