Annotation of researchv10no/cmd/lcc/ph/printf.tbl, revision 1.1

1.1     ! root        1:                                printf format string decision tree
        !             2:                                ------ ------ ------ -------- ----
        !             3: 
        !             4: d,i            flags:
        !             5:                        -       left justified in field
        !             6:                                default is right justified
        !             7:                        +       always show sign
        !             8:                                default is only show sign for negative
        !             9:                        ' '     if non-negative or no characters, prefix with space 
        !            10:                                ignore if with +
        !            11:                        #       UNDEFINED
        !            12:                        0       pad to field width with zeros after any sign
        !            13:                                ignore if with '-' flag
        !            14:                                ignore if with precision
        !            15:                width:
        !            16:                        if conv value has < width chars, pad field according to flag
        !            17:                        * means read next input int, negative means '-' flag
        !            18:                precision:
        !            19:                        minimum number of digits
        !            20:                        if prec > digits, pad with 0
        !            21:                        default is 1
        !            22:                        . without digit means ".0"
        !            23:                        .* reads next input int, negative number means ignore
        !            24:                        0 value with 0 precision writes no characters
        !            25:                conversion:
        !            26:                        signed decimal number
        !            27:                        pad to precision with leading 0s
        !            28:                following conversion spec:
        !            29:                        h       value is short
        !            30:                        l       value is long
        !            31:                        L       UNDEFINED
        !            32: 
        !            33: o              flags:
        !            34:                        -       left justified in field
        !            35:                                default is right justified
        !            36:                        +       UNDEFINED
        !            37:                        ' '     UNDEFINED
        !            38:                        #       increase precision to make first digit be 0
        !            39:                        0       pad to field width with zeros
        !            40:                                ignore if with '-' flag
        !            41:                                ignore if with precision
        !            42:                width:
        !            43:                        if conv value has < width chars, pad field according to flag
        !            44:                        * means read next input int, negative means '-' flag
        !            45:                precision:
        !            46:                        minimum number of digits
        !            47:                        default is 1
        !            48:                        . without digit means ".0"
        !            49:                        .* reads next input int, negative number means ignore
        !            50:                        0 value with 0 precision writes no characters
        !            51:                conversion:
        !            52:                        unsigned octal
        !            53:                        pad to precision with leading 0s                        
        !            54:                following conversion spec:
        !            55:                        h       value is unsigned short
        !            56:                        l       value is unsigned long
        !            57:                        L       UNDEFINED
        !            58: 
        !            59: u              flags:
        !            60:                        -       left justified in field
        !            61:                                default is right justified
        !            62:                        +       UNDEFINED
        !            63:                        ' '     UNDEFINED
        !            64:                        #       UNDEFINED
        !            65:                        0       pad to field width with zeros
        !            66:                                ignore if with '-' flag
        !            67:                                ignore if with precision
        !            68:                width:
        !            69:                        if conv value has < width chars, pad field according to flag
        !            70:                        * means read next input int, negative means '-' flag
        !            71:                precision:
        !            72:                        minimum number of digits
        !            73:                        default is 1
        !            74:                        . without digit means ".0"
        !            75:                        .* reads next input int, negative number means ignore
        !            76:                        0 value with 0 precision writes no characters
        !            77:                conversion:
        !            78:                        unsigned decimal
        !            79:                        pad to precision with leading 0s                        
        !            80:                following conversion spec:
        !            81:                        h       value is unsigned short
        !            82:                        l       value is unsigned long
        !            83:                        L       UNDEFINED
        !            84: 
        !            85: x,X            flags:
        !            86:                        -       left justified in field
        !            87:                                default is right justified
        !            88:                        +       UNDEFINED
        !            89:                        ' '     UNDEFINED
        !            90:                        #       non-zero result has 0x or 0X prefix
        !            91:                        0       pad to field width with zeros
        !            92:                                ignore if with '-' flag
        !            93:                                ignore if with precision
        !            94:                width:
        !            95:                        if conv value has < width chars, pad field according to flag
        !            96:                        * means read next input int, negative means '-' flag
        !            97:                precision:
        !            98:                        minimum number of digits
        !            99:                        default is 1
        !           100:                        . without digit means ".0"
        !           101:                        .* reads next input int, negative number means ignore
        !           102:                        0 value with 0 precision prints no characters
        !           103:                conversion:
        !           104:                        unsigned hex
        !           105:                        x uses lowercase, X uses upper case
        !           106:                        pad to precision with leading 0s                        
        !           107:                following conversion spec:
        !           108:                        h       value is unsigned short
        !           109:                        l       value is unsigned long
        !           110:                        L       UNDEFINED
        !           111: 
        !           112: f              flags:
        !           113:                        -       left justified in field
        !           114:                                default is right justified
        !           115:                        +       always show sign
        !           116:                                default is only show sign if negative
        !           117:                        ' '     if non-negative or no characters, prefix with space 
        !           118:                                ignore if with +
        !           119:                        #       always print a decimal point
        !           120:                                default is to print decimal only if digits follow
        !           121:                        0       pad to field width with zeros after sign
        !           122:                                ignore if with '-' flag
        !           123:                                UNDEFINED if with precision
        !           124:                width:
        !           125:                        if conv value has < width chars, pad field according to flag
        !           126:                        * means read next input int, negative means '-' flag
        !           127:                precision:
        !           128:                        maximum number of digits after the decimal point
        !           129:                        default is 6
        !           130:                        . without digit means ".0"
        !           131:                        .* reads next input int, negative number means ignore
        !           132:                conversion:
        !           133:                        double of form ddd.ddd
        !           134:                        if precision is 0 and no '#' flag, supress decimal point
        !           135:                        if decimal point is printed, at least one character precedes
        !           136:                        value is rounded to appropriate number of digits
        !           137:                following conversion spec:
        !           138:                        h       UNDEFINED
        !           139:                        l       UNDEFINED
        !           140:                        L       value is long double
        !           141: 
        !           142: e,E            flags:
        !           143:                        -       left justified in field
        !           144:                                default is right justified
        !           145:                        +       always show sign
        !           146:                                default is only show sign on negative
        !           147:                        ' '     if non-negative or no characters, prefix with space 
        !           148:                                ignore if with +
        !           149:                        #       always print a decimal point
        !           150:                                default is to print decimal only if digits follow
        !           151:                        0       pad to field width with zeros after sign
        !           152:                                ignore if with '-' flag
        !           153:                                UNDEFINED if with precision
        !           154:                width:
        !           155:                        if conv value has < width chars, pad field according to flag
        !           156:                        * means read next input int, negative means '-' flag
        !           157:                precision:
        !           158:                        maximum number of digits after the decimal point
        !           159:                        default is 6
        !           160:                        . without digit means ".0"
        !           161:                        .* reads next input int, negative number means ignore
        !           162:                conversion:
        !           163:                        d.dddde+/-ddd
        !           164:                        one non-zero digit before decimal (if value is not 0)
        !           165:                        0 precision and no '#' flag suppresses decimal
        !           166:                        value rounded to appropriate number of digits
        !           167:                        E gives 'E' as exponent indicator, e gives 'e'
        !           168:                        exponent is at least 2 digits
        !           169:                        zero value guves 0 exponent                     
        !           170:                following conversion spec:
        !           171:                        h       UNDEFINED
        !           172:                        l       UNDEFINED
        !           173:                        L       value is long double
        !           174: 
        !           175: g,G            flags:
        !           176:                        -       left justified in field
        !           177:                                default is right justified
        !           178:                        +       always show sign
        !           179:                                default is only show sign on negative
        !           180:                        ' '     if non-negative or no characters, prefix with space 
        !           181:                                ignore if with +
        !           182:                        #       always print a decimal point, do not remove trailing zeros
        !           183:                                default is to print decimal only if digits follow
        !           184:                                default is to strip trailing 0s after decimal point
        !           185:                        0       pad to field width with zeros after sign
        !           186:                                ignore if with '-' flag
        !           187:                                UNDEFINED if with precision
        !           188:                width:
        !           189:                        if conv value has < width chars, pad field according to flag
        !           190:                        * means read next input int, negative means '-' flag
        !           191:                precision:
        !           192:                        maximum number of significant digits
        !           193:                        . without digit means ".0"
        !           194:                        .* reads next input int, negative number means ignore
        !           195:                        missing or zero precision means 1
        !           196:                conversion:
        !           197:                        if exponent < -4 or >= precision use e(E) format
        !           198:                        otherwise use f format
        !           199:                        trailing 0's removed if no '#' flag
        !           200:                        decimal point suppressed if no character and no '#' flag
        !           201:                following conversion spec:
        !           202:                        h       UNDEFINED
        !           203:                        l       UNDEFINED
        !           204:                        L       value is long double
        !           205: 
        !           206: c              flags:
        !           207:                        -       left justified in field
        !           208:                                default is right justified
        !           209:                        +       UNDEFINED
        !           210:                        ' '     UNDEFINED
        !           211:                        #       UNDEFINED
        !           212:                        0       UNDEFINED
        !           213:                width:
        !           214:                        if conv value has < width chars, pad field according to flag
        !           215:                        * means read next input int, negative means '-' flag
        !           216:                precision
        !           217:                        UNDEFINED
        !           218:                conversion
        !           219:                        write the character
        !           220:                following conversion spec:
        !           221:                        h       UNDEFINED
        !           222:                        l       UNDEFINED
        !           223:                        L       UNDEFINED
        !           224: 
        !           225: s              flags:
        !           226:                        -       left justified in field
        !           227:                                default is right justified
        !           228:                        +       UNDEFINED
        !           229:                        ' '     UNDEFINED
        !           230:                        #       UNDEFINED
        !           231:                        0       UNDEFINED
        !           232:                width:
        !           233:                        if conv value has < width chars, pad field with spaces left/right
        !           234:                        * means read next input int, negative means '-' flag
        !           235:                precision:
        !           236:                        maximum number of characters written
        !           237:                        . without digit means ".0"
        !           238:                        .* reads next input int, negative number means ignore
        !           239:                conversion:
        !           240:                        write to end of string or (if specified) precision number of chars
        !           241:                        if no precision or precision > size of string, must be NUL term.
        !           242:                following conversion spec:
        !           243:                        h       UNDEFINED
        !           244:                        l       UNDEFINED
        !           245:                        L       UNDEFINED
        !           246: 
        !           247: p              flags:
        !           248:                        -       left justified in field
        !           249:                                default is right justified
        !           250:                        +       UNDEFINED
        !           251:                        ' '     UNDEFINED
        !           252:                        #       UNDEFINED
        !           253:                        0       UNDEFINED
        !           254:                width:
        !           255:                        if conv value has < width chars, pad field according to flag
        !           256:                        * means read next input int, negative means '-' flag
        !           257:                precision:
        !           258:                        UNDEFINED
        !           259:                conversion:
        !           260:                        implementation defined pointer
        !           261:                following conversion spec:
        !           262:                        h       UNDEFINED
        !           263:                        l       UNDEFINED
        !           264:                        L       UNDEFINED
        !           265: 
        !           266: n              flags:
        !           267:                                all flags are undefined
        !           268:                width:
        !           269:                                UNDEFINED
        !           270:                precision:
        !           271:                                UNDEFINED
        !           272:                conversion:
        !           273:                        write number of characters written so far
        !           274:                following conversion specifier:
        !           275:                        h       pointer is to a short int
        !           276:                        l       pointer is to a long int
        !           277:                        L       UNDEFINED
        !           278: 
        !           279: 
        !           280: misc:
        !           281:        %% is escapefor printing percent character
        !           282:        all other conversion specifiers have UNDEFINED behaviour
        !           283:        nonexistant or small field gets expanded to hold value
        !           284:        returns number of characters written, or negative number on output error
        !           285: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.