File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / triostr.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:57 2012 UTC (12 years, 3 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    1: /*************************************************************************
    2:  *
    3:  * $Id: triostr.h,v 1.1.1.1 2012/02/21 23:37:57 misho Exp $
    4:  *
    5:  * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
    6:  *
    7:  * Permission to use, copy, modify, and distribute this software for any
    8:  * purpose with or without fee is hereby granted, provided that the above
    9:  * copyright notice and this permission notice appear in all copies.
   10:  *
   11:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
   12:  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
   13:  * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
   14:  * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
   15:  *
   16:  ************************************************************************/
   17: 
   18: #ifndef TRIO_TRIOSTR_H
   19: #define TRIO_TRIOSTR_H
   20: 
   21: #include <assert.h>
   22: #include <stdlib.h>
   23: #include <string.h>
   24: #include <time.h>
   25: #include "triodef.h"
   26: #include "triop.h"
   27: 
   28: enum {
   29:   TRIO_HASH_NONE = 0,
   30:   TRIO_HASH_PLAIN,
   31:   TRIO_HASH_TWOSIGNED
   32: };
   33: 
   34: #if !defined(TRIO_STRING_PUBLIC)
   35: # if !defined(TRIO_PUBLIC)
   36: #  define TRIO_PUBLIC
   37: # endif
   38: # define TRIO_STRING_PUBLIC TRIO_PUBLIC
   39: #endif
   40: 
   41: /*************************************************************************
   42:  * String functions
   43:  */
   44: 
   45: TRIO_STRING_PUBLIC int trio_copy_max TRIO_PROTO((char *target, size_t max, const char *source));
   46: TRIO_STRING_PUBLIC char *trio_create TRIO_PROTO((size_t size));
   47: TRIO_STRING_PUBLIC void trio_destroy TRIO_PROTO((char *string));
   48: TRIO_STRING_PUBLIC char *trio_duplicate TRIO_PROTO((const char *source));
   49: TRIO_STRING_PUBLIC int trio_equal TRIO_PROTO((const char *first, const char *second));
   50: TRIO_STRING_PUBLIC int trio_equal_case TRIO_PROTO((const char *first, const char *second));
   51: TRIO_STRING_PUBLIC int trio_equal_locale TRIO_PROTO((const char *first, const char *second));
   52: TRIO_STRING_PUBLIC int trio_equal_max TRIO_PROTO((const char *first, size_t max, const char *second));
   53: TRIO_STRING_PUBLIC TRIO_CONST char *trio_error TRIO_PROTO((int));
   54: TRIO_STRING_PUBLIC size_t trio_length TRIO_PROTO((const char *string));
   55: TRIO_STRING_PUBLIC double trio_to_double TRIO_PROTO((const char *source, char **endp));
   56: TRIO_STRING_PUBLIC long trio_to_long TRIO_PROTO((const char *source, char **endp, int base));
   57: TRIO_STRING_PUBLIC trio_long_double_t trio_to_long_double TRIO_PROTO((const char *source, char **endp));
   58: TRIO_STRING_PUBLIC int trio_to_upper TRIO_PROTO((int source));
   59: 
   60: #if !defined(TRIO_MINIMAL)
   61: 
   62: TRIO_STRING_PUBLIC int trio_append TRIO_PROTO((char *target, const char *source));
   63: TRIO_STRING_PUBLIC int trio_append_max TRIO_PROTO((char *target, size_t max, const char *source));
   64: TRIO_STRING_PUBLIC int trio_contains TRIO_PROTO((const char *string, const char *substring));
   65: TRIO_STRING_PUBLIC int trio_copy TRIO_PROTO((char *target, const char *source));
   66: TRIO_STRING_PUBLIC char *trio_duplicate_max TRIO_PROTO((const char *source, size_t max));
   67: TRIO_STRING_PUBLIC int trio_equal_case_max TRIO_PROTO((const char *first, size_t max, const char *second));
   68: #if !defined(_WIN32_WCE)
   69: TRIO_STRING_PUBLIC size_t trio_format_date_max TRIO_PROTO((char *target, size_t max, const char *format, const struct tm *datetime));
   70: #endif
   71: TRIO_STRING_PUBLIC unsigned long trio_hash TRIO_PROTO((const char *string, int type));
   72: TRIO_STRING_PUBLIC char *trio_index TRIO_PROTO((const char *string, int character));
   73: TRIO_STRING_PUBLIC char *trio_index_last TRIO_PROTO((const char *string, int character));
   74: TRIO_STRING_PUBLIC int trio_lower TRIO_PROTO((char *target));
   75: TRIO_STRING_PUBLIC int trio_match TRIO_PROTO((const char *string, const char *pattern));
   76: TRIO_STRING_PUBLIC int trio_match_case TRIO_PROTO((const char *string, const char *pattern));
   77: TRIO_STRING_PUBLIC size_t trio_span_function TRIO_PROTO((char *target, const char *source, int (*Function) TRIO_PROTO((int))));
   78: TRIO_STRING_PUBLIC char *trio_substring TRIO_PROTO((const char *string, const char *substring));
   79: TRIO_STRING_PUBLIC char *trio_substring_max TRIO_PROTO((const char *string, size_t max, const char *substring));
   80: TRIO_STRING_PUBLIC float trio_to_float TRIO_PROTO((const char *source, char **endp));
   81: TRIO_STRING_PUBLIC int trio_to_lower TRIO_PROTO((int source));
   82: TRIO_STRING_PUBLIC unsigned long trio_to_unsigned_long TRIO_PROTO((const char *source, char **endp, int base));
   83: TRIO_STRING_PUBLIC char *trio_tokenize TRIO_PROTO((char *string, const char *delimiters));
   84: TRIO_STRING_PUBLIC int trio_upper TRIO_PROTO((char *target));
   85: 
   86: #endif /* !defined(TRIO_MINIMAL) */
   87: 
   88: /*************************************************************************
   89:  * Dynamic string functions
   90:  */
   91: 
   92: /*
   93:  * Opaque type for dynamic strings
   94:  */
   95: 
   96: typedef struct _trio_string_t trio_string_t;
   97: 
   98: TRIO_STRING_PUBLIC void trio_string_destroy TRIO_PROTO((trio_string_t *self));
   99: TRIO_STRING_PUBLIC char *trio_string_extract TRIO_PROTO((trio_string_t *self));
  100: TRIO_STRING_PUBLIC int trio_string_size TRIO_PROTO((trio_string_t *self));
  101: TRIO_STRING_PUBLIC void trio_string_terminate TRIO_PROTO((trio_string_t *self));
  102: TRIO_STRING_PUBLIC int trio_xstring_append_char TRIO_PROTO((trio_string_t *self, char character));
  103: TRIO_STRING_PUBLIC trio_string_t *trio_xstring_duplicate TRIO_PROTO((const char *other));
  104: 
  105: #if !defined(TRIO_MINIMAL)
  106: 
  107: TRIO_STRING_PUBLIC trio_string_t *trio_string_create TRIO_PROTO((int initial_size));
  108: TRIO_STRING_PUBLIC char *trio_string_get TRIO_PROTO((trio_string_t *self, int offset));
  109: TRIO_STRING_PUBLIC void trio_xstring_set TRIO_PROTO((trio_string_t *self, char *buffer));
  110: 
  111: TRIO_STRING_PUBLIC int trio_string_append TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  112: TRIO_STRING_PUBLIC int trio_string_contains TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  113: TRIO_STRING_PUBLIC int trio_string_copy TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  114: TRIO_STRING_PUBLIC trio_string_t *trio_string_duplicate TRIO_PROTO((trio_string_t *other));
  115: TRIO_STRING_PUBLIC int trio_string_equal TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  116: TRIO_STRING_PUBLIC int trio_string_equal_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *second));
  117: TRIO_STRING_PUBLIC int trio_string_equal_case TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  118: TRIO_STRING_PUBLIC int trio_string_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *other));
  119: #if !defined(_WIN32_WCE)
  120: TRIO_STRING_PUBLIC size_t trio_string_format_date_max TRIO_PROTO((trio_string_t *self, size_t max, const char *format, const struct tm *datetime));
  121: #endif
  122: TRIO_STRING_PUBLIC char *trio_string_index TRIO_PROTO((trio_string_t *self, int character));
  123: TRIO_STRING_PUBLIC char *trio_string_index_last TRIO_PROTO((trio_string_t *self, int character));
  124: TRIO_STRING_PUBLIC int trio_string_length TRIO_PROTO((trio_string_t *self));
  125: TRIO_STRING_PUBLIC int trio_string_lower TRIO_PROTO((trio_string_t *self));
  126: TRIO_STRING_PUBLIC int trio_string_match TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  127: TRIO_STRING_PUBLIC int trio_string_match_case TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  128: TRIO_STRING_PUBLIC char *trio_string_substring TRIO_PROTO((trio_string_t *self, trio_string_t *other));
  129: TRIO_STRING_PUBLIC int trio_string_upper TRIO_PROTO((trio_string_t *self));
  130: 
  131: TRIO_STRING_PUBLIC int trio_xstring_append TRIO_PROTO((trio_string_t *self, const char *other));
  132: TRIO_STRING_PUBLIC int trio_xstring_contains TRIO_PROTO((trio_string_t *self, const char *other));
  133: TRIO_STRING_PUBLIC int trio_xstring_copy TRIO_PROTO((trio_string_t *self, const char *other));
  134: TRIO_STRING_PUBLIC int trio_xstring_equal TRIO_PROTO((trio_string_t *self, const char *other));
  135: TRIO_STRING_PUBLIC int trio_xstring_equal_max TRIO_PROTO((trio_string_t *self, size_t max, const char *other));
  136: TRIO_STRING_PUBLIC int trio_xstring_equal_case TRIO_PROTO((trio_string_t *self, const char *other));
  137: TRIO_STRING_PUBLIC int trio_xstring_equal_case_max TRIO_PROTO((trio_string_t *self, size_t max, const char *other));
  138: TRIO_STRING_PUBLIC int trio_xstring_match TRIO_PROTO((trio_string_t *self, const char *other));
  139: TRIO_STRING_PUBLIC int trio_xstring_match_case TRIO_PROTO((trio_string_t *self, const char *other));
  140: TRIO_STRING_PUBLIC char *trio_xstring_substring TRIO_PROTO((trio_string_t *self, const char *other));
  141: 
  142: #endif /* !defined(TRIO_MINIMAL) */
  143: 
  144: #endif /* TRIO_TRIOSTR_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>