Changeset 161 for trunk/include


Ignore:
Timestamp:
12/07/09 12:01:22 (14 years ago)
Author:
tim
Message:

added support for UTF-16LE key names

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/regfi.h

    r160 r161  
    6060#define REGFI_MSG_WARN  0x0004
    6161#define REGFI_MSG_ERROR 0x0010
     62
     63typedef uint8 REGFI_ENCODING;
     64/* regfi library supported character encodings */
     65#define REGFI_ENCODING_ASCII   0
     66#define REGFI_ENCODING_UTF8    1
     67#define REGFI_ENCODING_DEFAULT REGFI_ENCODING_ASCII
     68/* UTF16LE is not supported for output */
     69#define REGFI_ENCODING_UTF16LE 2
     70
     71#define REGFI_NUM_ENCODINGS    3
    6272
    6373/* Windows is lame */
     
    360370 
    361371  /* header information */
    362   uint16 key_type;
     372  uint16 flags;
    363373  uint8  magic[REGFI_CELL_MAGIC_SIZE];
    364374  NTTIME mtime;
     
    479489  void_stack* key_positions;
    480490  REGFI_NK_REC* cur_key;
    481   const char* string_encoding;
     491  REGFI_ENCODING string_encoding;
    482492  uint32 cur_subkey;
    483493  uint32 cur_value;
     
    529539 *   file            -- The opened registry file the iterator should be
    530540 *                      created for.
    531  *   output_encoding -- An integer representing the output string encoding.
    532  *                      These integers currently map to a specific set of
    533  *                      iconv(3) encodings.
     541 *   output_encoding -- Character encoding that strings should be returned in.
     542 *                      Only supply the REGFI_ENCODING_* constants, as others
     543 *                      will be rejected.
    534544 *                      The following values are currently accepted:
    535  *                      0 - default (currently US-ASCII//TRANSLIT)
    536  *                      1 - US-ASCII//TRANSLIT
    537  *                      2 - UTF-8//TRANSLIT
     545 *                      REGFI_ENCODING_DEFAULT (currently REGFI_ENCODING_ASCII)
     546 *                      REGFI_ENCODING_ASCII
     547 *                      REGFI_ENCODING_UTF8
    538548 *
    539549 *                      XXX: This encoding only applies to specific data
     
    545555 */
    546556REGFI_ITERATOR*       regfi_iterator_new(REGFI_FILE* file,
    547                                          uint32 output_encoding);
     557                                         REGFI_ENCODING output_encoding);
    548558void                  regfi_iterator_free(REGFI_ITERATOR* i);
    549559bool                  regfi_iterator_down(REGFI_ITERATOR* i);
     
    578588/********************************************************/
    579589REGFI_NK_REC*         regfi_load_key(REGFI_FILE* file, uint32 offset,
     590                                     REGFI_ENCODING output_encoding,
    580591                                     bool strict);
    581592REGFI_VK_REC*         regfi_load_value(REGFI_FILE* file, uint32 offset,
     
    597608                                          bool strict);
    598609bool                  regfi_interpret_data(REGFI_FILE* file,
    599                                            const char* string_encoding,
     610                                           REGFI_ENCODING string_encoding,
    600611                                           uint32 type, REGFI_DATA* data);
    601612void                  regfi_free_classname(REGFI_CLASSNAME* classname);
     
    666677/*    Private Functions             */
    667678/************************************/
    668 REGFI_NK_REC*         regfi_rootkey(REGFI_FILE* file);
     679REGFI_NK_REC*         regfi_rootkey(REGFI_FILE* file,
     680                                    REGFI_ENCODING output_encoding);
    669681void                  regfi_subkeylist_free(REGFI_SUBKEY_LIST* list);
    670682uint32                regfi_read(int fd, uint8* buf, uint32* length);
     
    689701REGFI_VK_REC*         regfi_copy_vk(const REGFI_VK_REC* vk);
    690702int32                 regfi_calc_maxsize(REGFI_FILE* file, uint32 offset);
    691 int32                 regfi_conv_charset(const char* output_charset,
     703int32                 regfi_conv_charset(const char* input_charset,
     704                                         const char* output_charset,
    692705                                         uint8* input, char* output,
    693706                                         uint32 input_len, uint32 output_max);
Note: See TracChangeset for help on using the changeset viewer.