diff --git a/.gitattributes b/.gitattributes index ad31564ef9c0e15ada179c068e6e2441e3e9dad5..aca7d1921547166d18a8a0738ec32a4a70bd55c7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -274,7 +274,6 @@ testfont binary /src/compilation.h foreign_ident /src/constants.c foreign_ident /src/constants.h foreign_ident -/src/cpp.c foreign_ident /src/cpp.h foreign_ident /src/crypt.c foreign_ident /src/cyclic.c foreign_ident diff --git a/src/cpp.c b/src/cpp.c index 1606004a1377a94be2dd569fcff5fc51e821ff47..776d34e19d746c28454527c52e65e6f853328202 100644 --- a/src/cpp.c +++ b/src/cpp.c @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: cpp.c,v 1.179 2010/09/18 11:56:50 marcus Exp $ +|| $Id$ */ #include "global.h" @@ -241,18 +241,19 @@ static void cpp_handle_exception(struct cpp *this, static void cpp_warning(struct cpp *this, const char *cpp_warn_fmt, ...) { - char msg[8192]; + struct string_builder sb; va_list args; + init_string_builder (&sb, 0); va_start(args, cpp_warn_fmt); - Pike_vsnprintf(msg, sizeof(msg), cpp_warn_fmt, args); + string_builder_vsprintf (&sb, cpp_warn_fmt, args); va_end(args); if((this->handler && this->handler->prog) || get_master()) { ref_push_string(this->current_file); push_int(this->current_line); - push_text(msg); + push_string (finish_string_builder (&sb)); low_safe_apply_handler("compile_warning", this->handler, this->compat_handler, 3); pop_stack(); @@ -260,8 +261,9 @@ static void cpp_warning(struct cpp *this, const char *cpp_warn_fmt, ...) (void)fprintf(stderr, "%s:%ld: %s\n", this->current_file->str, (long)this->current_line, - msg); + sb.s->str); fflush(stderr); + free_string_builder (&sb); } } diff --git a/src/error.c b/src/error.c index 46b26667f301e31e93e279c8fa25cb9de7719ca4..9925f1a0cddc9aacf8845ee5d34119dc2b19961f 100644 --- a/src/error.c +++ b/src/error.c @@ -251,117 +251,6 @@ PMOD_EXPORT DECLSPEC(noreturn) void low_error(const char *buf) ATTRIBUTE((noretu pike_throw(); /* Hope someone is catching, or we will be out of balls. */ } -PMOD_EXPORT void Pike_vsnprintf(char *str, size_t size, - const char *fmt, va_list args) -{ - size--; - - do { - if(fmt[0]=='%') { - - fmt++; - - switch( fmt++[0] ) { - - case 'O': - { - dynamic_buffer buf; - dynbuf_string s; - char *ostr; - struct svalue t = va_arg(args, struct svalue); - init_buf(&buf); - describe_svalue(&t,0,0); - s=complex_free_buf(&buf); - ostr=s.str; - - while( --size>0 && (s.len--)>0 ) - str++[0]=s.str++[0]; - - free(ostr); - } - break; - - case 'S': - { - dynamic_buffer buf; - dynbuf_string s; - char *ostr; - struct svalue t; - - t.type = PIKE_T_STRING; - t.u.string = va_arg(args, struct pike_string *); - - init_buf(&buf); - describe_svalue(&t,0,0); - s=complex_free_buf(&buf); - ostr=s.str; - - while( --size>0 && (s.len--)>0 ) - str++[0]=s.str++[0]; - - free(ostr); - } - break; - - case 's': - { - char *from = va_arg(args, char *); - while( --size>0 && from[0]!=0 ) - str++[0]=from++[0]; - } - break; - - case 'c': - { - int c = (char)va_arg(args, int); - sprintf(str, "%c", c); - str++; - size--; - } - break; - - case 'd': - { - char buf[12]; - int pos=0; - sprintf(buf, "%d", va_arg(args, int)); - while( --size>0 && buf[pos]!=0 ) - str++[0]=buf[pos++]; - } - break; - - case 'x': - { - char buf[12]; - int pos=0; - sprintf(buf, "%x", va_arg(args, int)); - while( --size>0 && buf[pos]!=0 ) - str++[0]=buf[pos++]; - } - break; - - case '%': - str++[0]='%'; - size--; - break; - - default: - Pike_fatal("Unknown Pike_vsnprintf formatting char '%c'.\n", - (fmt-1)[0]); - } - } - else { - str++[0]=fmt++[0]; - size--; - } - - } while(fmt[0] && size>0); - - str[0]=0; - va_end(args); -} - - PMOD_EXPORT void va_make_error (const char *fmt, va_list args) { struct string_builder s; diff --git a/src/pike_error.h b/src/pike_error.h index adf606d202b0e6c8e04734fa091a5a0e858d14f0..5461c6065ff27ceb2568828880e409333a72d120 100644 --- a/src/pike_error.h +++ b/src/pike_error.h @@ -254,7 +254,6 @@ PMOD_EXPORT JMP_BUF *init_recovery(JMP_BUF *r, size_t stack_pop_levels DEBUG_INI PMOD_EXPORT DECLSPEC(noreturn) void pike_throw(void) ATTRIBUTE((noreturn)); PMOD_EXPORT void push_error(const char *description); PMOD_EXPORT DECLSPEC(noreturn) void low_error(const char *buf) ATTRIBUTE((noreturn)); -PMOD_EXPORT void Pike_vsnprintf(char *str, size_t size, const char *fmt, va_list ap); PMOD_EXPORT void va_make_error (const char *fmt, va_list args); PMOD_EXPORT void DECLSPEC(noreturn) va_error(const char *fmt, va_list args) ATTRIBUTE((noreturn)); PMOD_EXPORT void make_error (const char *fmt, ...);