merge the formfield patch from ooo-build
[ooovba.git] / testautomation / framework / tools / includes / arrayfuncs.inc
blobbb7011d773811f72d2e3f513da95396f86fd7fda
1 'encoding UTF-8  Do not remove or change this line!
2 '**************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '* 
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: arrayfuncs.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:19:05 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/************************************************************************
34 '* owner : joerg.skottke@sun.com
36 '* short description : misc functions for simpler listhandling. uses t_lists.inc
38 '\******************************************************************************
40 function listdebug( lsList() as string , cComment as string ) as integer
42    '///<h3>Write the content of a list plus a comment out to a file.</h3>
43    '///<i>It is required that following global variables are defined</i>
44    '///<ul>
45    '///+<li>LDN = ListDebugName (char) = the basename of the debugfiles</li>
46    '///+<li>LDC = ListDebugCounter (int) = a number added to the filename</li>
47    '///</ul>
49    dim cFile as string
51        LDC = LDC + 1
52        cFile = LDN & LDC & ".log"
54    dim sList( 5 ) as string
55    sList( 0 ) = "5"
56    sList( 1 ) = ""
57    sList( 2 ) = "---------------------------------------------------------------"
58    sList( 3 ) = cComment & " - Listsize: " & listcount( lsList() )
59    sList( 4 ) = "---------------------------------------------------------------"
60    sList( 5 ) = ""
62    ListWrite( sList() , cFile , "utf8" )
63    ListWriteAppend( lsList() , cFile , "utf8" )
65 end function
67 '*******************************************************************************
69 function initlistdebug( cComment as string ) as integer
71     '///<h3>Print leading text to a file and an index of the current debug session</h3>
72     '///<i>It is required that following global variables are defined</i>
73     '///<ul>
74     '///+<li>LDN = ListDebugName (char) = the basename of the debugfiles</li>
75     '///+<li>LDC = ListDebugCounter (int) = a number added to the filename</li>
76     '///</ul>
77     dim cFile as string
78         cFile = LDN & ".log"
80     dim sList( 5 ) as string
81     sList( 0 ) = "5"
82     sList( 1 ) = ""
83     sList( 2 ) = "==============================================================="
84     sList( 3 ) = cComment & " ---- Debug-Offset is at: " & LDC
85     sList( 4 ) = "==============================================================="
86     sList( 5 ) = ""
88     ListWrite( sList() , cFile , "utf8" )
90     printlog( "" )
91     printlog( " *** Debug is enabled ***" )
92     printlog( "" )
94 end function
96 '*******************************************************************************
98 function listmoveitem( source() as string, _
99                        target() as string, _
100                        itemid as integer ) as integer
101                        
102     '///<h3>Move one item from one list to another by index</h3>                       
103     '///<ul>
105     '///+<li>copy the list-item from list A to the end of list B, update listcount</li>
106     listappend( target() , source( itemid ) )
107     
108     '///+<li>Delete the entry from the old list, reindex and update listcount</li>
109     listdelete( source() , itemid )
110     
111     '///+<li>Return then updated listcount of the <i>source</i> list</li>
112     listmoveitem() = listcount( source() )
113     
114     '///</ul>
116 end function
118 '*******************************************************************************
120 function listconvertpath( lsList() as string ) as integer
122     '///<h3>Execute <i>convertpath</i> on a list containing filepaths</h3>
123     '///<ul>
125     dim iCurrentPath as integer
127     '///+<li>Convert all listitems with <i>convertpath</i></li>
128     for iCurrentPath = 1 to listcount( lsList() )
129         lsList( iCurrentPath ) = convertpath( lsList( iCurrentPath ) )
130     next iCurrentPath
132     '///+<li>Return the number of processed paths (listcount)</li>
133     listconvertpath() = listcount( lsList() )
134    
135     '///</ul>
137 end function
139 '*******************************************************************************
141 function listInsertSection( lsList() as string, _
142                             cSection as string ) as integer
143                             
144     '///<h3>Appends a section (as ordinary list element) to a list</h3>
145     '///<ul>
146                             
147     dim iPos as integer
148     dim sSectionString as string
149     
150     '///+<li>Get the current number of entries from the list</li>
151     iPos = listcount( lsList() )
152     
153     '///+<li>Insert a blank list-entry if we are not at the beginning of the list</li>
154     if ( iPos > 2 ) then
155         listappend( lsList() , "" )
156     end if                            
157     
158     '///+<li>Build the section string of type [section-name]</li>
159     sSectionString = "[" & cSection & "]"
160     
161     '///+<li>Append the new section to the list</li>
162     listappend( lsList() , sSectionString )
163     
164     '///+<li>Return the new number of entries in the list (listcount)</li>
165     listInsertSection() = listcount( lsList() )
166     
167     '///</ul>
169 end function