summaryrefslogtreecommitdiff
path: root/autodoc/source/exes/adc_uni/cmd_sincedata.cxx
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2004-07-12 14:35:49 +0000
committerRüdiger Timm <rt@openoffice.org>2004-07-12 14:35:49 +0000
commitfab2c611ffdb68a378d214fb05880e34578d7dd1 (patch)
tree3c594bc6059b8b8fbc5323d5731b240bbf4e0691 /autodoc/source/exes/adc_uni/cmd_sincedata.cxx
parent41ed4a1c5a31ebab5a5ba92cb4ccd64be2abc5f8 (diff)
INTEGRATION: CWS adc8 (1.1.2); FILE ADDED
2004/07/06 14:04:29 np 1.1.2.3: #i25608# 2004/07/02 14:44:35 np 1.1.2.2: #i30967# 2004/07/02 10:54:40 np 1.1.2.1: #i30967#
Diffstat (limited to 'autodoc/source/exes/adc_uni/cmd_sincedata.cxx')
-rw-r--r--autodoc/source/exes/adc_uni/cmd_sincedata.cxx187
1 files changed, 187 insertions, 0 deletions
diff --git a/autodoc/source/exes/adc_uni/cmd_sincedata.cxx b/autodoc/source/exes/adc_uni/cmd_sincedata.cxx
new file mode 100644
index 000000000000..9f700677aaa5
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/cmd_sincedata.cxx
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * $RCSfile: cmd_sincedata.cxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: rt $ $Date: 2004-07-12 15:35:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "cmd_sincedata.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <cosv/template/tpltools.hxx>
+#include "adc_cmds.hxx"
+
+
+
+namespace autodoc
+{
+namespace command
+{
+
+SinceTagTransformationData::SinceTagTransformationData()
+ : aTransformationTable()
+{
+}
+
+SinceTagTransformationData::~SinceTagTransformationData()
+{
+}
+
+bool
+SinceTagTransformationData::DoesTransform() const
+{
+ return NOT aTransformationTable.empty();
+}
+
+bool
+SinceTagTransformationData::StripSinceTagText( String & io_sSinceTagValue ) const
+{
+ StreamStr sValue(200);
+ sValue << io_sSinceTagValue;
+
+ // Find first cipher preceded by a blank:
+ bool bStart = false;
+ bool bBlank = true; // A cipher at start of line is accepted.
+ for ( const char * p = sValue.c_str();
+ *p != 0 AND NOT bStart;
+ ++p )
+ {
+ if (bBlank AND '0' <= *p AND *p <= '9')
+ {
+ bStart = true;
+ sValue.pop_front(p - sValue.c_str());
+ }
+ if (*p <= 32)
+ bBlank = true;
+ else
+ bBlank = false;
+ }
+ if (NOT bStart)
+ return false;
+
+ // Seek end of line and remove trailing whitespace:
+ const char * pData = sValue.c_str();
+ const char * pDataEnd = pData;
+ for ( ++pDataEnd;
+ *pDataEnd != 0 AND *pDataEnd != 10 AND *pDataEnd != 13;
+ ++pDataEnd );
+ sValue.seekp(pDataEnd - pData);
+ sValue.strip_back_whitespace();
+ io_sSinceTagValue.assign(sValue.c_str());
+ return true;
+}
+
+const String &
+SinceTagTransformationData::DisplayOf( const String & i_sVersionNumber ) const
+{
+ const String * ret = csv::find_in_map(aTransformationTable, i_sVersionNumber);
+ return ret != 0
+ ? *ret
+ : String::Null_();
+}
+
+void
+SinceTagTransformationData::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it; // Cur is since-file path.
+
+ CHECKOPT( it != itEnd ,
+ "file path",
+ C_opt_SinceFile );
+
+ csv::File aSinceFile(*it);
+ csv::OpenCloseGuard aSinceFileGuard(aSinceFile);
+ StreamStr sLine(200);
+
+ if (aSinceFileGuard)
+ {
+ for ( sLine.operator_read_line(aSinceFile);
+ NOT sLine.empty();
+ sLine.operator_read_line(aSinceFile) )
+ {
+
+ if (*sLine.begin() != '"')
+ continue;
+
+ const char * pVersion = sLine.c_str() + 1;
+ const char * pVersionEnd = strchr(pVersion, '"');
+ if (pVersionEnd == 0)
+ continue;
+ const char * pDisplay = strchr(pVersionEnd+1, '"');
+ if (pDisplay == 0)
+ continue;
+ ++pDisplay;
+ const char * pDisplayEnd = strchr(pDisplay, '"');
+ if (pDisplayEnd == 0)
+ continue;
+
+ aTransformationTable[ String(pVersion,pVersionEnd) ]
+ = String(pDisplay,pDisplayEnd);
+ sLine.clear();
+ } // end for
+ } // end if
+
+ ++it; // Cur is next option.
+}
+
+} // namespace command
+} // namespace autodoc