Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

httag.h

Go to the documentation of this file.
00001 /* 
00002  *      HT Editor
00003  *      httag.h
00004  *
00005  *      Copyright (C) 1999-2002 Stefan Weyergraf (stefan@weyergraf.de)
00006  *
00007  *      This program is free software; you can redistribute it and/or modify
00008  *      it under the terms of the GNU General Public License version 2 as
00009  *      published by the Free Software Foundation.
00010  *
00011  *      This program is distributed in the hope that it will be useful,
00012  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *      GNU General Public License for more details.
00015  *
00016  *      You should have received a copy of the GNU General Public License
00017  *      along with this program; if not, write to the Free Software
00018  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019  */
00020 
00021 #ifndef __HTTAG_H__
00022 #define __HTTAG_H__
00023 
00024 #include "global.h"
00025 #include "htio.h"
00026 #include "stream.h"
00027 
00028 /* SELECTION-TAG */
00029 #define HT_TAG_SEL                                      0x01
00030 #define HT_TAG_SEL_LEN(n)                       (sizeof(ht_tag_sel)+n)
00031 #define HT_TAG_SEL_VLEN(n)                      (n)
00032 
00033 #define HT_STATICTAG_SEL                                0x81
00034 #define HT_STATICTAG_SEL_CH                     "\e\x81"
00035 
00036 struct ht_tag_sel {
00037         byte escape HTPACKED;
00038         byte magic HTPACKED;
00039         ID id128_1 HTPACKED;
00040         ID id128_2 HTPACKED;
00041         ID id128_3 HTPACKED;
00042         ID id128_4 HTPACKED;
00043         byte strlen HTPACKED;
00044 };
00045 
00046 /* FLAGS-TAG */
00047 #define HT_TAG_FLAGS                            0x02
00048 #define HT_TAG_FLAGS_LEN                sizeof(ht_tag_flags)
00049 #define HT_TAG_FLAGS_VLEN                       1
00050 
00051 #define HT_STATICTAG_FLAGS                      0x82
00052 #define HT_STATICTAG_FLAGS_CH                   "\e\x82"
00053 
00054 struct ht_tag_flags {
00055         byte escape HTPACKED;
00056         byte magic HTPACKED;
00057         FILEOFS offset HTPACKED;
00058         ID id HTPACKED;
00059 };
00060 
00061 struct ht_tag_flags_s {
00062         char bitidx HTPACKED;
00063         char *desc HTPACKED;
00064 };
00065 
00066 /* GROUP-TAG */
00067 #define HT_TAG_GROUP                            0x03
00068 #define HT_TAG_GROUP_LEN                                sizeof(ht_tag_group)
00069 
00070 #define HT_STATICTAG_GROUP                      0x83
00071 #define HT_STATICTAG_GROUP_CH                   "\e\x83"
00072 
00073 struct ht_tag_group {
00074         byte escape HTPACKED;
00075         byte magic HTPACKED;
00076 };
00077 
00078 /* COLOR-TAG */
00079 #define HT_TAG_COLOR                            0x04
00080 #define HT_TAG_COLOR_LEN                                sizeof(ht_tag_color)
00081 
00082 #define HT_STATICTAG_COLOR                      0x84
00083 #define HT_STATICTAG_COLOR_CH                   "\e\x84"
00084 
00085 struct ht_tag_color {
00086         byte escape HTPACKED;
00087         byte magic HTPACKED;
00088         dword color HTPACKED;
00089 };
00090 
00091 /* EDIT-BYTE-TAG */
00092 #define HT_TAG_EDIT_BYTE                                0x10
00093 #define HT_TAG_EDIT_BYTE_LEN                    sizeof(ht_tag_edit_byte)
00094 #define HT_TAG_EDIT_BYTE_VLEN                   (2)
00095 #define HT_TAG_EDIT_BYTE_SIZE                   (1)
00096 
00097 #define HT_STATICTAG_EDIT_BYTE          0x90
00098 #define HT_STATICTAG_EDIT_BYTE_CH               "\e\x90"
00099 
00100 struct ht_tag_edit_byte {
00101         byte escape HTPACKED;
00102         byte magic HTPACKED;
00103         FILEOFS offset HTPACKED;
00104 };
00105 
00106 /* EDIT WORD */
00107 
00108 struct ht_tag_edit_word_generic {
00109         byte escape HTPACKED;
00110         byte magic HTPACKED;
00111         FILEOFS offset HTPACKED;
00112 };
00113 
00114 /* EDIT DWORD */
00115 
00116 struct ht_tag_edit_dword_generic {
00117         byte escape HTPACKED;
00118         byte magic HTPACKED;
00119         FILEOFS offset HTPACKED;
00120 };
00121 
00122 /* EDIT QWORD */
00123 
00124 struct ht_tag_edit_qword_generic {
00125         byte escape HTPACKED;
00126         byte magic HTPACKED;
00127         FILEOFS offset HTPACKED;
00128 };
00129 
00130 /* EDIT-WORD-TAG (little-endian) */
00131 #define HT_TAG_EDIT_WORD_LE                     0x11
00132 #define HT_TAG_EDIT_WORD_LE_LEN         sizeof(ht_tag_edit_word_generic)
00133 #define HT_TAG_EDIT_WORD_LE_VLEN                (4)
00134 #define HT_TAG_EDIT_WORD_LE_SIZE                (2)
00135 
00136 #define HT_STATICTAG_EDIT_WORD_LE               0x91
00137 #define HT_STATICTAG_EDIT_WORD_LE_CH    "\e\x91"
00138 
00139 /* EDIT-DWORD-TAG (little-endian) */
00140 #define HT_TAG_EDIT_DWORD_LE                    0x12
00141 #define HT_TAG_EDIT_DWORD_LE_LEN                sizeof(ht_tag_edit_dword_generic)
00142 #define HT_TAG_EDIT_DWORD_LE_VLEN               (8)
00143 #define HT_TAG_EDIT_DWORD_LE_SIZE               (4)
00144 
00145 #define HT_STATICTAG_EDIT_DWORD_LE              0x92
00146 #define HT_STATICTAG_EDIT_DWORD_LE_CH   "\e\x92"
00147 
00148 /* EDIT-QWORD-TAG (little-endian) */
00149 #define HT_TAG_EDIT_QWORD_LE                    0x13
00150 #define HT_TAG_EDIT_QWORD_LE_LEN                sizeof(ht_tag_edit_qword_generic)
00151 #define HT_TAG_EDIT_QWORD_LE_VLEN               (16)
00152 #define HT_TAG_EDIT_QWORD_LE_SIZE               (8)
00153 
00154 #define HT_STATICTAG_EDIT_QWORD_LE              0x93
00155 #define HT_STATICTAG_EDIT_QWORD_LE_CH   "\e\x93"
00156 
00157 /* EDIT-WORD-TAG (big-endian) */
00158 #define HT_TAG_EDIT_WORD_BE                     0x14
00159 #define HT_TAG_EDIT_WORD_BE_LEN         sizeof(ht_tag_edit_word_generic)
00160 #define HT_TAG_EDIT_WORD_BE_VLEN                (4)
00161 #define HT_TAG_EDIT_WORD_BE_SIZE                (2)
00162 
00163 #define HT_STATICTAG_EDIT_WORD_BE               0x94
00164 #define HT_STATICTAG_EDIT_WORD_BE_CH    "\e\x94"
00165 
00166 /* EDIT-DWORD-TAG (big-endian) */
00167 #define HT_TAG_EDIT_DWORD_BE                    0x15
00168 #define HT_TAG_EDIT_DWORD_BE_LEN                sizeof(ht_tag_edit_dword_generic)
00169 #define HT_TAG_EDIT_DWORD_BE_VLEN               (8)
00170 #define HT_TAG_EDIT_DWORD_BE_SIZE               (4)
00171 
00172 #define HT_STATICTAG_EDIT_DWORD_BE              0x95
00173 #define HT_STATICTAG_EDIT_DWORD_BE_CH   "\e\x95"
00174 
00175 /* EDIT-QWORD-TAG (big-endian) */
00176 #define HT_TAG_EDIT_QWORD_BE                    0x16
00177 #define HT_TAG_EDIT_QWORD_BE_LEN                sizeof(ht_tag_edit_qword_generic)
00178 #define HT_TAG_EDIT_QWORD_BE_VLEN               (16)
00179 #define HT_TAG_EDIT_QWORD_BE_SIZE               (8)
00180 
00181 #define HT_STATICTAG_EDIT_QWORD_BE              0x96
00182 #define HT_STATICTAG_EDIT_QWORD_BE_CH   "\e\x96"
00183 
00184 /* EDIT-WORD-TAG (var-endian) */
00185 #define HT_TAG_EDIT_WORD_VE                     0x17
00186 #define HT_TAG_EDIT_WORD_VE_LEN         sizeof(ht_tag_edit_word_generic)
00187 #define HT_TAG_EDIT_WORD_VE_VLEN                (4)
00188 #define HT_TAG_EDIT_WORD_VE_SIZE                (2)
00189 
00190 #define HT_STATICTAG_EDIT_WORD_VE               0x97
00191 #define HT_STATICTAG_EDIT_WORD_VE_CH    "\e\x97"
00192 
00193 /* EDIT-DWORD-TAG (var-endian) */
00194 #define HT_TAG_EDIT_DWORD_VE                    0x18
00195 #define HT_TAG_EDIT_DWORD_VE_LEN                sizeof(ht_tag_edit_dword_generic)
00196 #define HT_TAG_EDIT_DWORD_VE_VLEN               (8)
00197 #define HT_TAG_EDIT_DWORD_VE_SIZE               (4)
00198 
00199 #define HT_STATICTAG_EDIT_DWORD_VE              0x98
00200 #define HT_STATICTAG_EDIT_DWORD_VE_CH   "\e\x98"
00201 
00202 /* EDIT-QWORD-TAG (var-endian) */
00203 #define HT_TAG_EDIT_QWORD_VE                    0x19
00204 #define HT_TAG_EDIT_QWORD_VE_LEN                sizeof(ht_tag_edit_qword_generic)
00205 #define HT_TAG_EDIT_QWORD_VE_VLEN               (16)
00206 #define HT_TAG_EDIT_QWORD_VE_SIZE               (8)
00207 
00208 #define HT_STATICTAG_EDIT_QWORD_VE              0x99
00209 #define HT_STATICTAG_EDIT_QWORD_VE_CH   "\e\x99"
00210 
00211 /* EDIT-TIME-TAG */
00212 #define HT_TAG_EDIT_TIME                                0x1a
00213 #define HT_TAG_EDIT_TIME_LEN                    sizeof(ht_tag_edit_time)
00214 #define HT_TAG_EDIT_TIME_VLEN                   (19)
00215 #define HT_TAG_EDIT_TIME_SIZE                   (4)
00216 
00217 #define HT_STATICTAG_EDIT_TIME          0x9a
00218 #define HT_STATICTAG_EDIT_TIME_CH               "\e\x9a"
00219 
00220 struct ht_tag_edit_time {
00221         byte escape HTPACKED;
00222         byte magic HTPACKED;
00223         FILEOFS offset HTPACKED;
00224 };
00225 
00226 /* EDIT-CHAR-TAG */
00227 #define HT_TAG_EDIT_CHAR                                0x1b
00228 #define HT_TAG_EDIT_CHAR_LEN                    sizeof(ht_tag_edit_char)
00229 #define HT_TAG_EDIT_CHAR_VLEN                   (1)
00230 #define HT_TAG_EDIT_CHAR_SIZE                   (1)
00231 
00232 #define HT_STATICTAG_EDIT_CHAR          0x9b
00233 #define HT_STATICTAG_EDIT_CHAR_CH               "\e\x9b"
00234 
00235 struct ht_tag_edit_char {
00236         byte escape HTPACKED;
00237         byte magic HTPACKED;
00238         FILEOFS offset HTPACKED;
00239 };
00240 
00241 /* EDIT-BIT-TAG */
00242 #define HT_TAG_EDIT_BIT                         0x1c
00243 #define HT_TAG_EDIT_BIT_LEN                     sizeof(ht_tag_edit_bit)
00244 #define HT_TAG_EDIT_BIT_VLEN                    (1)
00245 #define HT_TAG_EDIT_BIT_SIZE                    (1)
00246 
00247 #define HT_STATICTAG_EDIT_BIT           0x9c
00248 #define HT_STATICTAG_EDIT_BIT_CH                "\e\x9c"
00249 
00250 struct ht_tag_edit_bit {
00251         byte escape HTPACKED;
00252         byte magic HTPACKED;
00253         FILEOFS offset HTPACKED;
00254         byte bitidx HTPACKED;
00255 };
00256 
00257 /* EDIT-SELVIS-TAG */
00258 #define HT_TAG_EDIT_SELVIS                      0x1d
00259 #define HT_TAG_EDIT_SELVIS_LEN          sizeof(ht_tag_edit_selvis)
00260 #define HT_TAG_EDIT_SELVIS_VLEN         (1)
00261 
00262 #define HT_STATICTAG_EDIT_SELVIS                0x9d
00263 #define HT_STATICTAG_EDIT_SELVIS_CH     "\e\x9d"
00264 
00265 struct ht_tag_edit_selvis {
00266         byte escape HTPACKED;
00267         byte magic HTPACKED;
00268         FILEOFS offset HTPACKED;
00269         char ch HTPACKED;
00270 };
00271 
00272 /* DESC-BYTE-TAG */
00273 #define HT_TAG_DESC_BYTE                                0x20
00274 #define HT_TAG_DESC_BYTE_LEN                    sizeof(ht_tag_desc_byte)
00275 
00276 #define HT_STATICTAG_DESC_BYTE          0xa0
00277 #define HT_STATICTAG_DESC_BYTE_CH               "\e\xa0"
00278 
00279 struct ht_tag_desc_byte {
00280         byte escape HTPACKED;
00281         byte magic HTPACKED;
00282         ID id HTPACKED;
00283         FILEOFS offset HTPACKED;
00284 };
00285 
00286 /* DESC WORD */
00287 struct ht_tag_desc_word_generic {
00288         byte escape HTPACKED;
00289         byte magic HTPACKED;
00290         ID id HTPACKED;
00291         FILEOFS offset HTPACKED;
00292 };
00293 
00294 /* DESC DWORD */
00295 struct ht_tag_desc_dword_generic {
00296         byte escape HTPACKED;
00297         byte magic HTPACKED;
00298         ID id HTPACKED;
00299         FILEOFS offset HTPACKED;
00300 };
00301 
00302 /* DESC QWORD */
00303 struct ht_tag_desc_qword_generic {
00304         byte escape HTPACKED;
00305         byte magic HTPACKED;
00306         ID id HTPACKED;
00307         FILEOFS offset HTPACKED;
00308 };
00309 
00310 /* DESC-WORD-TAG (little-endian) */
00311 #define HT_TAG_DESC_WORD_LE                     0x21
00312 #define HT_TAG_DESC_WORD_LE_LEN         sizeof(ht_tag_desc_word_generic)
00313 
00314 #define HT_STATICTAG_DESC_WORD_LE               0xa1
00315 #define HT_STATICTAG_DESC_WORD_LE_CH    "\e\xa1"
00316 
00317 /* DESC-DWORD-TAG (little-endian) */
00318 #define HT_TAG_DESC_DWORD_LE                    0x22
00319 #define HT_TAG_DESC_DWORD_LE_LEN                sizeof(ht_tag_desc_dword_generic)
00320 
00321 #define HT_STATICTAG_DESC_DWORD_LE              0xa2
00322 #define HT_STATICTAG_DESC_DWORD_LE_CH   "\e\xa2"
00323 
00324 /* DESC-QWORD-TAG (little-endian) */
00325 #define HT_TAG_DESC_QWORD_LE                    0x23
00326 #define HT_TAG_DESC_QWORD_LE_LEN                sizeof(ht_tag_desc_qword_generic)
00327 
00328 #define HT_STATICTAG_DESC_QWORD_LE              0xa3
00329 #define HT_STATICTAG_DESC_QWORD_LE_CH   "\e\xa3"
00330 
00331 /* DESC-WORD-TAG (big-endian) */
00332 #define HT_TAG_DESC_WORD_BE                     0x24
00333 #define HT_TAG_DESC_WORD_BE_LEN         sizeof(ht_tag_desc_word_generic)
00334 
00335 #define HT_STATICTAG_DESC_WORD_BE               0xa4
00336 #define HT_STATICTAG_DESC_WORD_BE_CH    "\e\xa4"
00337 
00338 /* DESC-DWORD-TAG (big-endian) */
00339 #define HT_TAG_DESC_DWORD_BE                    0x25
00340 #define HT_TAG_DESC_DWORD_BE_LEN                sizeof(ht_tag_desc_dword_generic)
00341 
00342 #define HT_STATICTAG_DESC_DWORD_BE              0xa5
00343 #define HT_STATICTAG_DESC_DWORD_BE_CH   "\e\xa5"
00344 
00345 /* DESC-QWORD-TAG (big-endian) */
00346 #define HT_TAG_DESC_QWORD_BE                    0x26
00347 #define HT_TAG_DESC_QWORD_BE_LEN                sizeof(ht_tag_desc_qword_generic)
00348 
00349 #define HT_STATICTAG_DESC_QWORD_BE              0xa6
00350 #define HT_STATICTAG_DESC_QWORD_BE_CH   "\e\xa6"
00351 
00352 /* DESC-WORD-TAG (var-endian) */
00353 #define HT_TAG_DESC_WORD_VE                     0x27
00354 #define HT_TAG_DESC_WORD_VE_LEN         sizeof(ht_tag_desc_word_generic)
00355 
00356 #define HT_STATICTAG_DESC_WORD_VE               0xa7
00357 #define HT_STATICTAG_DESC_WORD_VE_CH    "\e\xa7"
00358 
00359 /* DESC-DWORD-TAG (var-endian) */
00360 #define HT_TAG_DESC_DWORD_VE                    0x28
00361 #define HT_TAG_DESC_DWORD_VE_LEN                sizeof(ht_tag_desc_dword_generic)
00362 
00363 #define HT_STATICTAG_DESC_DWORD_VE              0xa8
00364 #define HT_STATICTAG_DESC_DWORD_VE_CH   "\e\xa8"
00365 
00366 /* DESC-QWORD-TAG (var-endian) */
00367 #define HT_TAG_DESC_QWORD_VE                    0x29
00368 #define HT_TAG_DESC_QWORD_VE_LEN                sizeof(ht_tag_desc_qword_generic)
00369 
00370 #define HT_STATICTAG_DESC_QWORD_VE              0xa9
00371 #define HT_STATICTAG_DESC_QWORD_VE_CH   "\e\xa9"
00372 
00373 enum tag_endian { tag_endian_big, tag_endian_little, tag_endian_var };
00374 
00375 /*
00376  *      tag palette
00377  */
00378 
00379 #define palkey_tags_default                                     "default"
00380 
00381 #define palidx_tags_edit_tag_cursor_select              0
00382 #define palidx_tags_edit_tag_cursor_edit                1
00383 #define palidx_tags_edit_tag_cursor_unfocused   2
00384 #define palidx_tags_edit_tag_selected                   3
00385 #define palidx_tags_edit_tag_modified                   4
00386 #define palidx_tags_edit_tag                                    5
00387 #define palidx_tags_sel_tag_cursor_focused              6
00388 #define palidx_tags_sel_tag_cursor_unfocused            7
00389 #define palidx_tags_sel_tag                                     8
00390 
00391 #define STATICTAG_SEL(len8, str) HT_STATICTAG_SEL_CH "0000000000000000" "0000000000000000" len8 str
00392 #define STATICTAG_REF(id64, len8, str) HT_STATICTAG_SEL_CH id64 "0000000000000000" len8 str
00393 #define STATICTAG_FLAGS(ofs32, id32) HT_STATICTAG_FLAGS_CH ofs32 id32
00394 #define STATICTAG_GROUP() HT_STATICTAG_GROUP_CH
00395 #define STATICTAG_COLOR(color8) HT_STATICTAG_COLOR_CH color8
00396 
00397 #define STATICTAG_EDIT_BYTE(ofs32) HT_STATICTAG_EDIT_BYTE_CH ofs32
00398 #define STATICTAG_EDIT_WORD_LE(ofs32) HT_STATICTAG_EDIT_WORD_LE_CH ofs32
00399 #define STATICTAG_EDIT_DWORD_LE(ofs32) HT_STATICTAG_EDIT_DWORD_LE_CH ofs32
00400 #define STATICTAG_EDIT_QWORD_LE(ofs32) HT_STATICTAG_EDIT_QWORD_LE_CH ofs32
00401 #define STATICTAG_EDIT_WORD_BE(ofs32) HT_STATICTAG_EDIT_WORD_BE_CH ofs32
00402 #define STATICTAG_EDIT_DWORD_BE(ofs32) HT_STATICTAG_EDIT_DWORD_BE_CH ofs32
00403 #define STATICTAG_EDIT_QWORD_BE(ofs32) HT_STATICTAG_EDIT_QWORD_BE_CH ofs32
00404 #define STATICTAG_EDIT_WORD_VE(ofs32) HT_STATICTAG_EDIT_WORD_VE_CH ofs32
00405 #define STATICTAG_EDIT_DWORD_VE(ofs32) HT_STATICTAG_EDIT_DWORD_VE_CH ofs32
00406 #define STATICTAG_EDIT_QWORD_VE(ofs32) HT_STATICTAG_EDIT_QWORD_VE_CH ofs32
00407 #define STATICTAG_EDIT_TIME(ofs32) HT_STATICTAG_EDIT_TIME_CH ofs32
00408 #define STATICTAG_EDIT_CHAR(ofs32) HT_STATICTAG_EDIT_CHAR_CH ofs32
00409 #define STATICTAG_EDIT_BIT(ofs32, bitidx8) HT_STATICTAG_EDIT_BIT_CH ofs32 bitidx8
00410 #define STATICTAG_EDIT_SELVIS(ofs32, char8) HT_STATICTAG_EDIT_SELVIS_CH ofs32 char8
00411 
00412 #define STATICTAG_DESC_BYTE(ofs32, id32) HT_STATICTAG_DESC_BYTE_CH ofs32 id32
00413 #define STATICTAG_DESC_WORD_LE(ofs32, id32) HT_STATICTAG_DESC_WORD_LE_CH ofs32 id32
00414 #define STATICTAG_DESC_DWORD_LE(ofs32, id32) HT_STATICTAG_DESC_DWORD_LE_CH ofs32 id32
00415 #define STATICTAG_DESC_QWORD_LE(ofs32, id32) HT_STATICTAG_DESC_QWORD_LE_CH ofs32 id32
00416 #define STATICTAG_DESC_WORD_BE(ofs32, id32) HT_STATICTAG_DESC_WORD_BE_CH ofs32 id32
00417 #define STATICTAG_DESC_DWORD_BE(ofs32, id32) HT_STATICTAG_DESC_DWORD_BE_CH ofs32 id32
00418 #define STATICTAG_DESC_QWORD_BE(ofs32, id32) HT_STATICTAG_DESC_QWORD_BE_CH ofs32 id32
00419 #define STATICTAG_DESC_WORD_VE(ofs32, id32) HT_STATICTAG_DESC_WORD_VE_CH ofs32 id32
00420 #define STATICTAG_DESC_DWORD_VE(ofs32, id32) HT_STATICTAG_DESC_DWORD_VE_CH ofs32 id32
00421 #define STATICTAG_DESC_QWORD_VE(ofs32, id32) HT_STATICTAG_DESC_QWORD_VE_CH ofs32 id32
00422 
00423 #define tag_class_no    0
00424 #define tag_class_edit  1
00425 #define tag_class_sel   2
00426 
00427 typedef char TAGSTRING;
00428 
00429 void statictag_to_tag(char *statictag_str, TAGSTRING *tag_str, dword relocation, bool std_bigendian);
00430 
00431 TAGSTRING *tag_findnext(const TAGSTRING *tagstring);
00432 
00433 vcp tag_get_color(const TAGSTRING *tagstring);
00434 void tag_get_id(const TAGSTRING *tagstring, dword *id128_1, dword *id128_2, dword *id128_3, dword *id128_4);
00435 int tag_get_len(const TAGSTRING *tagstring);
00436 dword tag_get_offset(const TAGSTRING *tagstring);
00437 int tag_get_size(const TAGSTRING *tagstring);
00438 int tag_get_vlen(const TAGSTRING *tagstring);
00439 int tag_get_seltextlen(const TAGSTRING *tagstring);
00440 TAGSTRING *tag_get_seltext(const TAGSTRING *tagstring);
00441 int tag_get_micropos(const TAGSTRING *tagstring, int i);
00442 int tag_get_microsize(const TAGSTRING *tagstring);
00443 bool tag_get_desc_id(const TAGSTRING *tagstring, dword *id);
00444 
00445 void tag_set_offset(TAGSTRING *tagstring, dword offset);
00446 void tag_set_value(TAGSTRING *tagstring, dword value);
00447 
00448 int tag_is_editable(const TAGSTRING *tagstring);
00449 
00450 void tag_strcat(TAGSTRING *dest, const TAGSTRING *src);
00451 void tag_strcpy(TAGSTRING *dest, const TAGSTRING *src);
00452 TAGSTRING *tag_strdup(const TAGSTRING *tagstring);
00453 int tag_strlen(const TAGSTRING *tagstring);
00454 int tag_strvlen(const TAGSTRING *tagstring);
00455 
00456 int tag_count_selectable_tags_in_group(const TAGSTRING *tagstring, int group);
00457 int tag_count_selectable_tags(const TAGSTRING *tagstring);
00458 int tag_count_groups(const TAGSTRING *tagstring);
00459 TAGSTRING *tag_get_selectable_tag(const TAGSTRING *tagstring, int n, int group);
00460 TAGSTRING *tag_get_group(const TAGSTRING *tagstring, int group);
00461 int tag_get_class(const TAGSTRING *tagstring);
00462 
00463 TAGSTRING *tag_make_sel(TAGSTRING *buf, char *string);
00464 TAGSTRING *tag_make_ref(TAGSTRING *buf, dword id128_1, dword id128_2, dword id128_3, dword id128_4, char *string);
00465 TAGSTRING *tag_make_ref_len(TAGSTRING *buf, dword id128_1, dword id128_2, dword id128_3, dword id128_4, char *string, int strlen);
00466 TAGSTRING *tag_make_flags(TAGSTRING *buf, dword id, dword offset);
00467 TAGSTRING *tag_make_group(TAGSTRING *buf);
00468 TAGSTRING *tag_make_color(TAGSTRING *buf, dword color);
00469 TAGSTRING *tag_make_default_color(TAGSTRING *buf);
00470 TAGSTRING *tag_make_edit_byte(TAGSTRING *buf, FILEOFS ofs32);
00471 TAGSTRING *tag_make_edit_word(TAGSTRING *buf, FILEOFS ofs32, tag_endian e);
00472 TAGSTRING *tag_make_edit_dword(TAGSTRING *buf, FILEOFS ofs32, tag_endian e);
00473 TAGSTRING *tag_make_edit_qword(TAGSTRING *buf, FILEOFS ofs32, tag_endian e);
00474 TAGSTRING *tag_make_edit_time(TAGSTRING *buf, FILEOFS ofs32);
00475 TAGSTRING *tag_make_edit_char(TAGSTRING *buf, FILEOFS ofs32);
00476 TAGSTRING *tag_make_edit_bit(TAGSTRING *buf, FILEOFS ofs32, int bitidx);
00477 TAGSTRING *tag_make_edit_selvis(TAGSTRING *buf, FILEOFS offset, char ch);
00478 TAGSTRING *tag_make_desc_byte(TAGSTRING *buf, FILEOFS ofs32, dword id32);
00479 TAGSTRING *tag_make_desc_word(TAGSTRING *buf, FILEOFS ofs32, dword id32, tag_endian e);
00480 TAGSTRING *tag_make_desc_dword(TAGSTRING *buf, FILEOFS ofs32, dword id32, tag_endian e);
00481 TAGSTRING *tag_make_desc_qword(TAGSTRING *buf, FILEOFS ofs32, dword id32, tag_endian e);
00482 char *tag_striptags(char *dest, const TAGSTRING *src);
00483 
00484 #endif /* !__HTTAG_H__ */

Generated on Fri May 7 21:15:37 2004 by doxygen 1.3.5