00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #include "mit-copyright.h"
00010 
00011 #include "new_string.h"
00012 #include "main.h"
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 #define  assert(x)
00033 
00034 #define string_Length(s) strlen(s)
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 string 
00048 string__CreateFromData(data, length)
00049         char *data;
00050         int length;
00051 {
00052         string result;
00053 
00054         assert(length >= 0);
00055 
00056         result = (string) malloc(length + 1);
00057         assert(result);
00058 
00059         (void) memcpy(result, data, length);
00060         result[length] = 0;
00061 
00062         return (result);
00063 }
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 string 
00072 string__Copy(s)
00073         string s;
00074 {
00075         int length;
00076         string result;
00077 
00078         assert(s);
00079 
00080         length = string_Length(s) + 1;
00081         result = (string) malloc(length);
00082         assert(result);
00083 
00084         (void) memcpy(result, s, length);
00085         return (result);
00086 }
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 string 
00097 string__Concat(a, b)
00098         string a, b;
00099 {
00100         string result;
00101         int a_length, b_size, result_size;
00102 
00103         a_length = string_Length(a);
00104         b_size = string_Length(b) + 1;
00105         result_size = a_length + b_size;
00106         result = (string) malloc(result_size);
00107         assert(result);
00108 
00109         (void) memcpy(result, a, a_length);
00110         (void) memcpy(result + a_length, b, b_size);
00111 
00112         return (result);
00113 }
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 string 
00128 string__Concat2(a, b)
00129         string a, b;
00130 {
00131         int a_length = string_Length(a);
00132         int b_size = string_Length(b) + 1;
00133 
00134         a = (string) realloc(a, a_length + b_size);
00135         assert(a);
00136         (void) memcpy(a + a_length, b, b_size);
00137 
00138         return (a);
00139 }
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 string 
00151 string_Downcase(s)
00152         string s;
00153 {
00154         char *ptr;
00155 
00156         for (ptr = s; *ptr; ptr++) {
00157                 if (isupper(*ptr))
00158                         *ptr = tolower(*ptr);
00159         }
00160 
00161         return (s);
00162 }
00163 
00164 
00165 
00166 
00167 
00168 
00169 
00170 
00171 
00172 
00173 string 
00174 string_Upcase(s)
00175         string s;
00176 {
00177         char *ptr;
00178 
00179         for (ptr = s; *ptr; ptr++) {
00180                 if (islower(*ptr))
00181                         *ptr = toupper(*ptr);
00182         }
00183 
00184         return (s);
00185 }