snprintf improvements - Mailing list pgsql-patches

From Bruce Momjian
Subject snprintf improvements
Date
Msg-id 200503021448.j22Em7p28519@candle.pha.pa.us
Whole thread Raw
Responses Re: snprintf improvements
Re: snprintf improvements
List pgsql-patches
This patch uses our own snprintf() only when NLS support is enabled, and
I added support for %qd and %I64d in snprintf.  We might need those in
the final version if it is exported to apps.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: configure
===================================================================
RCS file: /cvsroot/pgsql/configure,v
retrieving revision 1.430
diff -c -c -r1.430 configure
*** configure    28 Feb 2005 20:55:18 -0000    1.430
--- configure    2 Mar 2005 14:30:16 -0000
***************
*** 14527,14533 ****


  # Force use of our snprintf if system's doesn't do arg control
! if test $pgac_need_repl_snprintf = no; then
    echo "$as_me:$LINENO: checking whether printf supports argument control" >&5
  echo $ECHO_N "checking whether printf supports argument control... $ECHO_C" >&6
  if test "${pgac_cv_printf_arg_control+set}" = set; then
--- 14527,14534 ----


  # Force use of our snprintf if system's doesn't do arg control
! # This feature is used by NLS
! if test "$enable_nls" = yes -a $pgac_need_repl_snprintf = no; then
    echo "$as_me:$LINENO: checking whether printf supports argument control" >&5
  echo $ECHO_N "checking whether printf supports argument control... $ECHO_C" >&6
  if test "${pgac_cv_printf_arg_control+set}" = set; then
Index: configure.in
===================================================================
RCS file: /cvsroot/pgsql/configure.in,v
retrieving revision 1.403
diff -c -c -r1.403 configure.in
*** configure.in    28 Feb 2005 20:55:18 -0000    1.403
--- configure.in    2 Mar 2005 14:30:20 -0000
***************
*** 1067,1073 ****


  # Force use of our snprintf if system's doesn't do arg control
! if test $pgac_need_repl_snprintf = no; then
    PGAC_FUNC_PRINTF_ARG_CONTROL
    if test $pgac_cv_printf_arg_control != yes ; then
      pgac_need_repl_snprintf=yes
--- 1067,1074 ----


  # Force use of our snprintf if system's doesn't do arg control
! # This feature is used by NLS
! if test "$enable_nls" = yes -a $pgac_need_repl_snprintf = no; then
    PGAC_FUNC_PRINTF_ARG_CONTROL
    if test $pgac_cv_printf_arg_control != yes ; then
      pgac_need_repl_snprintf=yes
Index: src/port/snprintf.c
===================================================================
RCS file: /cvsroot/pgsql/src/port/snprintf.c,v
retrieving revision 1.12
diff -c -c -r1.12 snprintf.c
*** src/port/snprintf.c    2 Mar 2005 05:22:22 -0000    1.12
--- src/port/snprintf.c    2 Mar 2005 14:30:26 -0000
***************
*** 259,264 ****
--- 259,281 ----
                          else
                              longflag = 1;
                          goto nextch;
+                     /*
+                      *    We might export this to client apps so we should
+                      *    support 'qd' and 'I64d'(MinGW) also in case the
+                      *    native version does.
+                      */
+                     case 'q':
+                         longlongflag = 1;
+                         longflag = 1;
+                         goto nextch;
+                     case 'I':
+                         if (*(format+1) == '6' && *(format+2) == '4')
+                         {
+                             format += 2;
+                             longlongflag = 1;
+                             longflag = 1;
+                             goto nextch;
+                         }
                      case 'u':
                      case 'U':
                          /* fmtnum(value,base,dosign,ljust,len,zpad,&output) */

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] UTF8 or Unicode
Next
From: Peter Eisentraut
Date:
Subject: Re: snprintf improvements