--- parser3/src/main/pa_common.C 2001/03/20 18:24:44 1.19.2.3 +++ parser3/src/main/pa_common.C 2001/03/24 10:54:46 1.25 @@ -5,26 +5,17 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_common.C,v 1.19.2.3 2001/03/20 18:24:44 paf Exp $ + $Id: pa_common.C,v 1.25 2001/03/24 10:54:46 paf Exp $ */ -#ifdef HAVE_CONFIG_H -# include "pa_config.h" -#endif +#include "pa_config_includes.h" #include -#include #include #include #include -#include #include -#ifdef WIN32 -#else -# include -#endif - #include "pa_common.h" #include "pa_types.h" #include "pa_exception.h" @@ -34,7 +25,7 @@ #include "pa_hash.h" #include "pa_string.h" -#ifdef WIN32 +#if _MSC_VER int __vsnprintf(char *b, size_t s, const char *f, va_list l) { int r=_vsnprintf(b, --s, f, l); @@ -75,7 +66,7 @@ char *file_read_text(Pool& pool, const c if(fail_on_read_problem) PTHROW(0,0, 0, - "use: can not read '%s' file", fname); + "can not read '%s' file", fname); return 0; } @@ -96,9 +87,7 @@ void file_write(Pool& pool, |O_TRUNC #endif ; -#ifdef WIN32 mode|=as_text?_O_TEXT:_O_BINARY; -#endif if((f=open(fname,mode,0666))>=0) { /*if(exclusive) flock(f, LOCK_EX);*/ @@ -137,9 +126,9 @@ char *getrow(char **row_ref, char delim) return result; } -char *lsplit(char *string_ref, char delim) { - if(string_ref) { - char *v=strchr(string_ref, delim); +char *lsplit(char *string, char delim) { + if(string) { + char *v=strchr(string, delim); if(v) { *v=0; return v+1; @@ -249,16 +238,25 @@ static void append_attribute_subattribut string->append(static_cast(avalue)->as_string(), String::UL_HEADER, true); } -const String& attributed_meaning_string(Value *meaning) { - String &result=*new(meaning->pool()) String(meaning->pool()); - if(Hash *hash=meaning->get_hash()) { +const String& attributed_meaning_to_string(Value& meaning) { + String &result=*new(meaning.pool()) String(meaning.pool()); + if(Hash *hash=meaning.get_hash()) { // $value(value) $subattribute(subattribute value) if(Value *value=static_cast(hash->get(*value_name))) result.append(value->as_string(), String::UL_HEADER, true); - hash->foreach(append_attribute_subattribute, &result); + hash->for_each(append_attribute_subattribute, &result); } else // result value - result.append(meaning->as_string(), String::UL_HEADER, true); + result.append(meaning.as_string(), String::UL_HEADER, true); return result; -} \ No newline at end of file +} + +#ifdef WIN32 +void back_slashes_to_slashes(char *s) { + if(s) + for(; *s; s++) + if(*s=='\\') + *s='/'; +} +#endif