home *** CD-ROM | disk | FTP | other *** search
/ Informática Multimedia: Special Games (Alt) / INFESPGAMES.iso / os2 / backgam / source / dstring.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-29  |  2.3 KB  |  57 lines

  1. /*************************************************************
  2.  *    ______                                                 *
  3.  *   /     /\  TinyFugue was derived from a client initially *
  4.  *  /   __/  \ written by Anton Rang (Tarrant) and later     *
  5.  *  |  / /\  | modified by Leo Plotkin (Grod).  The early    *
  6.  *  |  |/    | versions of TinyFugue written by Greg Hudson  *
  7.  *  |  X__/  | (Explorer_Bob).  The current version is       *
  8.  *  \ /      / written and maintained by Ken Keys (Hawkeye), *
  9.  *   \______/  who can be reached at kkeys@ucsd.edu.         *
  10.  *                                                           *
  11.  *             No copyright 1992, no rights reserved.        *
  12.  *             Fugue is in the public domain.                *
  13.  *************************************************************/
  14.  
  15. #ifdef DMALLOC
  16. #define Stringinit(str) dStringinit(str, __FILE__, __LINE__)
  17. #endif
  18.  
  19. /* This saves time, but make sure function it is used in cannot call
  20.  * itself, or overwriting may occur.
  21.  */
  22. #define STATIC_BUFFER(name) \
  23.     static Stringp (name); \
  24.     static int buffer_inited = FALSE; \
  25.     if (!buffer_inited) { \
  26.         Stringinit((name)); \
  27.         buffer_inited = TRUE; \
  28.     }
  29.  
  30. typedef struct String {
  31.     char *s;
  32.     int len, maxlen;
  33. } String, Stringp[1];          /* Stretchybuffer */
  34.  
  35.  
  36. #ifdef DMALLOC
  37. extern void  FDECL(dStringinit,(Stringp str, char *file, int line));
  38. #else
  39. extern void  FDECL(Stringinit,(Stringp str));
  40. #endif
  41. extern void  FDECL(Stringfree,(Stringp str));
  42. extern void  FDECL(Stringadd,(Stringp str, int c));
  43. extern void  FDECL(Stringnadd,(Stringp str, int c, int n));
  44. extern void  FDECL(Stringterm,(Stringp str, int len));
  45. extern void  FDECL(Stringcpy,(Stringp dest, char *src));
  46. extern void  FDECL(SStringcpy,(Stringp dest, Stringp src));
  47. extern void  FDECL(Stringncpy,(Stringp dest, char *src, int len));
  48. extern void  FDECL(Stringcat,(Stringp dest, char *src));
  49. extern void  FDECL(SStringcat,(Stringp dest, Stringp src));
  50. extern void  FDECL(Stringncat,(Stringp dest, char *src, int len));
  51. extern void  FDECL(Stringexpand,(Stringp str));
  52. extern char *FDECL(fgetS,(Stringp str, FILE *stream));
  53. extern char *FDECL(getword,(Stringp str, char *line));
  54. extern void  FDECL(stripString,(Stringp str));
  55. extern void  FDECL(newline_package,(Stringp buffer, int nl));
  56.  
  57.