Fossil

Diff
Login

Differences From Artifact [98dae687a6]:

To Artifact [a6f0ff1d9c]:


22
23
24
25
26
27
28














29
30
31
32
33
34
35
#include "printf.h"
#if defined(_WIN32)
#   include <io.h>
#   include <fcntl.h>
#endif
#include <time.h>















/*
** Conversion types fall into various categories as defined by the
** following enumeration.
*/
#define etRADIX       1 /* Integer types.  %d, %x, %o, and so forth */
#define etFLOAT       2 /* Floating point.  %f */
#define etEXP         3 /* Exponential notation. %e and %E */







>
>
>
>
>
>
>
>
>
>
>
>
>
>







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "printf.h"
#if defined(_WIN32)
#   include <io.h>
#   include <fcntl.h>
#endif
#include <time.h>

/* Two custom conversions are used to show a prefix of SHA1 hashes:
**
**      %!S       Prefix of a length appropriate for URLs
**      %S        Prefix of a length appropriate for human display
**
** The following macros determine those lengths.
*/
#ifndef FOSSIL_SHA1_PREFIX_LEN
# define FOSSIL_SHA1_PREFIX_LEN 10      /* For %S (human display) */
#endif
#ifndef FOSSIL_SHA1_URLPREFIX_LEN
# define FOSSIL_SHA1_URLPREFIX_LEN 16   /* For %!S (embedded in URLs) */
#endif

/*
** Conversion types fall into various categories as defined by the
** following enumeration.
*/
#define etRADIX       1 /* Integer types.  %d, %x, %o, and so forth */
#define etFLOAT       2 /* Floating point.  %f */
#define etEXP         3 /* Exponential notation. %e and %E */
618
619
620
621
622
623
624
625
626
627
628
629
630

631
632
633
634
635
636
637
        int limit = flag_alternateform ? va_arg(ap,int) : -1;
        bufpt = va_arg(ap,char*);
        if( bufpt==0 ){
          bufpt = "";
        }else if( xtype==etDYNSTRING ){
          zExtra = bufpt;
        }else if( xtype==etSTRINGID ){
          precision = 0;
          while( bufpt[precision]>='0' && bufpt[precision]<='9' ){
            precision++;
          }
          if( bufpt[precision]!=0 ) precision++;
          if( precision<10 ) precision=10;

        }
        length = StrNLen32(bufpt, limit);
        if( precision>=0 && precision<length ) length = precision;
        break;
      }
      case etBLOB: {
        int limit = flag_alternateform ? va_arg(ap, int) : -1;







|
<
<
<
<
<
>







632
633
634
635
636
637
638
639





640
641
642
643
644
645
646
647
        int limit = flag_alternateform ? va_arg(ap,int) : -1;
        bufpt = va_arg(ap,char*);
        if( bufpt==0 ){
          bufpt = "";
        }else if( xtype==etDYNSTRING ){
          zExtra = bufpt;
        }else if( xtype==etSTRINGID ){
          precision = 	flag_altform2 ? FOSSIL_SHA1_URLPREFIX_LEN :





                                       FOSSIL_SHA1_PREFIX_LEN;
        }
        length = StrNLen32(bufpt, limit);
        if( precision>=0 && precision<length ) length = precision;
        break;
      }
      case etBLOB: {
        int limit = flag_alternateform ? va_arg(ap, int) : -1;