mesa: restore _mesa_snprintf() - it's needed for Windows
authorBrian Paul <brianp@vmware.com>
Fri, 19 Feb 2010 19:56:49 +0000 (12:56 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 19 Feb 2010 19:56:49 +0000 (12:56 -0700)
This reverts part of commit 298be2b028263b2c343a707662c6fbfa18293cb2

12 files changed:
src/mesa/drivers/common/meta.c
src/mesa/main/imports.c
src/mesa/main/imports.h
src/mesa/main/version.c
src/mesa/shader/prog_instruction.c
src/mesa/shader/prog_print.c
src/mesa/shader/program_parse.tab.c
src/mesa/shader/program_parse.y
src/mesa/shader/shader_api.c
src/mesa/shader/slang/slang_codegen.c
src/mesa/shader/slang/slang_emit.c
src/mesa/shader/slang/slang_link.c

index 3aa70ddbf046834ede8e15f72a43c1d1ee97abf7..42ab7d4ed60851dcd996a09d5d1626543b3cf47a 100644 (file)
@@ -1047,7 +1047,7 @@ init_blit_depth_pixels(GLcontext *ctx)
       texTarget = "RECT";
    else
       texTarget = "2D";
-   snprintf(program2, sizeof(program2), program, texTarget);
+   _mesa_snprintf(program2, sizeof(program2), program, texTarget);
 
    _mesa_GenPrograms(1, &blit->DepthFP);
    _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, blit->DepthFP);
@@ -1670,7 +1670,7 @@ init_draw_stencil_pixels(GLcontext *ctx)
       texTarget = "RECT";
    else
       texTarget = "2D";
-   snprintf(program2, sizeof(program2), program, texTarget);
+   _mesa_snprintf(program2, sizeof(program2), program, texTarget);
 
    _mesa_GenPrograms(1, &drawpix->StencilFP);
    _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->StencilFP);
@@ -1704,7 +1704,7 @@ init_draw_depth_pixels(GLcontext *ctx)
       texTarget = "RECT";
    else
       texTarget = "2D";
-   snprintf(program2, sizeof(program2), program, texTarget);
+   _mesa_snprintf(program2, sizeof(program2), program, texTarget);
 
    _mesa_GenPrograms(1, &drawpix->DepthFP);
    _mesa_BindProgram(GL_FRAGMENT_PROGRAM_ARB, drawpix->DepthFP);
index 112490915f721292ca091d18f93ae3b3a63d1a71..56e8195810ea4f79ac4b5f27b0fc3dbd4a2008d7 100644 (file)
@@ -827,6 +827,19 @@ _mesa_str_checksum(const char *str)
 /*@}*/
 
 
+/** Wrapper around vsnprintf() */
+int
+_mesa_snprintf( char *str, size_t size, const char *fmt, ... )
+{
+   int r;
+   va_list args;
+   va_start( args, fmt );  
+   r = vsnprintf( str, size, fmt, args );
+   va_end( args );
+   return r;
+}
+
+
 /**********************************************************************/
 /** \name Diagnostics */
 /*@{*/
@@ -866,7 +879,7 @@ output_if_debug(const char *prefixString, const char *outputString,
        * visible, so communicate with the debugger instead */ 
       {
          char buf[4096];
-         snprintf(buf, sizeof(buf), "%s: %s%s", prefixString, outputString, newline ? "\n" : "");
+         _mesa_snprintf(buf, sizeof(buf), "%s: %s%s", prefixString, outputString, newline ? "\n" : "");
          OutputDebugStringA(buf);
       }
 #endif
@@ -915,7 +928,7 @@ flush_delayed_errors( GLcontext *ctx )
    char s[MAXSTRING];
 
    if (ctx->ErrorDebugCount) {
-      snprintf(s, MAXSTRING, "%d similar %s errors", 
+      _mesa_snprintf(s, MAXSTRING, "%d similar %s errors", 
                      ctx->ErrorDebugCount,
                      error_string(ctx->ErrorValue));
 
@@ -1022,7 +1035,7 @@ _mesa_error( GLcontext *ctx, GLenum error, const char *fmtString, ... )
          vsnprintf(s, MAXSTRING, fmtString, args);
          va_end(args);
 
-         snprintf(s2, MAXSTRING, "%s in %s", error_string(error), s);
+         _mesa_snprintf(s2, MAXSTRING, "%s in %s", error_string(error), s);
          output_if_debug("Mesa: User error", s2, GL_TRUE);
          
          ctx->ErrorDebugFmtString = fmtString;
index 269d985f1e198cba33510b79b73dd6eb1eddae5e..ac3a7b5d61a102fc9af9757aab86c38c8c879995 100644 (file)
@@ -583,6 +583,9 @@ _mesa_strtod( const char *s, char **end );
 extern unsigned int
 _mesa_str_checksum(const char *str);
 
+extern int
+_mesa_snprintf( char *str, size_t size, const char *fmt, ... );
+
 extern void
 _mesa_warning( __GLcontext *gc, const char *fmtString, ... );
 
index 0d01f160593b3a32a085e5b2b849c7a26429b888..a39b68065012194d3ae368c98a51efd085437cd0 100644 (file)
@@ -124,7 +124,7 @@ _mesa_compute_version(GLcontext *ctx)
    
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
-      snprintf(ctx->VersionString, max, "%u.%u Mesa " MESA_VERSION_STRING,
+      _mesa_snprintf(ctx->VersionString, max, "%u.%u Mesa " MESA_VERSION_STRING,
               ctx->VersionMajor, ctx->VersionMinor);
    }
 }
index e5534b20e3492c39c55323ae36e3251e4a7a3f70..81099cb99c5d939c6b9cd9faf2c5eb01d13ac55f 100644 (file)
@@ -345,7 +345,7 @@ _mesa_opcode_string(gl_inst_opcode opcode)
       return InstInfo[opcode].Name;
    else {
       static char s[20];
-      snprintf(s, sizeof(s), "OP%u", opcode);
+      _mesa_snprintf(s, sizeof(s), "OP%u", opcode);
       return s;
    }
 }
index b4905abf4c8544fbe415dd662aac7614538d6100..0af70af9ad97b6abda3c1083d6332144d78885bf 100644 (file)
@@ -77,7 +77,7 @@ file_string(gl_register_file f, gl_prog_print_mode mode)
    default:
       {
          static char s[20];
-         snprintf(s, sizeof(s), "FILE%u", f);
+         _mesa_snprintf(s, sizeof(s), "FILE%u", f);
          return s;
       }
    }
@@ -997,7 +997,7 @@ _mesa_write_shader_to_file(const struct gl_shader *shader)
    else
       type = "vert";
 
-   snprintf(filename, sizeof(filename), "shader_%u.%s", shader->Name, type);
+   _mesa_snprintf(filename, sizeof(filename), "shader_%u.%s", shader->Name, type);
    f = fopen(filename, "w");
    if (!f) {
       fprintf(stderr, "Unable to open %s for writing\n", filename);
@@ -1047,7 +1047,7 @@ _mesa_append_uniforms_to_file(const struct gl_shader *shader,
    else
       type = "vert";
 
-   snprintf(filename, sizeof(filename), "shader_%u.%s", shader->Name, type);
+   _mesa_snprintf(filename, sizeof(filename), "shader_%u.%s", shader->Name, type);
    f = fopen(filename, "a"); /* append */
    if (!f) {
       fprintf(stderr, "Unable to open %s for appending\n", filename);
index 3f26f9f84a776d07c524e2b969e8f32a1fd335f3..52f60843584d7253e3fee92baf62e20acbe64fa0 100644 (file)
@@ -2984,7 +2984,7 @@ yyreduce:
     {
           if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) {
               char s[100];
-              snprintf(s, sizeof(s),
+              _mesa_snprintf(s, sizeof(s),
                              "relative address offset too large (%d)", (yyvsp[(1) - (1)].integer));
              yyerror(& (yylsp[(1) - (1)]), state, s);
              YYERROR;
@@ -3001,7 +3001,7 @@ yyreduce:
     {
           if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) {
               char s[100];
-              snprintf(s, sizeof(s),
+              _mesa_snprintf(s, sizeof(s),
                              "relative address offset too large (%d)", (yyvsp[(1) - (1)].integer));
              yyerror(& (yylsp[(1) - (1)]), state, s);
              YYERROR;
@@ -4915,7 +4915,7 @@ yyreduce:
 
           if (exist != NULL) {
              char m[1000];
-             snprintf(m, sizeof(m), "redeclared identifier: %s", (yyvsp[(2) - (4)].string));
+             _mesa_snprintf(m, sizeof(m), "redeclared identifier: %s", (yyvsp[(2) - (4)].string));
              free((yyvsp[(2) - (4)].string));
              yyerror(& (yylsp[(2) - (4)]), state, m);
              YYERROR;
@@ -5559,18 +5559,18 @@ make_error_string(const char *fmt, ...)
 
    va_start(args, fmt);
 
-   /* Call vsnprintf once to determine how large the final string is.  Call it
-    * again to do the actual formatting.  from the vsnprintf manual page:
+   /* Call v_mesa_snprintf once to determine how large the final string is.  Call it
+    * again to do the actual formatting.  from the v_mesa_snprintf manual page:
     *
     *    Upon successful return, these functions return the number of
     *    characters printed  (not including the trailing '\0' used to end
     *    output to strings).
     */
-   length = 1 + vsnprintf(NULL, 0, fmt, args);
+   length = 1 + v_mesa_snprintf(NULL, 0, fmt, args);
 
    str = malloc(length);
    if (str) {
-      vsnprintf(str, length, fmt, args);
+      v_mesa_snprintf(str, length, fmt, args);
    }
 
    va_end(args);
index 1c856d859d636dbae64ce2c23aa84a096d45382c..75cb4cf4799a015b9cdfca23144ba95b5be98e56 100644 (file)
@@ -936,7 +936,7 @@ addrRegPosOffset: INTEGER
        {
           if (($1 < 0) || ($1 > 63)) {
               char s[100];
-              snprintf(s, sizeof(s),
+              _mesa_snprintf(s, sizeof(s),
                              "relative address offset too large (%d)", $1);
              yyerror(& @1, state, s);
              YYERROR;
@@ -950,7 +950,7 @@ addrRegNegOffset: INTEGER
        {
           if (($1 < 0) || ($1 > 64)) {
               char s[100];
-              snprintf(s, sizeof(s),
+              _mesa_snprintf(s, sizeof(s),
                              "relative address offset too large (%d)", $1);
              yyerror(& @1, state, s);
              YYERROR;
@@ -2173,7 +2173,7 @@ ALIAS_statement: ALIAS IDENTIFIER '=' USED_IDENTIFIER
 
           if (exist != NULL) {
              char m[1000];
-             snprintf(m, sizeof(m), "redeclared identifier: %s", $2);
+             _mesa_snprintf(m, sizeof(m), "redeclared identifier: %s", $2);
              free($2);
              yyerror(& @2, state, m);
              YYERROR;
@@ -2599,7 +2599,7 @@ make_error_string(const char *fmt, ...)
    va_start(args, fmt);
 
    /* Call vsnprintf once to determine how large the final string is.  Call it
-    * again to do the actual formatting.  from the vsnprintf manual page:
+    * again to do the actual formatting.  from the v_mesa_snprintf manual page:
     *
     *    Upon successful return, these functions return the number of
     *    characters printed  (not including the trailing '\0' used to end
@@ -2609,7 +2609,7 @@ make_error_string(const char *fmt, ...)
 
    str = malloc(length);
    if (str) {
-      vsnprintf(str, length, fmt, args);
+      v_mesa_snprintf(str, length, fmt, args);
    }
 
    va_end(args);
index 8bd780b0b0f92bd468f916238df8b8fd0d32ac90..129a973cf1a5c8c366153e91ff5c7d87b5ec8502 100644 (file)
@@ -2076,7 +2076,7 @@ validate_samplers(GLcontext *ctx, const struct gl_program *prog, char *errMsg)
       unit = prog->SamplerUnits[sampler];
       target = prog->SamplerTargets[sampler];
       if (targetUsed[unit] != -1 && targetUsed[unit] != target) {
-         snprintf(errMsg, 100,
+         _mesa_snprintf(errMsg, 100,
                  "Texture unit %d is accessed both as %s and %s",
                  unit, targetName[targetUsed[unit]], targetName[target]);
          return GL_FALSE;
index b17256bb1e1a6e07d56d31f9c32b25b93343b41e..6901b93d5dece60a0ce929b58bba95d1dd3a5b1e 100644 (file)
@@ -1643,7 +1643,7 @@ _slang_gen_function_call(slang_assemble_ctx *A, slang_function *fun,
 
    if (A->pragmas->Debug) {
       char s[1000];
-      snprintf(s, sizeof(s), "Call/inline %s()", (char *) fun->header.a_name);
+      _mesa_snprintf(s, sizeof(s), "Call/inline %s()", (char *) fun->header.a_name);
       n->Comment = _slang_strdup(s);
    }
 
@@ -2190,7 +2190,7 @@ _slang_make_array_constructor(slang_assemble_ctx *A, slang_operation *oper)
          */
          slang_variable *p = slang_variable_scope_grow(fun->parameters);
          char name[10];
-         snprintf(name, sizeof(name), "p%d", i);
+         _mesa_snprintf(name, sizeof(name), "p%d", i);
          p->a_name = slang_atom_pool_atom(A->atoms, name);
          p->type.qualifier = SLANG_QUAL_CONST;
          p->type.specifier.type = baseType;
index 52fe7868906c387ed948b067d74c5f5e9692c053..7c0ea0c11484290c19661adfb0a07206e3448838 100644 (file)
@@ -2303,7 +2303,7 @@ emit_var_ref(slang_emit_info *emitInfo, slang_ir_node *n)
          /* error */
          char s[100];
          /* XXX isn't this really an out of memory/resources error? */
-         snprintf(s, sizeof(s), "Undefined variable '%s'",
+         _mesa_snprintf(s, sizeof(s), "Undefined variable '%s'",
                  (char *) n->Var->a_name);
          slang_info_log_error(emitInfo->log, s);
          return NULL;
index b59fc0a43a947dcd2ca5b44100094a2bb8e5d00e..7c7bfbdbc5ea616dd0d03b8a04c6bcd1fb033fad 100644 (file)
@@ -139,7 +139,7 @@ link_varying_vars(GLcontext *ctx,
          }
          if (!bits_agree(var->Flags, v->Flags, PROG_PARAM_BIT_CENTROID)) {
             char msg[100];
-            snprintf(msg, sizeof(msg),
+            _mesa_snprintf(msg, sizeof(msg),
                     "centroid modifier mismatch for '%s'", var->Name);
             link_error(shProg, msg);
             free(map);
@@ -147,7 +147,7 @@ link_varying_vars(GLcontext *ctx,
          }
          if (!bits_agree(var->Flags, v->Flags, PROG_PARAM_BIT_INVARIANT)) {
             char msg[100];
-            snprintf(msg, sizeof(msg),
+            _mesa_snprintf(msg, sizeof(msg),
                     "invariant modifier mismatch for '%s'", var->Name);
             link_error(shProg, msg);
             free(map);