Changeset 180
- Timestamp:
- Jan 7, 2007, 5:27:39 PM (19 years ago)
- Location:
- trunk/foundation
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/foundation/class_c/nomfilepath.c
r146 r180 52 52 input the resulting path may not be valid. 53 53 54 The method returns the NOMPath instanceafter appending.54 The method returns a new NOMPath after appending. 55 55 */ 56 56 NOM_Scope PNOMPath NOMLINK impl_NOMPath_appendPath(NOMPath* nomSelf, const PNOMPath nomPath, CORBA_Environment *ev) … … 59 59 60 60 if(!nomPath) 61 return nomSelf;61 return (PNOMPath)NOMPath_copy(nomSelf, NULLHANDLE); 62 62 63 63 if(0==NOMPath_length((NOMString*)nomPath, ev)) … … 69 69 NOMPath_appendSeparator(nomSelf, ev); /* Make sure current path has a separator */ 70 70 71 return (NOMPath*) NOMPath_append String((NOMString*) nomSelf, (NOMString*)nomPath, NULLHANDLE);71 return (NOMPath*) NOMPath_append((NOMString*) nomSelf, (NOMString*)nomPath, NULLHANDLE); 72 72 } 73 73 74 74 /* 75 75 Append a separator to the path. If the path already has a separator at the end this method does 76 nothing other than returning the path. 76 nothing other than returning a new path object. If the given path has zero length a path object 77 only holding a separator is returned. 78 79 This method always returns a new instance of a NOMPath owned by the caller. 77 80 */ 78 81 NOM_Scope PNOMPath NOMLINK impl_NOMPath_appendSeparator(NOMPath* nomSelf, CORBA_Environment *ev) … … 80 83 gchar* chrTemp; 81 84 gulong len; 82 85 83 86 if((len=NOMPath_length((NOMString*)nomSelf, ev))==0) 84 87 return (NOMPath*)NOMPath_appendCString((NOMString*)nomSelf, G_DIR_SEPARATOR_S, ev); … … 87 90 return (NOMPath*)NOMPath_appendCString( (NOMString*)nomSelf, G_DIR_SEPARATOR_S, ev); 88 91 89 return nomSelf;92 return (PNOMPath)NOMPath_copy(nomSelf, NULLHANDLE); 90 93 } 91 94 92 95 /* 93 96 Strips the path separator from the end of a path if there's one. 97 98 This method always returns a new instance of a NOMPath owned by the caller. 94 99 */ 95 100 NOM_Scope PNOMPath NOMLINK impl_NOMPath_stripSeparator(NOMPath* nomSelf, CORBA_Environment *ev) … … 98 103 gulong len; 99 104 100 if((len=NOMPath_length((NOMString*)nomSelf, ev))==0) 101 return nomSelf; 102 103 chrTemp=NOMPath_getCString((NOMString*)nomSelf, ev); 105 if((len=NOMPath_length((NOMString*)nomSelf, NULLHANDLE))==0) 106 return (PNOMPath)NOMPath_copy(nomSelf, NULLHANDLE); 107 108 chrTemp=NOMPath_queryCString((NOMString*)nomSelf, NULLHANDLE); 109 104 110 if(chrTemp[len-1]==G_DIR_SEPARATOR) 105 return (NOMPath*)NOMPath_truncateString( (NOMString*)nomSelf, len-1, ev); 106 107 return nomSelf; 108 } 111 return (NOMPath*)NOMPath_truncate( (NOMString*)nomSelf, len-1, NULLHANDLE); 112 113 return (PNOMPath)NOMPath_copy(nomSelf, NULLHANDLE); 114 } 115 116 /* 117 Returns TRUE if the given path is absolute. 118 On OS/2 this means it starts with a letter followed by a colon. 119 */ 120 NOM_Scope CORBA_boolean NOMLINK impl_NOMPath_pathIsAbsolute(NOMPath* nomSelf, CORBA_Environment *ev) 121 { 122 /* NOMPathData* nomThis=NOMPathGetData(nomSelf); */ 123 gchar* chrString; 124 125 #ifndef __OS2__ 126 #error !!!!! Only implemented for OS/2 !!!!! 127 #endif 128 129 if(NOMPath_length(nomSelf, NULLHANDLE)<2) 130 return FALSE; 131 132 chrString=NOMPath_queryCString(nomSelf, NULLHANDLE); 133 134 if(!g_ascii_isalpha(chrString[0]) || chrString[1]!=':') 135 return FALSE; 136 137 return TRUE; 138 } 139 140 NOM_Scope PNOMPath NOMLINK impl_NOMPath_queryRoot(NOMPath* nomSelf, CORBA_Environment *ev) 141 { 142 /* NOMPathData* nomThis=NOMPathGetData(nomSelf); */ 143 PNOMPath nomRetval=(PNOMPath)NOMPath_new(nomSelf, NULLHANDLE); 144 gchar os2Root[4]="a:"; /* includes padding */ 145 gchar *chrTemp; 146 147 #ifndef __OS2__ 148 #error !!!!! Only implemented for OS/2 !!!!! 149 #endif 150 151 if(!NOMPath_pathIsAbsolute(nomSelf, NULLHANDLE)) 152 return nomRetval; /* Return a zero length string */ 153 154 chrTemp=NOMPath_queryCString(nomSelf, NULLHANDLE); 155 156 os2Root[0]=chrTemp[0]; 157 return (PNOMPath) NOMPath_assignCString(nomRetval, os2Root, NULLHANDLE); 158 } 159 160 /* 161 This method strips all characters from the beginning of a path till the first 162 directory separator and also this first separator. If there's no separator in 163 the path a zero length path is returned. 164 165 This method always returns a new instance of a NOMPath owned by the caller. 166 */ 167 NOM_Scope PNOMPath NOMLINK impl_NOMPath_erasePathBegin(NOMPath* nomSelf, CORBA_Environment *ev) 168 { 169 /* NOMPathData* nomThis=NOMPathGetData(nomSelf); */ 170 PNOMPath nomRetval=(PNOMPath) NOMPath_new(nomSelf, NULLHANDLE); 171 gchar *chrTemp; 172 173 chrTemp=NOMPath_queryCString(nomSelf, NULLHANDLE); /* Not a copy */ 174 175 while(*chrTemp!='\0' && *chrTemp!=G_DIR_SEPARATOR) 176 chrTemp++; 177 178 if(*chrTemp==G_DIR_SEPARATOR) 179 chrTemp++; 180 181 return (PNOMPath)NOMPath_assignCString(nomRetval, chrTemp, NULLHANDLE); 182 } 183 184 /* 185 Returns the part of the path up to the first directory separator ('\' on OS/2). 186 If there's no directory separator the whole path is returned. This method does 187 not remove the part from the given path. Use erasePathBegin() to do that. 188 */ 189 NOM_Scope PNOMPath NOMLINK impl_NOMPath_queryPathBegin(NOMPath* nomSelf, CORBA_Environment *ev) 190 { 191 /* NOMPathData* nomThis=NOMPathGetData(nomSelf); */ 192 PNOMPath nomRetval=NOMPathNew(); 193 gchar *chrTemp; 194 195 chrTemp=NOMPath_copyCString(nomSelf, NULLHANDLE); /* This is a copy */ 196 197 while(*chrTemp!='\0' && *chrTemp!=G_DIR_SEPARATOR) 198 chrTemp++; 199 *chrTemp='\0'; 200 201 nomRetval=(PNOMPath)NOMPath_assignCString(nomRetval, chrTemp, NULLHANDLE); 202 203 g_free(chrTemp); 204 return (PNOMPath) nomRetval; 205 } 206 -
trunk/foundation/class_c/nomstring.c
r146 r180 45 45 46 46 47 NOM_Scope PNOMString NOMLINK impl_NOMString_assignString(NOMString* nomSelf, const PNOMString nomString, CORBA_Environment *ev) 47 NOM_Scope PNOMString NOMLINK impl_NOMString_assign(NOMString* nomSelf, const PNOMString nomString, 48 CORBA_Environment *ev) 48 49 { 49 /* NOMStringData* nomThis=NOMStringGetData(nomSelf); */50 /* NOMStringData* nomThis=NOMStringGetData(nomSelf); */ 50 51 51 NOMString_assignCString(nomSelf, NOMString_ getCString(nomString, NULLHANDLE), NULLHANDLE);52 NOMString_assignCString(nomSelf, NOMString_queryCString(nomString, NULLHANDLE), NULLHANDLE); 52 53 return nomSelf; 53 54 } 54 55 55 /* Assign a C string to this NOMString */ 56 NOM_Scope PNOMString NOMLINK impl_NOMString_assignCString(NOMString* nomSelf, const CORBA_char * chrString, CORBA_Environment *ev) 56 /* Assign a C string to this NOMString. An initially created NOMString object is empty. */ 57 NOM_Scope PNOMString NOMLINK impl_NOMString_assignCString(NOMString* nomSelf, const CORBA_char * chrString, 58 CORBA_Environment *ev) 57 59 { 58 60 NOMStringData* nomThis=NOMStringGetData(nomSelf); 59 61 60 g_string_assign(_gString, chrString); 62 g_string_assign(_gString, chrString); /* This copies the input string */ 61 63 return nomSelf; 62 64 } 63 65 64 /* Returns the C string held by this NOMString */65 NOM_Scope CORBA_string NOMLINK impl_NOMString_ getCString(NOMString* nomSelf, CORBA_Environment *ev)66 /* Returns the C string held by this NOMString. */ 67 NOM_Scope CORBA_string NOMLINK impl_NOMString_queryCString(NOMString* nomSelf, CORBA_Environment *ev) 66 68 { 67 69 NOMStringData* nomThis=NOMStringGetData(nomSelf); … … 70 72 } 71 73 74 /* Returns a copy of the C string held by this NOMString. */ 75 NOM_Scope CORBA_string NOMLINK impl_NOMString_copyCString(NOMString* nomSelf, CORBA_Environment *ev) 76 { 77 NOMStringData* nomThis=NOMStringGetData(nomSelf); 72 78 73 NOM_Scope PNOMString NOMLINK impl_NOMString_appendString(NOMString* nomSelf, const PNOMString nomString, CORBA_Environment *ev) 79 return g_strdup(_gString->str); 80 } 81 82 NOM_Scope PNOMString NOMLINK impl_NOMString_appendCString(NOMString* nomSelf, const CORBA_char * chrString, 83 CORBA_Environment *ev) 84 { 85 NOMStringData* nomThis=NOMStringGetData(nomSelf); 86 PNOMString nomRetval=(PNOMString) NOMString_new(nomSelf, NULLHANDLE); 87 GString* gStrTmp; 88 89 gStrTmp=g_string_new(_gString->str); 90 g_string_append(gStrTmp, chrString); 91 NOMString_assignCString(nomRetval, gStrTmp->str, NULLHANDLE); 92 g_string_free(gStrTmp, TRUE); 93 94 return nomRetval; 95 } 96 97 NOM_Scope PNOMString NOMLINK impl_NOMString_append(NOMString* nomSelf, const PNOMString nomString, 98 CORBA_Environment *ev) 74 99 { 75 100 /* NOMStringData* nomThis=NOMStringGetData(nomSelf); */ 76 101 77 NOMString_appendCString(nomSelf, NOMString_getCString(nomString, NULLHANDLE), NULLHANDLE); 78 return nomSelf; 102 return NOMString_appendCString(nomSelf, NOMString_queryCString(nomString, NULLHANDLE), NULLHANDLE); 79 103 } 80 104 81 NOM_Scope PNOMString NOMLINK impl_NOMString_prependString(NOMString* nomSelf, const PNOMString nomString, CORBA_Environment *ev) 105 NOM_Scope PNOMString NOMLINK impl_NOMString_prepend(NOMString* nomSelf, const PNOMString nomString, 106 CORBA_Environment *ev) 82 107 { 83 108 /* NOMStringData* nomThis=NOMStringGetData(nomSelf); */ 84 109 85 NOMString_prependCString(nomSelf, NOMString_getCString(nomString, NULLHANDLE), NULLHANDLE); 86 return nomSelf; 87 } 88 89 NOM_Scope PNOMString NOMLINK impl_NOMString_appendCString(NOMString* nomSelf, const CORBA_char * chrString, CORBA_Environment *ev) 90 { 91 NOMStringData* nomThis=NOMStringGetData(nomSelf); 92 93 g_string_append(_gString, chrString); 94 return nomSelf; 110 return NOMString_prependCString(nomSelf, NOMString_queryCString(nomString, NULLHANDLE), NULLHANDLE); 95 111 } 96 112 … … 98 114 { 99 115 NOMStringData* nomThis=NOMStringGetData(nomSelf); 116 PNOMString nomRetval=(PNOMString)NOMString_new(nomSelf, NULLHANDLE); 117 GString* gStrTmp; 100 118 101 g_string_prepend(_gString, chrString); 119 gStrTmp=g_string_new(_gString->str); 120 g_string_prepend(gStrTmp, chrString); 121 NOMString_assignCString(nomRetval, gStrTmp->str, NULLHANDLE); 122 g_string_free(gStrTmp, TRUE); 102 123 103 return nom Self;124 return nomRetval; 104 125 } 105 126 … … 111 132 } 112 133 113 NOM_Scope PNOMString NOMLINK impl_NOMString_truncate String(NOMString* nomSelf, const CORBA_unsigned_long ulNewLen,134 NOM_Scope PNOMString NOMLINK impl_NOMString_truncate(NOMString* nomSelf, const CORBA_unsigned_long ulNewLen, 114 135 CORBA_Environment *ev) 115 136 { 116 137 NOMStringData* nomThis=NOMStringGetData(nomSelf); 138 PNOMString nomRetval=(PNOMString)NOMString_new(nomSelf, NULLHANDLE); 139 GString* gStrTmp; 117 140 118 g_string_truncate(_gString, ulNewLen); 141 gStrTmp=g_string_new(_gString->str); 142 g_string_truncate(gStrTmp, ulNewLen); 143 NOMString_assignCString(nomRetval, gStrTmp->str, NULLHANDLE); 144 g_string_free(gStrTmp, TRUE); 119 145 120 return nom Self;146 return nomRetval; 121 147 } 122 148 123 NOM_Scope PNOMString NOMLINK impl_NOMString_copy String(NOMString* nomSelf, CORBA_Environment *ev)149 NOM_Scope PNOMString NOMLINK impl_NOMString_copy(NOMString* nomSelf, CORBA_Environment *ev) 124 150 { 125 151 /* NOMStringData* nomThis=NOMStringGetData(nomSelf); */ 126 PNOMString nomRetval=NOMStringNew(); 152 PNOMString nomRetval; 153 NOMClass* nomCls; 127 154 128 NOMString_assignString(nomRetval, nomSelf, ev); 155 /* We don't know which class we're actually. So we can't just create a new NOMString here. 156 It is possible that we are called by a subclass. So get the class object and let the 157 class object create the correct class. */ 158 nomCls=NOMObject_nomGetClass((PNOMObject) nomSelf, NULLHANDLE); 159 nomRetval=(PNOMString)NOMString_new(nomSelf, NULLHANDLE); 160 161 NOMString_assign(nomRetval, nomSelf, ev); 129 162 130 163 return nomRetval; -
trunk/foundation/idl/nomfilepath.idl
r129 r180 48 48 PNOMPath appendSeparator(); 49 49 PNOMPath stripSeparator(); 50 boolean pathIsAbsolute(); 51 PNOMPath queryRoot(); 52 PNOMPath erasePathBegin(); 53 PNOMPath queryPathBegin(); 50 54 }; 51 55 -
trunk/foundation/idl/nomstring.idl
r142 r180 45 45 NOMCLASSVERSION(1, 0); 46 46 47 PNOMString assign String(in PNOMString nomString);47 PNOMString assign(in PNOMString nomString); 48 48 /* Assign a C string to this NOMString */ 49 49 PNOMString assignCString(in string chrString); 50 50 /* Returns the C string held by this NOMString*/ 51 string getCString();52 PNOMString append String(in PNOMString nomString);53 PNOMString prepend String(in PNOMString nomString);51 string queryCString(); 52 PNOMString append(in PNOMString nomString); 53 PNOMString prepend(in PNOMString nomString); 54 54 PNOMString appendCString(in string chrString); 55 55 PNOMString prependCString(in string chrString); 56 56 unsigned long length(); 57 PNOMString truncateString(in unsigned long ulNewLen); 58 PNOMString copyString(); 57 PNOMString truncate(in unsigned long ulNewLen); 58 PNOMString copy(); 59 string copyCString(); 59 60 60 61 /* Init and uninit the GString */
Note:
See TracChangeset
for help on using the changeset viewer.