packages: kdemultimedia/kdemultimedia-branch.diff, kdeutils/kdeutils-branch...

glen glen at pld-linux.org
Tue Sep 8 00:09:29 CEST 2009


Author: glen                         Date: Mon Sep  7 22:09:29 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- updated

---- Files affected:
packages/kdemultimedia:
   kdemultimedia-branch.diff (1.12 -> 1.13) 
packages/kdeutils:
   kdeutils-branch.diff (1.7 -> 1.8) 
packages/kdewebdev:
   kdewebdev-branch.diff (1.8 -> 1.9) 

---- Diffs:

================================================================
Index: packages/kdemultimedia/kdemultimedia-branch.diff
diff -u packages/kdemultimedia/kdemultimedia-branch.diff:1.12 packages/kdemultimedia/kdemultimedia-branch.diff:1.13
--- packages/kdemultimedia/kdemultimedia-branch.diff:1.12	Thu Apr 23 12:14:16 2009
+++ packages/kdemultimedia/kdemultimedia-branch.diff	Tue Sep  8 00:09:23 2009
@@ -1,7 +1,7 @@
 Index: juk/playlist.cpp
 ===================================================================
---- juk/playlist.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 958029)
-+++ juk/playlist.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 958029)
+--- juk/playlist.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ juk/playlist.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
 @@ -758,7 +758,7 @@
  	    kdDebug(65432) << "Error while trying to refresh the tag.  "
  			   << "This file has probably been removed."
@@ -11,10 +11,23 @@
  	}
  
  	processEvents();
+Index: juk/tagrenameroptions.cpp
+===================================================================
+--- juk/tagrenameroptions.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ juk/tagrenameroptions.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
+@@ -51,6 +51,8 @@
+     switch(category.category) {
+     case Title:
+     case Artist:
++    case Genre:
++    case Year:
+     case Album:
+     case Track:
+         disabled = false;
 Index: juk/collectionlist.cpp
 ===================================================================
---- juk/collectionlist.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 958029)
-+++ juk/collectionlist.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 958029)
+--- juk/collectionlist.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ juk/collectionlist.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
 @@ -164,7 +164,7 @@
  	    if(item->file().fileInfo().exists())
  		item->repaint();
@@ -35,8 +48,8 @@
      CollectionList *l = CollectionList::instance();
 Index: kmix/mixer_oss4.h
 ===================================================================
---- kmix/mixer_oss4.h	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 958029)
-+++ kmix/mixer_oss4.h	(.../branches/KDE/3.5/kdemultimedia)	(revision 958029)
+--- kmix/mixer_oss4.h	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ kmix/mixer_oss4.h	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
 @@ -33,10 +33,10 @@
    virtual int close();
    virtual bool needsPolling() { return true; };
@@ -53,8 +66,8 @@
  #endif
 Index: kmix/kmix-platforms.cpp
 ===================================================================
---- kmix/kmix-platforms.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 958029)
-+++ kmix/kmix-platforms.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 958029)
+--- kmix/kmix-platforms.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ kmix/kmix-platforms.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
 @@ -86,7 +86,6 @@
  #endif
  #if SOUND_VERSION >= 0x040000
@@ -65,8 +78,8 @@
  #endif
 Index: kmix/mixer_oss4.cpp
 ===================================================================
---- kmix/mixer_oss4.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 958029)
-+++ kmix/mixer_oss4.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 958029)
+--- kmix/mixer_oss4.cpp	(.../tags/KDE/3.5.10/kdemultimedia)	(revision 1007405)
++++ kmix/mixer_oss4.cpp	(.../branches/KDE/3.5/kdemultimedia)	(revision 1007405)
 @@ -113,6 +113,11 @@
  			*it = "Bass";
  			cType = MixDevice::BASS;

================================================================
Index: packages/kdeutils/kdeutils-branch.diff
diff -u packages/kdeutils/kdeutils-branch.diff:1.7 packages/kdeutils/kdeutils-branch.diff:1.8
--- packages/kdeutils/kdeutils-branch.diff:1.7	Thu Apr 23 16:29:34 2009
+++ packages/kdeutils/kdeutils-branch.diff	Tue Sep  8 00:09:24 2009
@@ -1,7 +1,20 @@
+Index: kgpg/listkeys.h
+===================================================================
+--- kgpg/listkeys.h	(.../tags/KDE/3.5.10/kdeutils)	(revision 1007405)
++++ kgpg/listkeys.h	(.../branches/KDE/3.5/kdeutils)	(revision 1007405)
+@@ -51,7 +51,7 @@
+ class KgpgInterface;
+ class KSelectAction;
+ 
+-typedef struct gpgKey
++struct gpgKey
+ {
+         QString gpgkeymail;
+         QString gpgkeyname;
 Index: kcalc/kcalcdisplay.cpp
 ===================================================================
---- kcalc/kcalcdisplay.cpp	(.../tags/KDE/3.5.10/kdeutils)	(revision 958220)
-+++ kcalc/kcalcdisplay.cpp	(.../branches/KDE/3.5/kdeutils)	(revision 958220)
+--- kcalc/kcalcdisplay.cpp	(.../tags/KDE/3.5.10/kdeutils)	(revision 1007405)
++++ kcalc/kcalcdisplay.cpp	(.../branches/KDE/3.5/kdeutils)	(revision 1007405)
 @@ -102,11 +102,7 @@
  
  void KCalcDisplay::slotCopy(void)
@@ -17,8 +30,8 @@
  	(QApplication::clipboard())->setText(txt, QClipboard::Clipboard);
 Index: ark/arkwidget.cpp
 ===================================================================
---- ark/arkwidget.cpp	(.../tags/KDE/3.5.10/kdeutils)	(revision 958220)
-+++ ark/arkwidget.cpp	(.../branches/KDE/3.5/kdeutils)	(revision 958220)
+--- ark/arkwidget.cpp	(.../tags/KDE/3.5.10/kdeutils)	(revision 1007405)
++++ ark/arkwidget.cpp	(.../branches/KDE/3.5/kdeutils)	(revision 1007405)
 @@ -566,11 +566,15 @@
  
          // TODO: remote Archives should be handled by createArchive

================================================================
Index: packages/kdewebdev/kdewebdev-branch.diff
diff -u packages/kdewebdev/kdewebdev-branch.diff:1.8 packages/kdewebdev/kdewebdev-branch.diff:1.9
--- packages/kdewebdev/kdewebdev-branch.diff:1.8	Wed May 20 16:18:49 2009
+++ packages/kdewebdev/kdewebdev-branch.diff	Tue Sep  8 00:09:24 2009
@@ -1,7 +1,7 @@
 Index: AUTHORS
 ===================================================================
---- AUTHORS	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ AUTHORS	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- AUTHORS	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ AUTHORS	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -12,8 +12,7 @@
        Nicolas Deschildre <ndeschildre at kdewebdev.org>
        Paulo Moura Guedes <moura at kdewebdev.org>
@@ -14,8 +14,8 @@
  Kommander (kommander):
 Index: quanta/project/projectupload.cpp
 ===================================================================
---- quanta/project/projectupload.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ quanta/project/projectupload.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- quanta/project/projectupload.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ quanta/project/projectupload.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -375,7 +375,7 @@
      buttonUpload->setEnabled(false);
      KURL u = *baseUrl;
@@ -27,8 +27,8 @@
        return;
 Index: lib/qextfileinfo.cpp
 ===================================================================
---- lib/qextfileinfo.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ lib/qextfileinfo.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- lib/qextfileinfo.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ lib/qextfileinfo.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -192,11 +192,11 @@
  {
    int i = 0;
@@ -54,8 +54,8 @@
          if (!dirListItems.contains(u) && u.url() != m_listStartURL && !u.isParentOf(item->url()))
 Index: klinkstatus/src/engine/linkchecker.cpp
 ===================================================================
---- klinkstatus/src/engine/linkchecker.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ klinkstatus/src/engine/linkchecker.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- klinkstatus/src/engine/linkchecker.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ klinkstatus/src/engine/linkchecker.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -72,41 +72,43 @@
      KURL url(linkStatus()->absoluteUrl());
      Q_ASSERT(url.isValid());
@@ -130,10 +130,57 @@
  }
  
  void LinkChecker::slotTimeOut()
+Index: kommander/widget/parser.h
+===================================================================
+--- kommander/widget/parser.h	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ kommander/widget/parser.h	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
+@@ -68,6 +68,16 @@
+   void unsetArray(const QString& name, const QString& key = QString::null);
+   // array value 
+   ParseNode arrayValue(const QString& name, const QString& key) const;
++  // access 2D array 
++  const QMap<QString, QMap<QString, ParseNode> >& matrix(const QString& name) const;
++  // check if this is name of a 2D array
++  bool isMatrix(const QString& name) const;
++  // set array key
++  void setMatrix(const QString& name, const QString& keyr, const QString& keyc, ParseNode value);
++  // unset array key or whole array
++  void unsetMatrix(const QString& name, const QString& keyr = QString::null, const QString& keyc = QString::null);
++  // array value 
++  ParseNode matrixValue(const QString& name, const QString& keyr, const QString& keyc) const;
+   // get associated widget
+   KommanderWidget* currentWidget() const;
+ 
+@@ -133,6 +143,8 @@
+   void insertNode(ParseNode p, int line);
+   // next item to be parsed
+   ParseNode next() const;
++  // next is Else or Else && If?
++  bool nextElseIf();
+   // check if next item is keyword k, if so - go further, if no, set error
+   bool tryKeyword(Parse::Keyword k, Parse::Mode mode = Parse::Execute);
+   // check if next item is a variable, if so, return its name
+@@ -169,12 +181,16 @@
+   QMap<QString, ParseNode> m_variables;
+   // arrays
+   QMap<QString, QMap<QString, ParseNode> > m_arrays;
++  // 2D arrays
++  QMap<QString, QMap<QString, QMap<QString, ParseNode> > > m_matrices;
+   // Kommander 
+   KommanderWidget* m_widget;
+   // global variables
+   static QMap<QString, ParseNode> m_globalVariables;
+   // global arrays
+   static QMap<QString, QMap<QString, ParseNode> > m_globalArrays;
++  // global 2D arrays
++  static QMap<QString, QMap<QString, QMap<QString, ParseNode> > > m_globalMatrices;
+ };
+ 
+ #endif
 Index: kommander/widget/functionlib.cpp
 ===================================================================
---- kommander/widget/functionlib.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ kommander/widget/functionlib.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- kommander/widget/functionlib.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ kommander/widget/functionlib.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -120,6 +120,44 @@
    return params[0].toString().isEmpty();
  }
@@ -204,21 +251,45 @@
    registerFunction("input_savefile", Function(&f_inputSaveFile, ValueString, ValueString, ValueString, ValueString, 0));
 Index: kommander/widget/parsenode.h
 ===================================================================
---- kommander/widget/parsenode.h	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ kommander/widget/parsenode.h	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
-@@ -23,7 +23,7 @@
+--- kommander/widget/parsenode.h	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ kommander/widget/parsenode.h	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
+@@ -23,8 +23,8 @@
  {
    enum Keyword {For, To, Step, End, While, Do, Foreach, In, If, Then, Else, Elseif, Endif, Switch, Case, 
      Break, Continue, Exit, Dot, Semicolon, Comma, Assign, Less, LessEqual, Greater, GreaterEqual, Equal, NotEqual, 
 -    Not, And, Or, False, True, LeftParenthesis, RightParenthesis, LeftBracket, RightBracket,
-+    Not, And, Or, False, True, LeftParenthesis, RightParenthesis, LeftBracket, RightBracket, LeftCurlyBrace, RightCurlyBrace, PlusEqual,
-     Plus, Minus, Multiply, Divide, Mod, LastRealKeyword = Mod, Variable, Invalid};
+-    Plus, Minus, Multiply, Divide, Mod, LastRealKeyword = Mod, Variable, Invalid};
++    Not, And, Or, False, True, LeftParenthesis, RightParenthesis, LeftBracket, DoubleBracket, RightBracket, LeftCurlyBrace, RightCurlyBrace, PlusEqual, MinusEqual, Increment, Decrement,
++    Plus, Minus, Multiply, Divide, Mod, LastRealKeyword = Mod, Variable, Invalid, Array, Matrix};
  
    enum KeywordGroup {GroupComparison, GroupAdd, GroupMultiply, GroupMisc};
+   enum ValueType {ValueString, ValueInt, ValueDouble, ValueValue = ValueDouble, ValueKeyword,
+@@ -74,8 +74,12 @@
+   bool isKeyword(Parse::Keyword k) const;
+   /* Check if current value is a variable */
+   bool isVariable() const;
++  /* Check if current value is an Array */
++  bool isArray() const;
+   /* Return the name of variable */
+   QString variableName() const;
++  /* Return the name of array */
++  QString arrayName() const;
+   /* Return error message if applicable */
+   QString errorMessage() const;
+   /* Calculate common type for two nodes */
+@@ -100,6 +104,8 @@
+   void setValue(const QString& s);
+   /* set value as variable */
+   void setVariable(const QString& name);
++  /* set value as array */
++  void setArray(const QString& name);
+   /* check if it is correct value */
+   bool isValue() const;
+   /* for setting some context information, f. e. for bug reporting */
 Index: kommander/widget/parserdata.cpp
 ===================================================================
---- kommander/widget/parserdata.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ kommander/widget/parserdata.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
+--- kommander/widget/parserdata.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ kommander/widget/parserdata.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
 @@ -59,6 +59,8 @@
    m_keywords["else"] =  Else;
    m_keywords["elseif"] =  Elseif;
@@ -228,26 +299,237 @@
    m_keywords["switch"] =  Switch;
    m_keywords["case"] =  Case;
    m_keywords["while"] =  While;
-@@ -96,6 +98,7 @@
+@@ -90,12 +92,17 @@
+   m_keywords["("] =  LeftParenthesis;
+   m_keywords[")"] =  RightParenthesis;
+   m_keywords["["] =  LeftBracket;
++  m_keywords["]["] =  DoubleBracket;
+   m_keywords["]"] =  RightBracket;
+   m_keywords["+"] = Plus;
+   m_keywords["-"] = Minus;
    m_keywords["*"] = Multiply;
    m_keywords["/"] = Divide;
    m_keywords["%"] = Mod;
 +  m_keywords["+="] = PlusEqual;
++  m_keywords["-="] = MinusEqual;
++  m_keywords["++"] = Increment;
++  m_keywords["--"] = Decrement;
    m_keywords["mod"] = Mod;
    
    m_groups[Less] = GroupComparison;
 Index: kommander/widget/parser.cpp
 ===================================================================
---- kommander/widget/parser.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 970539)
-+++ kommander/widget/parser.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 970539)
-@@ -499,6 +499,21 @@
+--- kommander/widget/parser.cpp	(.../tags/KDE/3.5.10/kdewebdev)	(revision 1007405)
++++ kommander/widget/parser.cpp	(.../branches/KDE/3.5/kdewebdev)	(revision 1007405)
+@@ -99,6 +99,15 @@
+     {
+       while (start < s.length() && s[start] != '\n')
+         start++;
++    }                               // enable /* */ block comments
++    else if (s[start] == '/' && start < s.length() +1 && s[start+1] == '*')
++    {
++      start += 2;
++      while (s[start] != '*' && start < s.length() +1 && s[start+1] != '/')
++      {
++        start++;
++      }
++      start += 2;
+     }                              // special keyword: <>
+     else if (m_data->stringToKeyword(s.mid(start, 2)) <= LastRealKeyword)
+     {
+@@ -194,10 +203,12 @@
+     }
+   return p;
+ }
+-
++//attempting to allow assign or copy of array, so far with no joy
+ ParseNode Parser::parseValue(Mode mode)
+ {
+   ParseNode p = next();
++  //QString p2 = QString(p.toString());
++  //qDebug("parseValue p2 = "+p2);
+   if (isFunction())
+     return parseFunction(mode);
+   else if (isWidget())
+@@ -207,6 +218,14 @@
+     if (tryKeyword(LeftBracket, CheckOnly))
+     {
+       QString index = parseValue(mode).toString();
++      if (tryKeyword(DoubleBracket, CheckOnly)) 
++      {//2D array "matrix"
++        //qDebug("Found double bracket: parseValue");
++        QString index2 = parseValue(mode).toString();
++        tryKeyword(RightBracket);
++        QString arr = p.variableName();
++        return matrixValue(arr, index, index2);
++      }
+       tryKeyword(RightBracket);
+       QString arr = p.variableName();
+       return arrayValue(arr, index);
+@@ -242,6 +261,11 @@
+     return ParseNode(0);
+   else if (tryKeyword(True, CheckOnly))
+     return ParseNode(1);
++/*  else if (isArray(p2))
++  {
++    qDebug("returning array fpr p2");
++    return p2;
++  }*/
+   else if (p.isKeyword())
+     setError(i18n("Expected value"));
+   else // single value
+@@ -484,21 +508,194 @@
+ ParseNode Parser::parseAssignment(Mode mode)
+ {
+   QString var = nextVariable();
++  //qDebug("var = "+var+" Pos:"+QString::number(m_start));
+   if (tryKeyword(LeftBracket, CheckOnly))
+   {
+     QString index = parseValue(mode).toString();
+-    tryKeyword(RightBracket);
+-    tryKeyword(Assign);
++    if (tryKeyword(DoubleBracket, CheckOnly)) 
++    {//2D array "matrix"
++      ParseNode p1 = next(); //move along...
++      QString index2 = parseValue(mode).toString();
++      tryKeyword(RightBracket);
++      p1 = next();
++      ParseNode p2 = matrixValue(var, index, index2);
++      if (p1.isKeyword(PlusEqual))
++      {
++        tryKeyword(PlusEqual);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++        {
++          if (p2.type() == ValueString)
++            p = QString(p2.toString() + p.toString());
++          else if (p2.type() == ValueDouble)
++            p = p2.toDouble() + p.toDouble();
++          else
++          p = p2.toInt() + p.toInt();
++          setMatrix(var, index, index2, p);
++        }
++      }
++      else if (p1.isKeyword(MinusEqual))
++      {
++        tryKeyword(MinusEqual);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++        {
++          if (p2.type() == ValueDouble)
++            p = p2.toDouble() - p.toDouble();
++          else
++            p = p2.toInt() - p.toInt();
++          setMatrix(var, index, index2, p);
++        }
++      }
++      else if (p1.isKeyword(Increment))
++      {
++        tryKeyword(Increment);
++        if (mode == Execute)
++        {
++          p2 = p2.toInt() + 1;
++          setMatrix(var, index, index2, p2);
++        }
++      }
++      else if (p1.isKeyword(Decrement))
++      {
++        tryKeyword(Decrement);
++        if (mode == Execute)
++        {
++          p2 = p2.toInt() - 1;
++          setMatrix(var, index, index2, p2);
++        }
++      }
++      else
++      {
++        tryKeyword(Assign);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++          setMatrix(var, index, index2, p);
++      }
++    }
++    else
++    {
++      tryKeyword(RightBracket);
++      ParseNode p1 = next();
++      // seems awkward and pedantic but array values are now handled like variables
++      // for special assign with oparator
++      ParseNode p2 = arrayValue(var, index);
++      if (p1.isKeyword(PlusEqual))
++      {
++        tryKeyword(PlusEqual);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++        {
++          if (p2.type() == ValueString)
++            p = QString(p2.toString() + p.toString());
++          else if (p2.type() == ValueDouble)
++            p = p2.toDouble() + p.toDouble();
++          else
++          p = p2.toInt() + p.toInt();
++          setArray(var, index, p);
++        }
++      }
++      else if (p1.isKeyword(MinusEqual))
++      {
++        tryKeyword(MinusEqual);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++        {
++          if (p2.type() == ValueDouble)
++            p = p2.toDouble() - p.toDouble();
++          else
++            p = p2.toInt() - p.toInt();
++          setArray(var, index, p);
++        }
++      }
++      else if (p1.isKeyword(Increment))
++      {
++        tryKeyword(Increment);
++        if (mode == Execute)
++        {
++          p2 = p2.toInt() + 1;
++          setArray(var, index, p2);
++        }
++      }
++      else if (p1.isKeyword(Decrement))
++      {
++        tryKeyword(Decrement);
++        if (mode == Execute)
++        {
++          p2 = p2.toInt() - 1;
++          setArray(var, index, p2);
++        }
++      }
++      else
++      {
++        tryKeyword(Assign);
++        ParseNode p = parseExpression(mode);
++        if (mode == Execute)
++          setArray(var, index, p);
++      }
++    }
++  }
++  else if (tryKeyword(Assign, CheckOnly))
++  {
+     ParseNode p = parseExpression(mode);
      if (mode == Execute)
-       setVariable(var, p);
+-      setArray(var, index, p);
++    {
++      QString p2 = QString(p.toString()); //arrays are not found?
++      //qDebug("p2 = "+p2);
++      if (isArray(p2))
++        const QMap<QString, ParseNode> var = array(p2);
++      else
++        setVariable(var, p);
++    }
    }
+-  else if (tryKeyword(Assign, CheckOnly))
 +  else if (tryKeyword(PlusEqual, CheckOnly))
-+  {
-+    ParseNode p = parseExpression(mode);
-+    if (mode == Execute)
+   {
+     ParseNode p = parseExpression(mode);
+     if (mode == Execute)
 +    {
 +      ParseNode p2 = variable(var);
 +      if (p2.type() == ValueString)
@@ -256,13 +538,46 @@
 +        p = p2.toDouble() + p.toDouble();
 +      else
 +        p = p2.toInt() + p.toInt();
+       setVariable(var, p);
++    }
+   }
++  else if (tryKeyword(MinusEqual, CheckOnly))
++  {
++    ParseNode p = parseExpression(mode);
++    if (mode == Execute)
++    {
++      ParseNode p2 = variable(var);
++      if (p2.type() == ValueDouble)
++        p = p2.toDouble() - p.toDouble();
++      else
++        p = p2.toInt() - p.toInt();
++      setVariable(var, p);
++    }
++  }
++  else if (tryKeyword(Increment, CheckOnly))
++  {
++    //ParseNode p = parseExpression(mode);
++    if (mode == Execute)
++    {
++      ParseNode p = variable(var);
++      p = p.toInt() + 1;
++      setVariable(var, p);
++    }
++  }
++  else if (tryKeyword(Decrement, CheckOnly))
++  {
++    //ParseNode p = parseExpression(mode);
++    if (mode == Execute)
++    {
++      ParseNode p = variable(var);
++      p = p.toInt() - 1;
 +      setVariable(var, p);
 +    }
 +  }
    else if (tryKeyword(Dot, CheckOnly))
    {
      QString value = variable(var).toString();
-@@ -529,11 +544,14 @@
+@@ -529,11 +726,14 @@
    ParseNode p = next();
    Flow flow = FlowStandard;
    bool matched = false;
@@ -278,13 +593,14 @@
      bool condition = !matched && p.toBool();
      if (condition)
      {
-@@ -544,14 +562,21 @@
+@@ -544,29 +744,52 @@
      else 
        parseBlock(CheckOnly);
      matched = matched || p.toBool();
+-  } while (next().isKeyword(Elseif));
 +    if (!thenFound)
 +      tryKeyword(RightCurlyBrace);
-   } while (next().isKeyword(Elseif));
++  } while (nextElseIf() == true);
 +  bool braceFound = false;
    if (tryKeyword(Else, CheckOnly))
    {
@@ -300,7 +616,24 @@
    tryKeyword(Endif);
    return flow;
  }
-@@ -562,11 +587,13 @@
+ 
++bool Parser::nextElseIf()
++{
++  ParseNode p1 = next();
++  if (p1.isKeyword(Elseif))
++    return true;
++  else 
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdemultimedia/kdemultimedia-branch.diff?r1=1.12&r2=1.13&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdeutils/kdeutils-branch.diff?r1=1.7&r2=1.8&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kdewebdev/kdewebdev-branch.diff?r1=1.8&r2=1.9&f=u



More information about the pld-cvs-commit mailing list