mirror of
https://github.com/golang/go
synced 2024-11-21 20:14:52 -07:00
convert C runtime to 32-bit runes;
rune now unsigned. R=r DELTA=10 (1 added, 0 deleted, 9 changed) OCL=34140 CL=34146
This commit is contained in:
parent
a843b4541a
commit
04a77ac78c
@ -1,7 +1,7 @@
|
|||||||
#ifndef _FMT_H_
|
#ifndef _FMT_H_
|
||||||
#define _FMT_H_ 1
|
#define _FMT_H_ 1
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* The authors of this software are Rob Pike and Ken Thompson.
|
* The authors of this software are Rob Pike and Ken Thompson.
|
||||||
@ -30,7 +30,7 @@ struct Fmt{
|
|||||||
void *farg; /* to make flush a closure */
|
void *farg; /* to make flush a closure */
|
||||||
int nfmt; /* num chars formatted so far */
|
int nfmt; /* num chars formatted so far */
|
||||||
va_list args; /* args passed to dofmt */
|
va_list args; /* args passed to dofmt */
|
||||||
int r; /* % format Rune */
|
Rune r; /* % format Rune */
|
||||||
int width;
|
int width;
|
||||||
int prec;
|
int prec;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
@ -38,8 +38,8 @@ struct Fmt{
|
|||||||
|
|
||||||
/* For %'d */
|
/* For %'d */
|
||||||
char *thousands; /* separator for thousands */
|
char *thousands; /* separator for thousands */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Each char is an integer indicating #digits before next separator. Values:
|
* Each char is an integer indicating #digits before next separator. Values:
|
||||||
* \xFF: no more grouping (or \x7F; defined to be CHAR_MAX in POSIX)
|
* \xFF: no more grouping (or \x7F; defined to be CHAR_MAX in POSIX)
|
||||||
* \x00: repeat previous indefinitely
|
* \x00: repeat previous indefinitely
|
||||||
|
@ -4,15 +4,15 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 2002-2006 by Lucent Technologies.
|
* Copyright (c) 2002-2006 by Lucent Technologies.
|
||||||
* Portions Copyright (c) 2004 Google Inc.
|
* Portions Copyright (c) 2004 Google Inc.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and distribute this software for any
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
* purpose without fee is hereby granted, provided that this entire notice
|
* purpose without fee is hereby granted, provided that this entire notice
|
||||||
* is included in all copies of any software which is or includes a copy
|
* is included in all copies of any software which is or includes a copy
|
||||||
* or modification of this software and in all copies of the supporting
|
* or modification of this software and in all copies of the supporting
|
||||||
* documentation for such software.
|
* documentation for such software.
|
||||||
* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
|
* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
|
||||||
* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES
|
* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES
|
||||||
* NOR GOOGLE INC MAKE ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING
|
* NOR GOOGLE INC MAKE ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING
|
||||||
* THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
|
* THE MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -618,12 +618,13 @@ __flagfmt(Fmt *f)
|
|||||||
int
|
int
|
||||||
__badfmt(Fmt *f)
|
__badfmt(Fmt *f)
|
||||||
{
|
{
|
||||||
char x[3];
|
char x[2+UTFmax];
|
||||||
|
int n;
|
||||||
|
|
||||||
x[0] = '%';
|
x[0] = '%';
|
||||||
x[1] = f->r;
|
n = 1 + runetochar(x+1, &f->r);
|
||||||
x[2] = '%';
|
x[n++] = '%';
|
||||||
f->prec = 3;
|
f->prec = n;
|
||||||
__fmtcpy(f, (const void*)x, 3, 3);
|
__fmtcpy(f, (const void*)x, n, n);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
typedef signed int Rune; /* Code-point values in Unicode 4.0 are 21 bits wide.*/
|
typedef unsigned int Rune; /* Code-point values in Unicode 4.0 are 21 bits wide.*/
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -33,7 +33,7 @@ Bgetrune(Biobuf *bp)
|
|||||||
{
|
{
|
||||||
int c, i;
|
int c, i;
|
||||||
Rune rune;
|
Rune rune;
|
||||||
char str[4];
|
char str[UTFmax];
|
||||||
|
|
||||||
c = Bgetc(bp);
|
c = Bgetc(bp);
|
||||||
if(c < Runeself) { /* one char */
|
if(c < Runeself) { /* one char */
|
||||||
|
@ -32,7 +32,7 @@ int
|
|||||||
Bputrune(Biobuf *bp, long c)
|
Bputrune(Biobuf *bp, long c)
|
||||||
{
|
{
|
||||||
Rune rune;
|
Rune rune;
|
||||||
char str[4];
|
char str[UTFmax];
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
rune = c;
|
rune = c;
|
||||||
|
Loading…
Reference in New Issue
Block a user