ustr_const man page on Cygwin

Man page or keyword search:  
man Server   22533 pages
apropos Keyword Search (all sections)
Output format
Cygwin logo
[printable version]

ustr_const(3)		      Ustr String Library		 ustr_const(3)

NAME
       ustr_const - ustr string library constants

SYNOPSIS
  #include "ustr.h"

  USTR_CONF_INCLUDE_CODEONLY_HEADERS
  USTR_CONF_USE_EOS_MARK
  USTR_CONF_USE_ASSERT
  USTR_CONF_COMPILE_USE_ATTRIBUTES
  USTR_CONF_COMPILE_TYPEDEF
  USTR_CONF_COMPILE_USE_INLINE

  USTR_BEG_CONST1
  USTR_BEG_CONST2
  USTR_BEG_CONST4
  USTR_BEG_FIXED1
  USTR_BEG_FIXED2
  USTR_BEG_FIXED4
  USTR_BEG_FIXED8
  USTR_END_ALOCDx
  USTR_END_CONSTx
  USTR_END_FIXEDx

  USTR_FLAG_PARSE_NUM_DEF
  USTR_FLAG_PARSE_NUM_SEP
  USTR_FLAG_PARSE_NUM_OVERFLOW
  USTR_FLAG_PARSE_NUM_SPACE
  USTR_FLAG_PARSE_NUM_NO_BEG_ZERO
  USTR_FLAG_PARSE_NUM_NO_BEG_PM
  USTR_FLAG_PARSE_NUM_NO_NEGATIVE
  USTR_FLAG_PARSE_NUM_EXACT
  USTR_TYPE_PARSE_NUM_ERR_NONE
  USTR_TYPE_PARSE_NUM_ERR_ONLY_S
  USTR_TYPE_PARSE_NUM_ERR_ONLY_SPM
  USTR_TYPE_PARSE_NUM_ERR_ONLY_SPMX
  USTR_TYPE_PARSE_NUM_ERR_OOB
  USTR_TYPE_PARSE_NUM_ERR_OVERFLOW
  USTR_TYPE_PARSE_NUM_ERR_NEGATIVE
  USTR_TYPE_PARSE_NUM_ERR_BEG_ZERO

  USTR_FLAG_SPLIT_DEF
  USTR_FLAG_SPLIT_RET_SEP
  USTR_FLAG_SPLIT_RET_NON
  USTR_FLAG_SPLIT_KEEP_CONFIG

  USTR_NULL
  USTR_POOL_NULL
  USTR_TRUE
  USTR_FALSE

  USTR_CNTL_OPT_GET_REF_BYTES
  USTR_CNTL_OPT_SET_REF_BYTES
  USTR_CNTL_OPT_GET_HAS_SIZE
  USTR_CNTL_OPT_SET_HAS_SIZE
  USTR_CNTL_OPT_GET_EXACT_BYTES
  USTR_CNTL_OPT_SET_EXACT_BYTES
  USTR_CNTL_OPT_GET_MEM
  USTR_CNTL_OPT_SET_MEM
  USTR_CNTL_OPT_GET_MC_M_SCRUB
  USTR_CNTL_OPT_SET_MC_M_SCRUB
  USTR_CNTL_OPT_GET_MC_F_SCRUB
  USTR_CNTL_OPT_SET_MC_F_SCRUB
  USTR_CNTL_OPT_GET_MC_R_SCRUB
  USTR_CNTL_OPT_SET_MC_R_SCRUB
  USTR_CNTL_OPT_GET_FMT
  USTR_CNTL_OPT_SET_FMT

  USTR_POOL_LL_CNTL_GET_FREE_CMP
  USTR_POOL_LL_CNTL_SET_FREE_CMP
  USTR_POOL_LL_CNTL_GET_REALLOC
  USTR_POOL_LL_CNTL_SET_REALLOC

DESCRIPTION
Compile switch constants
       Constant:  USTR_CONF_INCLUDE_CODEONLY_HEADERS

       Explanation:

	 This  switch controls whether all the code will be included as inline
       functions. Having this be non-zero means that you don't	have  to  link
       against the library.

       Constant:  USTR_CONF_USE_EOS_MARK

       Explanation:

	 This  switch  turns  on End of String markers, so any bounds overflow
       will be noticed by ustr_assert_valid().

       Note:

	 Changing    this    will    not    do	  anything    useful	unless
       USTR_CONF_INCLUDE_CODEONLY_HEADERS is non-zero.

       Constant:  USTR_CONF_USE_ASSERT

       Explanation:

	 This  switch  turns  USTR_ASSERT()  calls on, so the code within them
       will   be   evaluated.	Note   that   there   are   many   calls    to
       ustr_assert_valid()  within USTR_ASSERT() macros and that call is rela‐
       tively expensive.

       Note:

	 Changing    this    will    not    do	  anything    useful	unless
       USTR_CONF_INCLUDE_CODEONLY_HEADERS is non-zero.

       Constant:  USTR_CONF_COMPILE_USE_ATTRIBUTES

       Explanation:

	 This  switch controls whether gcc type __attribute__() statements are
       used in the public headers headers for the library. If the value	 is  1
       then  if they are supported by the compiler that built the library they
       will be used, if the value is 0 they won't be used at all.

       Constant:  USTR_CONF_COMPILE_TYPEDEF

       Explanation:

	 This switch controls whether typedef will be used for the structs  in
       the public headers for the library. If the value is 1 then they will be
       used, if the value is 0 they won't be used at all (and your  code  will
       have to use struct tags instead -- note all libraries using ustr should
       compile without this option set).
       Constant:  USTR_CONF_COMPILE_USE_INLINE

       Explanation:

	 This switch controls whether inline functions will be used in	a  few
       cases where the function bodies are very small.

       Note:

	 In  some  cases  this	is  used  so  that  GCC can eliminate calls to
       strlen(), for the *_cstr() functions.

Constants to created fixed/read-only Ustr's
       Constant:  USTR_BEG_CONST1

       Explanation:

	 This macro is a constant C-style string of the first byte of  a  con‐
       stant/read-only Ustr that has a length in the range 0-255.

       Constant:  USTR_BEG_CONST2

       Explanation:

	 This  macro  is a constant C-style string of the first byte of a con‐
       stant/read-only Ustr that has a length in the range 0-65535.

       Constant:  USTR_BEG_CONST4

       Explanation:

	 This macro is a constant C-style string of the first byte of  a  con‐
       stant/read-only Ustr that has a length in the range 0-4294967295.

       Constant:  USTR_BEG_FIXED1

       Explanation:

	 This  macro is a constant C-style string of the first byte of a fixed
       Ustr that has a length in the range 0-255.

       Constant:  USTR_BEG_FIXED2

       Explanation:

	 This macro is a constant C-style string of the first byte of a	 fixed
       Ustr that has a length in the range 0-65535.

       Constant:  USTR_BEG_FIXED4

       Explanation:

	 This  macro is a constant C-style string of the first byte of a fixed
       Ustr that has a length in the range 0-4294967295.

       Constant:  USTR_BEG_FIXED8

       Explanation:

	 This macro is a constant C-style string of the first byte of a	 fixed
       Ustr that has a length in the range 0-18446744073709551615.

       Note:

	 This macro is only available if the Ustr code was compiled in a 64bit
       environment.

       Constant:  USTR_END_ALOCDx

       Explanation:

	 This macro is a constant C-style string of the last bytes of an allo‐
       cated Ustr.

       Note:

	 Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte.

       Constant:  USTR_END_CONSTx

       Explanation:

	 This  macro  is a constant C-style string of the last bytes of a con‐
       stant/read-only Ustr.

       Note:

	 Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte.

       Constant:  USTR_END_FIXEDx

       Explanation:

	 This macro is a constant C-style string of the last bytes of a	 fixed
       Ustr.

       Note:

	 Unless USTR_CONF_USE_EOS_MARK is non-zero, this is just the NIL byte.

Constants to use with parsing numbers: ustr_parse_uintmaxx, etc.
       Constant:  USTR_FLAG_PARSE_NUM_DEF

       Explanation:

	 Default  flags,  this	is merely 0 but can be used as live documenta‐
       tion.

       Constant:  USTR_FLAG_PARSE_NUM_SEP

       Explanation:

	 This flag allows the parsing (and ignoring) of the separator  charac‐
       ter,  at	 arbitrary pointers in the number, so "1234" and "1_234" would
       both parse the same (assuming "_" is the separator).

       Constant:  USTR_FLAG_PARSE_NUM_OVERFLOW

       Explanation:

	 This flag turns on the overflow checking, in other words  without  it
       USTR_TYPE_PARSE_NUM_ERR_OVERFLOW	 will  never  be  returned as an error
       code.

       Constant:  USTR_FLAG_PARSE_NUM_SPACE

       Explanation:

	 This flag allows one or more ' ' (Space) characters before the number
       or number prefix (Plus Sign, Hyphen).

       Note:

	 Other forms of whitespace don't count, this just affects ' '.

       Constant:  USTR_FLAG_PARSE_NUM_NO_BEG_ZERO

       Explanation:

	 This  flag  disallows	one or more '0' (Digit Zero) characters before
       the number.

       Constant:  USTR_FLAG_PARSE_NUM_NO_BEG_PM

       Explanation:

	 This flag disallows a plus or a minus character before the number.

       Constant:  USTR_FLAG_PARSE_NUM_NO_NEGATIVE

       Explanation:

	 This flag disallows negative values.

       Constant:  USTR_FLAG_PARSE_NUM_EXACT

       Explanation:

	 This flag makes the parsing functions return an error if  the	entire
       string doesn't contain the number being parsed.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_NONE

       Explanation:

	 This  error  code  has	 the value 0, and means that no error occurred
       parsing the number.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_ONLY_S

       Explanation:

	 This error code means that the Ustr string consisted only of spaces.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_ONLY_SPM

       Explanation:

	 This error code means that the Ustr string consisted only spaces, and
       a plus or minus sign.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_ONLY_SPMX

       Explanation:

	 This  error code means that the Ustr string consisted of only spaces,
       a plus or minus sign and a "0x" base 16 prefix.
       Constant:  USTR_TYPE_PARSE_NUM_ERR_OOB

       Explanation:

	 This error code means that the Ustr string had characters in it  that
       where out of bounds from the working base.

       Note:

	 Without  the USTR_FLAG_PARSE_NUM_EXACT, this error is ignored as soon
       as any number is parsed.
	 This out of bounds includes the Ustr string "++"  as  well  as	 "4A",
       when parsing in a base less than 11.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_OVERFLOW

       Explanation:

	 This  error  code  means  that the number parsed from the Ustr string
       would overflow the type it is being parsed into, this is only  returned
       when  the  USTR_FLAG_PARSE_NUM_OVERFLOW	flag  was  passed to the parse
       function.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_NEGATIVE

       Explanation:

	 This error code means that the number parsed  from  the  Vstr	string
       starts  with  a	'-'  (Hyphen)  character  when it is supposed to be an
       unsigned number.

       Constant:  USTR_TYPE_PARSE_NUM_ERR_BEG_ZERO

       Explanation:

	 This error code means that the number parsed  from  the  Vstr	string
       starts	 with	 a    '0'    (Digit    Zero)   character,   when   the
       USTR_FLAG_PARSE_NUM_NO_BEG_ZERO flag was passed to the parse function.

Constants to pass to ustr_split*
       Constant:  USTR_FLAG_SPLIT_DEF

       Explanation:

	 Default flags, this is merely 0 but can be used  as  live  documenta‐
       tion.

       Constant:  USTR_FLAG_SPLIT_RET_SEP

       Explanation:

	 Return	 the  separator	 along	with the tokens. For example splitting
       "a,b," using separator "," will return the tokens "a," and "b," whereas
       without this flag only "a" and "b" would be returned.
	   .br Constant:  USTR_FLAG_SPLIT_RET_NON

       Explanation:

	 Return empty tokens. For example: splitting "a,,b" with separator ","
       will return the tokens {"a" "" "b"}.
       Constant:  USTR_FLAG_SPLIT_KEEP_CONFIG

       Explanation:

	 Force the returned Ustr's to have same	 configuration	parameters  as
       the Ustr string that is being split.

Misc constants to use in code
       Constant:  USTR_NULL

       Explanation:

	 This  macro is merely 0 cast to (struct Ustr *), and can be used any‐
       where NULL would be but "returns" the correct type.

       Constant:  USTR_POOL_NULL

       Explanation:

	 This macro is merely 0 cast to (struct Ustr_pool *), and can be  used
       anywhere NULL would be but "returns" the correct type.

       Constant:  USTR_TRUE

       Explanation:

	 This  macro  is  1,  but  shows  the  intent  that a boolean value is
       expected and not a number.

       Constant:  USTR_FALSE

       Explanation:

	 This macro is 0, but  shows  the  intent  that	 a  boolean  value  is
       expected and not a number.

Constants passed to ustr_cntl_opt()
       Constant:  USTR_CNTL_OPT_GET_REF_BYTES

       Parameter[1]: Number of bytes for default reference count in Ustr
       Type[1]: size_t *

       Explanation:

	 This option will get the default number of bytes used for a reference
       count when creating Ustr's.

       Constant:  USTR_CNTL_OPT_SET_REF_BYTES

       Parameter[1]: Number of bytes for default reference count in Ustr
       Type[1]: size_t

       Explanation:

	 This option will set the default number of bytes used for a reference
       count when creating Ustr's.

       Note:

	 For a single instance, the ustr_dupx_*() functions can be used.

       Constant:  USTR_CNTL_OPT_GET_HAS_SIZE

       Parameter[1]: Default flag for whether to include an explicit size in a
       Ustr
       Type[1]: int *

       Explanation:

	 This option will get  the  default  flag  for	whether	 to  store  an
       explicit size in created Ustr's.

       Constant:  USTR_CNTL_OPT_SET_HAS_SIZE

       Parameter[1]: Default flag for whether to include an explicit size in a
       Ustr
       Type[1]: int

       Explanation:

	 This option will set  the  default  flag  for	whether	 to  store  an
       explicit size in created Ustr's.

       Note:

	 For a single instance, the ustr_dupx_*() functions can be used.

       Constant:  USTR_CNTL_OPT_GET_EXACT_BYTES

       Parameter[1]: Default flag for whether to exactly allocate memory
       Type[1]: int *

       Explanation:

	 This option will get the default flag for whether to exactly allocate
       memory when a Ustr needs to be resized.

       Constant:  USTR_CNTL_OPT_SET_EXACT_BYTES

       Parameter[1]: Default flag for whether to exactly allocate memory
       Type[1]: int

       Explanation:

	 This option will set the default flag for whether to exactly allocate
       memory when a Ustr needs to be resized.

       Note:

	 For a single instance, the ustr_dupx_*() functions can be used.

       Constant:  USTR_CNTL_OPT_GET_MEM
       Parameter[1]:  Pointer  to  colleciton  of function pointers for system
       allocation
       Type[1]: struct Ustr_cntl_mem *

       Explanation:

	 This option will get the "system" allocation functions (malloc, real‐
       loc, free) for allocated Ustr's.

       Note:

	 As you would expect the default values are: malloc, realloc, free.

       Constant:  USTR_CNTL_OPT_SET_MEM
       Parameter[1]:  Pointer  to  colleciton  of function pointers for system
       allocation
       Type[1]: const struct Ustr_cntl_mem *

       Explanation:

	 This option will set the "system" allocation functions (malloc, real‐
       loc, free) for allocated Ustr's.

       Note:

	 If  this option is set after a Ustr has been created, then when free‐
       ing or reallocating the existing Ustr the given functions will be used.
       So  they	 must either be compatible with the default or you must ensure
       that nothing is allocated before they are set.

       Constant:  USTR_CNTL_OPT_GET_MC_M_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int *

       Explanation:

	 This option will get the flag for whether to "scrub"  data  allocated
       via. malloc check.

       Note:

	 Malloc	 check	has  to	 be  enabled  for  this	 to mean anything, Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_SET_MC_M_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int

       Explanation:

	 This option will set the flag for whether to "scrub"  data  allocated
       via. malloc check.

       Note:

	 Malloc	 check	has  to	 be  enabled  for  this	 to mean anything, Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_GET_MC_F_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int *

       Explanation:

	 This option will get the flag for whether to "scrub" data freed  via.
       malloc check.

       Note:

	 Malloc	 check	has  to	 be  enabled  for  this	 to mean anything, Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_SET_MC_F_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int

       Explanation:

	 This option will set the flag for whether to "scrub" data freed  via.
       malloc check.

       Note:

	 Malloc	 check	has  to	 be  enabled  for  this	 to mean anything, Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_GET_MC_R_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int *

       Explanation:

	 This option will get the flag for whether to "scrub" data reallocated
       via.  malloc  check.  This  is done by turning all reallocations into a
       malloc() and free(), and so is even more costly than normal scrubbing.

       Note:

	 Malloc check has to  be  enabled  for	this  to  mean	anything,  Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_SET_MC_R_SCRUB

       Parameter[1]: Flag for whether to include an explicit size in a Ustr
       Type[1]: int

       Explanation:

	 This option will set the flag for whether to "scrub" data reallocated
       via. malloc check. This is done by turning  all	reallocations  into  a
       malloc() and free(), and so is even more costly than normal scrubbing.

       Note:

	 Malloc	 check	has  to	 be  enabled  for  this	 to mean anything, Ie.
       USTR_CNTL_MALLOC_LVL() must be positive.

       Constant:  USTR_CNTL_OPT_GET_FMT
       Parameter[1]: Pointer to colleciton of  function	 pointers  for	system
       formating
       Type[1]: struct Ustr_cntl_fmt *

       Explanation:

	 This  option will get the system formatting functions (vsnprintf) for
       Ustr's.
	 There are two functions, the first is always called and the second is
       likely  called  (always	with  the  exact same arguments) if the length
       passed to the first call was not big enough.

       Note:

	 As you would expect the default values are: vsnprintf and vsnprintf

       Constant:  USTR_CNTL_OPT_SET_FMT
       Parameter[1]: Pointer to colleciton of  function	 pointers  for	system
       formatting
       Type[1]: const struct Ustr_cntl_fmt *

       Explanation:

	 This  option will set the system formatting functions (vsnprintf) for
       Ustr's.

Constants passed to ustr_pool_ll_cntl()
       Constant:  USTR_POOL_LL_CNTL_GET_FREE_CMP

       Parameter[1]: Number of pointers to compare to in the pool
       Type[1]: unsigned int *

       Explanation:

	 This option will get the number of comparisons done on	 a  pool  free
       operation.

       Constant:  USTR_POOL_LL_CNTL_SET_FREE_CMP

       Parameter[1]: Number of pointers to compare to in the pool
       Type[1]: unsigned int

       Explanation:

	 This  option  will  set the number of comparisons done on a pool free
       operation.

       Note:

	 The default is a small non-zero value, as it's	 significantly	common
       to  have very short lived ustr's ... however this doesn't mean that you
       can't forget to take references even with pool allocated ustrs.

       Constant:  USTR_POOL_LL_CNTL_GET_REALLOC

       Parameter[1]: Flag for if we should call realloc()
       Type[1]: int *

       Explanation:

	 This option will get the flag for if we call realloc() to  make  data
       bigger, or revert to just allocating anew each time.

       Constant:  USTR_POOL_LL_CNTL_SET_REALLOC

       Parameter[1]: Flag for if we should call realloc()
       Type[1]: int

       Explanation:

	 This  option  will set the flag for if we call realloc() to make data
       bigger, or revert to just allocating anew each time.

       Note:

	 As with USTR_POOL_LL_CNTL_SET_FREE_CMP this option  means  you	 can't
       assume  that  pool allocated data is never freed until ustr_pool_free()
       is called, and again  it	 is  due  to  there  being  significant	 speed
       improvements  for not making that assumption. Instead of disabling this
       option, just take areference (which will also make sure the ustr	 isn't
       modified behind your back).

SEE ALSO
       ustr(3)

Ustr 1.0.4			  05-Mar-2008			 ustr_const(3)
[top]

List of man pages available for Cygwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net