home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / libncftp / libncftp-3.2.5-src.zip / libncftp-3.2.5 / Strn / Strn.h < prev    next >
C/C++ Source or Header  |  2009-05-02  |  2KB  |  87 lines

  1. /* Strn.h */
  2.  
  3. #ifndef _Strn_h_
  4. #define _Strn_h_ 1
  5.  
  6. #ifdef __cplusplus
  7. extern "C"
  8. {
  9. #endif    /* __cplusplus */
  10.  
  11. /* You could define this from the Makefile. */
  12. #ifndef STRN_ZERO_PAD
  13. #    define STRN_ZERO_PAD 1
  14. #endif
  15.  
  16. /* You could define this from the Makefile. */
  17. #ifndef STRNP_ZERO_PAD
  18. #    define STRNP_ZERO_PAD 0
  19. #endif
  20.  
  21. /* Strncat.c */
  22. char *Strncat(char *const, const char *const, const size_t);
  23.  
  24. /* Strncpy.c */
  25. char *Strncpy(char *const, const char *const, const size_t);
  26.  
  27. /* Strnpcat.c */
  28. char *Strnpcat(char *const, const char *const, size_t);
  29.  
  30. /* Strnpcpy.c */
  31. char *Strnpcpy(char *const, const char *const, size_t);
  32.  
  33. /* Strntok.c */
  34. char *Strtok(char *, const char *);
  35. int Strntok(char *, size_t, char *, const char *);
  36.  
  37. /* strtokc.c */
  38. char *strtokc(char *, const char *, char **);
  39. size_t strntokc(char *, size_t, char *, const char *, char **);
  40.  
  41. /* Dynscat.c */
  42. char * Dynscat(char **dst, ...);
  43.  
  44. /* Dynscpy.c */
  45. char * Dynscpy(char **dst, ...);
  46.  
  47. /* Dynsrecpy.c */
  48. char * Dynsrecpy(char **dst, ...);
  49.  
  50. /* StrFree.c */
  51. void StrFree(char **dst);
  52.  
  53. /* NoZeroPad */
  54. char *Strncat_NoZeroPad(char *const, const char *const, const size_t);
  55. char *Strncpy_NoZeroPad(char *const, const char *const, const size_t);
  56.  
  57. #ifndef _DStrInternal_h_
  58. typedef struct DStr {
  59.     /* All of these structure fields are read-only; do not modify
  60.      * them directly.
  61.      */
  62.     char *s;
  63.     size_t len;
  64.     size_t allocSize;
  65. } DStr, *DStrPtr;
  66. #endif
  67.  
  68. void DStrInit(DStr *const dst);
  69. void DStrFree(DStr *const dst);
  70. void DStrClear(DStr *const dst);
  71. int DStrNew(DStr *const dst, const size_t srcLen);
  72. const char *DStrCpy(DStr *const dst, const char *const src);
  73. const char *DStrCat(DStr *const dst, const char *const src);
  74. const char *DStrCatList(DStr *const dst, ...);
  75. const char *DStrCpyList(DStr *const dst, ...);
  76.  
  77. #ifdef __cplusplus
  78. }
  79. #endif    /* __cplusplus */
  80.  
  81. #define STRNCPY(d,s) Strncpy((d), (s), (size_t) sizeof(d))
  82. #define STRNCAT(d,s) Strncat((d), (s), (size_t) sizeof(d))
  83.  
  84. #endif    /* _Strn_h_ */
  85.  
  86. /* eof Strn.h */
  87.