]> git.ipfire.org Git - thirdparty/cups.git/blob - pdftops/GString.h
Merge changes from CUPS 1.4svn-r7199.
[thirdparty/cups.git] / pdftops / GString.h
1 //========================================================================
2 //
3 // GString.h
4 //
5 // Simple variable-length string type.
6 //
7 // Copyright 1996-2003 Glyph & Cog, LLC
8 //
9 //========================================================================
10
11 #ifndef GSTRING_H
12 #define GSTRING_H
13
14 #include <config.h>
15
16 #ifdef USE_GCC_PRAGMAS
17 #pragma interface
18 #endif
19
20 class GString {
21 public:
22
23 // Create an empty string.
24 GString();
25
26 // Create a string from a C string.
27 GString(const char *sA);
28
29 // Create a string from <lengthA> chars at <sA>. This string
30 // can contain null characters.
31 GString(const char *sA, int lengthA);
32
33 // Create a string from <lengthA> chars at <idx> in <str>.
34 GString(GString *str, int idx, int lengthA);
35
36 // Copy a string.
37 GString(GString *str);
38 GString *copy() { return new GString(this); }
39
40 // Concatenate two strings.
41 GString(GString *str1, GString *str2);
42
43 // Convert an integer to a string.
44 static GString *fromInt(int x);
45
46 // Destructor.
47 ~GString();
48
49 // Get length.
50 int getLength() { return length; }
51
52 // Get C string.
53 char *getCString() { return s; }
54
55 // Get <i>th character.
56 char getChar(int i) { return s[i]; }
57
58 // Change <i>th character.
59 void setChar(int i, char c) { s[i] = c; }
60
61 // Clear string to zero length.
62 GString *clear();
63
64 // Append a character or string.
65 GString *append(char c);
66 GString *append(GString *str);
67 GString *append(const char *str);
68 GString *append(const char *str, int lengthA);
69
70 // Insert a character or string.
71 GString *insert(int i, char c);
72 GString *insert(int i, GString *str);
73 GString *insert(int i, const char *str);
74 GString *insert(int i, const char *str, int lengthA);
75
76 // Delete a character or range of characters.
77 GString *del(int i, int n = 1);
78
79 // Convert string to all-upper/all-lower case.
80 GString *upperCase();
81 GString *lowerCase();
82
83 // Compare two strings: -1:< 0:= +1:>
84 int cmp(GString *str);
85 int cmpN(GString *str, int n);
86 int cmp(const char *sA);
87 int cmpN(const char *sA, int n);
88
89 private:
90
91 int length;
92 char *s;
93
94 void resize(int length1);
95 };
96
97 #endif