@DATABASE "pUtilityD"
@MASTER   "Work2:AD/Idoc/pUtilityD.doc"
@REMARK   This file was created by ADtoHT 2.0 on 11-Mär-97  13:38:02
@REMARK   Do not edit
@REMARK   ADtoHT is © 1993-1995 Christian Stieber

@NODE MAIN "pUtilityD.doc"
@TOC "__pOS_Dev.guide/MAIN"

                              @{b}putility.library@{ub}

@{"pOS_FindTagData()" LINK "pOS_FindTagData"}  @{"pOS_FindTagItem()" LINK "pOS_FindTagItem"}     @{"pOS_MapTagItems()" LINK "pOS_MapTagItems"}
@{"pOS_NextTagItem()" LINK "pOS_NextTagItem"}  @{"UtilityAllgemeines()" LINK "UtilityAllgemeines"}  

@ENDNODE
@NODE "UtilityAllgemeines" "putility.library/UtilityAllgemeines()"
@{b}

 STRUKTUREN@{ub}

        @{"struct pOS_UtilityBase" LINK "pUtil/UtilBase.h/File" 18};
        @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19};@{b}

 INCLUDES@{ub}

        @{"pUtil/TagItem.h" LINK "pUtil/TagItem.h/File"}
        @{"pUtil/TxtTags.h" LINK "pUtil/TxtTags.h/File"}
        @{"pUtil/UtilBase.h" LINK "pUtil/UtilBase.h/File"}
        proto/pUtil.h@{b}

 BESCHREIBUNG@{ub}

@ENDNODE
@NODE "pOS_FindTagData" "putility.library/pOS_FindTagData()"
@{b}

  PROTOTYP@{ub}
        @{"ULONG" LINK "pExec/Types.h/File" 91} data = pOS_FindTagData
          (
            pOS_UtilityBase *utilitybase,
            @{"ULONG" LINK "pExec/Types.h/File" 91} tagtyp,
            const pOS_TagItem *taglist,
            @{"ULONG" LINK "pExec/Types.h/File" 91} default
          );@{b}

  FUNKTION@{ub}
        Ermitteln von Tag-Daten einer Tag-Liste.@{b}

  PARAMETER@{ub}
        utilitybase (@{"_R_LB" LINK "pExec/Types.h/File" 35})
          Zeiger auf pOS_UtilityBase
        tagtyp (@{"_R_D0" LINK "pExec/Types.h/File" 37})
          Name von gesuchtem Tag
        taglist (@{"_R_A0" LINK "pExec/Types.h/File" 28})
          Zeiger auf die Tag-Liste die durchsucht werden soll.
          Der Zeiger darf @{"NULL" LINK "pExec/Types.h/File" 117} sein.
        default (@{"_R_D1" LINK "pExec/Types.h/File" 38})
          Wert der zurückgegeben werden soll, wenn der Tag nicht
          in der Liste vorhanden war.@{b}

  ERGEBNIS@{ub}
        tag (@{"_R_D0" LINK "pExec/Types.h/File" 37})
          Tag-Wert des ersten gefundenen Tags oder default,
          wenn kein passender Tag gefunden werden konnte.@{b}

  SIEHE AUCH@{ub}
        <@{"pUtil/TagItem.h" LINK "pUtil/TagItem.h/File"}>
        @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19}
        @{"pOS_FindTagItem()" LINK "pOS_FindTagItem"}, @{"pOS_NextTagItem()" LINK "pOS_NextTagItem"}@{b}

  AMIGA FUNKTION@{ub}
        @{"ULONG" LINK "pExec/Types.h/File" 91} GetTagData(Tag,@{"ULONG" LINK "pExec/Types.h/File" 91},struct TagItem *);

@ENDNODE
@NODE "pOS_FindTagItem" "putility.library/pOS_FindTagItem()"
@{b}

  PROTOTYP@{ub}
        pOS_TagItem *tag = pOS_FindTagItem
          (
            pOS_UtilityBase *utilitybase,
            @{"ULONG" LINK "pExec/Types.h/File" 91} tagtyp,
            const pOS_TagItem *taglist
          );@{b}

  FUNKTION@{ub}
        Suchen eines Tags in einer Tag-Liste.@{b}

  PARAMETER@{ub}
        utilitybase (@{"_R_LB" LINK "pExec/Types.h/File" 35})
          Zeiger auf pOS_UtilityBase
        tagtype (@{"_R_D0" LINK "pExec/Types.h/File" 37})
          Name von gesuchtem Tag
        taglist (@{"_R_A0" LINK "pExec/Types.h/File" 28})
          Zeiger auf die Tag-Liste die durchsucht werden soll.
          Der Zeiger darf @{"NULL" LINK "pExec/Types.h/File" 117} sein.@{b}

  ERGEBNIS@{ub}
        tag (@{"_R_D0" LINK "pExec/Types.h/File" 37})
          Zeiger auf die erste ermittelte TagItem-Struktur;
          @{"NULL" LINK "pExec/Types.h/File" 117} wenn der Tag nicht in der Liste vorhanden ist.@{b}

  SIEHE AUCH@{ub}
        <@{"pUtil/TagItem.h" LINK "pUtil/TagItem.h/File"}>
        @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19}
        @{"pOS_NextTagItem()" LINK "pOS_NextTagItem"}
        @{"pOS_FindTagData()" LINK "pOS_FindTagData"}@{b}

  AMIGA FUNKTION@{ub}
        struct TagItem *FindTagItem(Tag,struct TagItem *);

@ENDNODE
@NODE "pOS_MapTagItems" "putility.library/pOS_MapTagItems()"
@{b}

  PROTOTYP@{ub}
        @{"VOID" LINK "pExec/Types.h/File" 83} pOS_MapTagItems
          (
            pOS_UtilityBase *utilitybase,
            const pOS_TagItem *maplist,
            pOS_TagItem *taglist
          );@{b}

  FUNKTION@{ub}
        Konvertieren von Daten in einer Tag-Liste anhand einer
        zweiten Tag-Liste.
        Die maplist wird komplett durchlaufen und der jeweils erste
        gleiche Tag, der in taglist gefunden wird, wird mit den Daten aus
        maplist gefüllt.@{b}

  PARAMETER@{ub}
        utilitybase (@{"_R_LB" LINK "pExec/Types.h/File" 35})
          Zeiger auf pOS_UtilityBase
        maplist (@{"_R_A0" LINK "pExec/Types.h/File" 28})
          Tag-Liste die die Veränderungen beschreibt
          ACHTUNG: darf nicht @{"NULL" LINK "pExec/Types.h/File" 117} sein
        taglist (@{"_R_A1" LINK "pExec/Types.h/File" 29})
          Tag-Liste die verändert werden soll
          ACHTUNG: darf nicht @{"NULL" LINK "pExec/Types.h/File" 117} sein@{b}

  BEISPIEL@{ub}
        pOS_TagItem TagListe[]={ TAG1,1, TAG2,2, TAG3,3, TAG2,4, @{"TAG_DONE" LINK "pUtil/TagItem.h/File" 26} };
        pOS_TagItem MapListe[]={ TAG2,22, @{"TAG_DONE" LINK "pUtil/TagItem.h/File" 26} };
        pOS_MapTagItems(MapListe,TagListe);
        TagListe danach: TAG1,1, TAG2,22, TAG3,3, TAG2,4, @{"TAG_DONE" LINK "pUtil/TagItem.h/File" 26}@{b}

  SIEHE AUCH@{ub}
        @{"pOS_NextTagItem()" LINK "pOS_NextTagItem"}@{b}

  AMIGA FUNKTION@{ub}
        ACHTUNG: ist nicht identisch mit der AMIGA FUNKTION MapTags()

@ENDNODE
@NODE "pOS_NextTagItem" "putility.library/pOS_NextTagItem()"
@{b}

  PROTOTYP@{ub}
        pOS_TagItem *tag = pOS_NextTagItem
          (
            pOS_UtilityBase *utilitybase,
            const pOS_TagItem **taglisrptr
          );@{b}

  FUNKTION@{ub}
        Durchläuft eine Tag-Liste und beachtet dabei die Standard-Tags.
            @{"TAG_DONE" LINK "pUtil/TagItem.h/File" 26}   Kennzeichnet das Ende einer Tag-Liste.

            @{"TAG_END" LINK "pUtil/TagItem.h/File" 29}    gleich wie @{"TAG_DONE" LINK "pUtil/TagItem.h/File" 26}

            @{"TAG_IGNORE" LINK "pUtil/TagItem.h/File" 30} Ignoriert diesen Tag und fährt beim nächsten
                       Tag mit der Bearbeitung fort.

            @{"TAG_MORE" LINK "pUtil/TagItem.h/File" 33}   Ist eine Art Sprungmarke. In ti_Data befindet sich
                       der Zeiger auf eine weitere (const @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19}*)
                       Liste. Nach der Bearbeitung von ti_Data wird NICHT
                       mit dem folgenden Tag weitergearbeitet. Das Ende
                       von ti_Data ist immer das Ende der gesamten Tag-Liste.
                       Ist ti_Data==@{"NULL" LINK "pExec/Types.h/File" 117}, dann wird die Abarbeitung sofort
                       beendet (@{"TAG_END" LINK "pUtil/TagItem.h/File" 29}).

            @{"TAG_SKIP" LINK "pUtil/TagItem.h/File" 41}   Überspringt folgende ti_Data Tags.
                       Z.B.  {TAG_A,0, @{"TAG_SKIP" LINK "pUtil/TagItem.h/File" 41},2, TAG_B,1, TAG_C,3, TAG_D,4,...}
                       Ausgelesen werden: TAG_A, TAG_D
                       Befindet sich im Skip-Bereich ein @{"TAG_END" LINK "pUtil/TagItem.h/File" 29}, so wird
                       die Tag-Bearbeitung ordnungsgemäß beendet.
                       Wird im Skip-Bereich ein @{"TAG_MORE" LINK "pUtil/TagItem.h/File" 33} entdeckt, wird der
                       Skip abgebrochen und normal mit @{"TAG_MORE" LINK "pUtil/TagItem.h/File" 33} weitergearbeitet.@{b}

  PARAMETER@{ub}
        utilitybase (@{"_R_LB" LINK "pExec/Types.h/File" 35})
          Zeiger auf pOS_UtilityBase
        taglistptr (@{"_R_A0" LINK "pExec/Types.h/File" 28})
          Adresse des Zeigers auf ein Element der Tag-Liste; dieser
          Zeiger wird von der Funktion verändert und dient auch bei
          jedem folgenden Aufruf als Übergabeparameter.
          Der Zeiger darf @{"NULL" LINK "pExec/Types.h/File" 117} sein.@{b}

  ERGEBNIS@{ub}
        tag (@{"_R_D0" LINK "pExec/Types.h/File" 37})
          Zeiger auf die ermittelte TagItem-Struktur;
          @{"NULL" LINK "pExec/Types.h/File" 117} am Ende der Tag-Liste.@{b}

  SIEHE AUCH@{ub}
        <@{"pUtil/TagItem.h" LINK "pUtil/TagItem.h/File"}>
        @{"struct pOS_TagItem" LINK "pUtil/TagItem.h/File" 19}
        @{"pOS_FindTagItem()" LINK "pOS_FindTagItem"}
        @{"pOS_FindTagData()" LINK "pOS_FindTagData"}@{b}

  AMIGA FUNKTION@{ub}
        struct TagItem *NextTagItem(struct TagItem **);@{b}

  END@{ub}

@ENDNODE
