Index: src/cmdmapper.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/cmdmapper.cpp,v
retrieving revision 1.22
diff -u -p -r1.22 cmdmapper.cpp
--- src/cmdmapper.cpp	15 Mar 2007 10:12:11 -0000	1.22
+++ src/cmdmapper.cpp	23 Mar 2007 12:47:04 -0000
@@ -78,7 +78,6 @@ CommandMap cmdMap[] =
   { "subsubsection", CMD_SUBSUBSECTION },
   { "paragraph",     CMD_PARAGRAPH },
   { "see",           CMD_SA },
-  { "since",         CMD_SINCE },
   { "skip",          CMD_SKIP },
   { "skipline",      CMD_SKIPLINE },
   { "xmlonly",       CMD_XMLONLY },
Index: src/cmdmapper.h
===================================================================
RCS file: /cvsroot/doxygen/src/cmdmapper.h,v
retrieving revision 1.20
diff -u -p -r1.20 cmdmapper.h
--- src/cmdmapper.h	15 Mar 2007 10:12:11 -0000	1.20
+++ src/cmdmapper.h	23 Mar 2007 12:47:04 -0000
@@ -90,7 +90,6 @@ enum CommandType
   CMD_SUBSECTION   = 56,
   CMD_SUBSUBSECTION= 57,
   CMD_PARAGRAPH    = 58,
-  CMD_SINCE        = 59 | SIMPLESECT_BIT,
   CMD_SKIP         = 60,
   CMD_SKIPLINE     = 61,
   CMD_STARTCODE    = 62,
Index: src/commentscan.l
===================================================================
RCS file: /cvsroot/doxygen/src/commentscan.l,v
retrieving revision 1.32
diff -u -p -r1.32 commentscan.l
--- src/commentscan.l	15 Mar 2007 10:12:11 -0000	1.32
+++ src/commentscan.l	23 Mar 2007 12:47:04 -0000
@@ -74,6 +74,7 @@ static bool handleTodo(const QCString &)
 static bool handleTest(const QCString &);
 static bool handleBug(const QCString &);
 static bool handleSubpage(const QCString &s);
+static bool handleSince(const QCString &);
 static bool handleDeprecated(const QCString &);
 static bool handleXRefItem(const QCString &);
 static bool handleRelated(const QCString &);
@@ -150,6 +151,7 @@ static DocCmdMap docCmdMap[] =
   { "todo",            &handleTodo,             TRUE  },
   { "test",            &handleTest,             TRUE  },
   { "bug",             &handleBug,              TRUE  },
+  { "since",           &handleSince,            TRUE  },
   { "deprecated",      &handleDeprecated,       TRUE  },
   { "xrefitem",        &handleXRefItem,         TRUE  },
   { "related",         &handleRelated,          TRUE  },
@@ -218,7 +220,6 @@ static DocCmdMap docCmdMap[] =
   { "retval",          0,                       TRUE  },
   { "sa",              0,                       TRUE  },
   { "see",             0,                       TRUE  },
-  { "since",           0,                       TRUE  },
   { "throw",           0,                       TRUE  },
   { "until",           0,                       TRUE  },
   { "verbinclude",     0,                       TRUE  },
@@ -298,6 +299,7 @@ enum XRefKind
   XRef_Todo,
   XRef_Test,
   XRef_Bug,
+  XRef_Since,
   XRef_Deprecated,
   XRef_None
 };
@@ -636,6 +638,13 @@ static inline void setOutput(OutputConte
 		    xrefAppendToPrev
 		   );
 	break;
+      case XRef_Since:
+	addXRefItem("since",
+	            theTranslator->trSince(),
+		    theTranslator->trSinceList(),
+		    xrefAppendToPrev
+		   );
+	break;
       case XRef_Deprecated:
 	addXRefItem("deprecated",
 	            theTranslator->trDeprecated(),
@@ -750,11 +759,11 @@ DCMD5     ("latexonly"|"li"|"line"|"mano
 DCMD6     ("note"|"par"|"paragraph"|"param"|"post")
 DCMD7     ("pre"|"remarks"|(("relate"[sd])("also")?))
 DCMD8     ("remarks"|("return"[s]?)|"retval"|"sa"|"section")
-DCMD9     ("see"|"since"|"subsection"|"subsubsection")
+DCMD9     ("see"|"subsection"|"subsubsection")
 DCMD10    ("throw"|"until"|"verbatim")
 DCMD11    ("verbinclude"|"version"|"warning")
 DETAILEDCMD {CMD}({DCMD1}|{DCMD2}|{DCMD3}|{DCMD4}|{DCMD5}|{DCMD6}|{DCMD7}|{DCMD8}|{DCMD9}|{DCMD10}|{DCMD11})
-XREFCMD   {CMD}("bug"|"deprecated"|"test"|"todo"|"xrefitem")  
+XREFCMD   {CMD}("bug"|"deprecated"|"since"|"test"|"todo"|"xrefitem")  
 PRE       [pP][rR][eE]
 TABLE	  [tT][aA][bB][lL][eE]
 P	  [pP]
@@ -2003,6 +2012,14 @@ static bool handleBug(const QCString &)
   return FALSE;
 }
 
+static bool handleSince(const QCString &)
+{
+  newXRefKind = XRef_Since;
+  setOutput(OutputXRef);
+  xrefKind = XRef_Since;
+  return FALSE;
+}
+
 static bool handleDeprecated(const QCString &)
 {
   newXRefKind = XRef_Deprecated;
Index: src/config.l
===================================================================
RCS file: /cvsroot/doxygen/src/config.l,v
retrieving revision 1.157
diff -u -p -r1.157 config.l
--- src/config.l	15 Mar 2007 10:12:11 -0000	1.157
+++ src/config.l	23 Mar 2007 12:47:05 -0000
@@ -1813,6 +1813,13 @@ void Config::create()
                     TRUE
                  );
   cb = addBool(
+                    "GENERATE_SINCELIST",
+                    "The GENERATE_SINCELIST tag can be used to enable (YES) or \n"
+                    "disable (NO) the since list. This list is created by putting \n"
+		    "\\since commands in the documentation.\n",
+                    TRUE
+	         );
+  cb = addBool(
                     "GENERATE_DEPRECATEDLIST",
                     "The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or \n"
                     "disable (NO) the deprecated list. This list is created by putting \n"
Index: src/docparser.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/docparser.cpp,v
retrieving revision 1.96
diff -u -p -r1.96 docparser.cpp
--- src/docparser.cpp	15 Mar 2007 10:12:11 -0000	1.96
+++ src/docparser.cpp	23 Mar 2007 12:47:05 -0000
@@ -1722,6 +1722,7 @@ bool DocXRefItem::parse()
        (m_key!="todo"       || Config_getBool("GENERATE_TODOLIST")) && 
        (m_key!="test"       || Config_getBool("GENERATE_TESTLIST")) && 
        (m_key!="bug"        || Config_getBool("GENERATE_BUGLIST"))  && 
+       (m_key!="since"      || Config_getBool("GENERATE_SINCELIST"))&& 
        (m_key!="deprecated" || Config_getBool("GENERATE_DEPRECATEDLIST"))
       ) 
      )
@@ -4271,9 +4272,6 @@ int DocPara::handleCommand(const QString
     case CMD_VERSION:
       retval = handleSimpleSection(DocSimpleSect::Version);
       break;
-    case CMD_SINCE:
-      retval = handleSimpleSection(DocSimpleSect::Since);
-      break;
     case CMD_DATE:
       retval = handleSimpleSection(DocSimpleSect::Date);
       break;
Index: src/translator.h
===================================================================
RCS file: /cvsroot/doxygen/src/translator.h,v
retrieving revision 1.67
diff -u -p -r1.67 translator.h
--- src/translator.h	19 Feb 2007 18:47:47 -0000	1.67
+++ src/translator.h	23 Mar 2007 12:47:05 -0000
@@ -447,6 +447,8 @@ class Translator
     virtual QCString trCallerGraph() = 0;
     virtual QCString trEnumerationValueDocumentation() = 0;
 
+    virtual QCString trSinceList() = 0;
+
 };
 
 #endif
Index: src/translator_en.h
===================================================================
RCS file: /cvsroot/doxygen/src/translator_en.h,v
retrieving revision 1.39
diff -u -p -r1.39 translator_en.h
--- src/translator_en.h	15 Mar 2007 10:12:11 -0000	1.39
+++ src/translator_en.h	23 Mar 2007 12:47:05 -0000
@@ -1583,6 +1583,11 @@ class TranslatorEnglish : public Transla
     { return "Enumerator Documentation"; }
 
 
+    /*! Used as the header of the since list */
+    virtual QCString trSinceList()
+    {
+      return "Since List";
+    }
 };
 
 #endif
Index: src/translatordecoder.h
===================================================================
RCS file: /cvsroot/doxygen/src/translatordecoder.h,v
retrieving revision 1.2
diff -u -p -r1.2 translatordecoder.h
--- src/translatordecoder.h	15 Mar 2007 10:12:11 -0000	1.2
+++ src/translatordecoder.h	23 Mar 2007 12:47:05 -0000
@@ -648,6 +648,9 @@ class TranslatorDecoder : public Transla
     QCString trEnumerationValueDocumentation()  
     { return toUtf8(m_translator->trEnumerationValueDocumentation()); }
 
+    QCString trSinceList()  
+    { return toUtf8(m_translator->trSinceList()); }
+
   private:
     Translator *m_translator;
     void *m_toUtf8;
Index: src/util.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/util.cpp,v
retrieving revision 1.196
diff -u -p -r1.196 util.cpp
--- src/util.cpp	15 Mar 2007 10:12:11 -0000	1.196
+++ src/util.cpp	23 Mar 2007 12:47:05 -0000
@@ -5342,6 +5342,7 @@ void addRefItem(const QList<ListItemInfo
            (lii->type!="todo"       || Config_getBool("GENERATE_TODOLIST")) && 
            (lii->type!="test"       || Config_getBool("GENERATE_TESTLIST")) && 
            (lii->type!="bug"        || Config_getBool("GENERATE_BUGLIST"))  && 
+           (lii->type!="since"      || Config_getBool("GENERATE_SINCELIST"))&& 
            (lii->type!="deprecated" || Config_getBool("GENERATE_DEPRECATEDLIST"))
           ) 
          )
