//
// Simple variable-length string type.
//
-// Copyright 1996 Derek B. Noonburg
+// Copyright 1996-2003 Glyph & Cog, LLC
//
//========================================================================
#ifndef GSTRING_H
#define GSTRING_H
-#ifdef __GNUC__
+#include <aconf.h>
+
+#ifdef USE_GCC_PRAGMAS
#pragma interface
#endif
-#include <string.h>
-
class GString {
public:
GString();
// Create a string from a C string.
- GString(const char *s1);
+ GString(const char *sA);
- // Create a string from <length1> chars at <s1>. This string
+ // Create a string from <lengthA> chars at <sA>. This string
// can contain null characters.
- GString (const char *s1, int length1);
+ GString(const char *sA, int lengthA);
+
+ // Create a string from <lengthA> chars at <idx> in <str>.
+ GString(GString *str, int idx, int lengthA);
// Copy a string.
GString(GString *str);
GString *append(char c);
GString *append(GString *str);
GString *append(const char *str);
- GString *append(const char *str, int length1);
+ GString *append(const char *str, int lengthA);
// Insert a character or string.
GString *insert(int i, char c);
GString *insert(int i, GString *str);
GString *insert(int i, const char *str);
- GString *insert(int i, const char *str, int length1);
+ GString *insert(int i, const char *str, int lengthA);
// Delete a character or range of characters.
GString *del(int i, int n = 1);
GString *lowerCase();
// Compare two strings: -1:< 0:= +1:>
- // These functions assume the strings do not contain null characters.
- int cmp(GString *str) { return strcmp(s, str->getCString()); }
- int cmpN(GString *str, int n) { return strncmp(s, str->getCString(), n); }
- int cmp(const char *s1) { return strcmp(s, s1); }
- int cmpN(const char *s1, int n) { return strncmp(s, s1, n); }
+ int cmp(GString *str);
+ int cmpN(GString *str, int n);
+ int cmp(const char *sA);
+ int cmpN(const char *sA, int n);
private: