################################################################################ # TSL-LIBRARY: EMOS_ATTR_Lib ################################################################################ # Copyright (C) 2000 EMOS Computer Consulting GmbH # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # 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 # # For further information please contact: # # Dean Rajovic # EMOS Computer Consulting GmbH # Oskar-Messter-Straße 25 # 85737 Ismaning # Germany # tel.: +49 89 608 765-0 # mailto:drajovic@emos.de # http://www.emos.de ################################################################################ # $Revision: 1.2 $ # $Author: drajovic $ # $Date: 2004/11/07 22:26:27 $ # $Source: C:/Archive/FRAMEWORK/EMOS_GPL/STD/emos_std_attr_lib/script,v $ # $NoKeywords: $ ################################################################################ #/*** #* This library implements the iterator ot the attribute list that is used #* in framework's ATR mode. #*/ static attrs[]; static attrCount = 0; static currAttr = 0; #/** #* #*/ public function EMOS_ATTR_init_list( in list ) { auto arr[], arr2[]; auto count, count2; auto i; # reset the old values for ( i in attrs ) delete attrs[i]; attrCount = 0; currAttr = 0; # attr-info pairs are split by newlines count = split( list, arr, "\n" ); if ( count < 1 ) return E_ILLEGAL_PARAMETER; for ( i=0; i<count; i++ ) { # attr and info are split by colon # however since the colon may be the content of the value-part # we split the string after the first colon found count2 = index( arr[i+1], ":" ); if ( count2 == 0 ) return E_ILLEGAL_PARAMETER; attrs[i,0] = strip_both( substr( arr[i+1], 1, count2-1 ) ); attrs[i,1] = strip_both( substr( arr[i+1], count2+1 ) ); attrCount++; } currAttr = 0; return E_OK; } #/** #* #*/ public function EMOS_ATTR_has_more() { return ( attrCount > currAttr ); } #/** #* #*/ public function EMOS_ATTR_get_next( out attr, out info ) { if ( !EMOS_ATTR_has_more() ) return E_OUT_OF_RANGE; attr = attrs[currAttr, 0]; info = attrs[currAttr, 1]; currAttr++; return E_OK; }