This is not my function, this is how it came "out of the box": ---------- bool CBaseEntity::KeyValue( const char *szKeyName, const char *szValue ) { //!! temp hack, until worldcraft is fixed // strip the # tokens from (duplicate) key names char *s = strchr( szKeyName, '#' ); if ( s ) { *s = '\0'; } ---------- How would you suggest fixing the bug?
On Fri, 03 Dec 2004 15:50:16 +0100, Florian Zschocke <[EMAIL PROTECTED]> wrote: > Childe Roland wrote: > > _Seem_ to have fixed it with: > > ------------------ > > char *s; > > s = (char *)strchr( szKeyName, '#' ); > > if ( s ) > > { > > *s = '\0'; > > ----------------- > > Will this work, am I just missing the error, or will this cause errors > > down the road?? > > You're missing the error. I lost the email where you showed the > full function but your error is that in your functions signature > you defined the szKeyName parameter as a const char*. By that you > promised anyone calling your function that you wil *not* change > the contents of the array that szKeyName points to. > > But that is exactly what you do in that function so you are > breaking your contract with other code established with your > function signature. > > So since you change the szKeyName in your function you should say > so in your function signature and declare the parameter as char*. > That will show you all the other places where code relies on the > array not getting changed by your function. > > Of course the brute-force method you used works too, simply lying > about what you do in the function and casting the const away. > Althuogh in C++ you would usually use a const_cast<char*> for that > to make it obvious that you are doing something nasty here. > > Florian > > > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, please > visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > -- ==================== <SB> Childe Roland "I will show you fear in a handful of jelly beans." _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders