Documentation Formatting
From RLIB
String / Literal Formatting
Contents |
Colors (Foreground and Background)
Fields, Literals, and Lines allow you to define foreground and background colors. Fields and Literals will inherit the color properties from the Line they are one.
fgcolor="expS" bgcolor="expS" expS can either be a color name (see table below) or the hex triplet prefixed by 0x ex: 0xFFFFFF
Examples:' fgcolor="'red'" bgcolor="'0xFFFFFF'"
Format String
Yup RLIB has them. They are very similar to C, except there are only 3 input types: Numbers, Dates, or Strings. Here is the neat part. If you mess up format strings, rlib will put an error message in the field. They are:
!ERR_F means that rlib was not given a format string and can’t automatically make something of your data
!ERR_F_D means you asked rlib to format as a number but it was not given a number data type
!ERR_F_S means you asked rlib to format as a string but it was not given a string data type
!ERR_F_F means rlib could not interpret your format string expression / or what it interpreted it to was not a string
You can do stuff like "’You have %d apples’".
If you do something like %$5.2d this means put commas in so you will get 12,345.67
New Style Format Strings
The new style format strings can be intermixed with old style formatting and may be used anywhere a format string is needed. They provide locale aware formatting for date/time, money and numbers. The first 2 characters in the new format strings must begin with either "!@", "!$" or "!#", respectively. Following this is an appropriate ’C’ style format string for one of the functions strftime, strfmon, or sprintf (for numbers).
All numerics in the money and number format strings must be represented using the ’e’, ’f’ or ’g’ format codes. For example "!#$.2g", "!$%n", "!@%m/%d/%Y" are valid format strings using the new style for a number, a money amount and a date. There are also additional error codes added as follows:
!ERR_DT_D means you asked rlib to format a date but the date field of the datetime is not set.
!ERR_DT_T means you asked rlib to format a time but the time field of the datetime is not set.
!ERR_DT_NO means there were no valid format codes in a format string for a date/time.
String Format Strings
Exactly like c. %[optional number]s where optional number is how big to make the string
Number Format Strings
Close to c. %[optional number 1][.][optional number 2]d ... where optional number 1 is how big should the left side be and optional number 2 is how many decimal places...
Number Format Strings (!# format)
Identical to C. All numbers must be represented by the e, f or g format types. Please refer to your systems printf formatting codes.
Date Format Strings (all including !@ format)
Date codes and time codes should be consecutive, i.e. don’t have a timecode a datecode and then another timecode. This will not work. Rlib internally splits the datetime string into a date format string and a time format string. It uses the first transition from date-to-time or time-to-date as the split point for the date/time.
Dates from 1/1/1 through 1/1/8000+ can be represented.
%a The abbreviated weekday name according to the current locale.
%A The full weekday name according to the current locale.
%A The full weekday name according to the current locale.
%b The abbreviated month name according to the current locale.
%B The full month name according to the current locale.
%c The preferred date and time representation for the current locale.
%C The century number (year/100) as a 2-digit integer. (SU)
%d The day of the month as a decimal number (range 01 to 31).
%DEquivalent to %m/%d/%y. (Yecch - for Americans only. Americans should note that in other countries %d/%m/%y is rather common. This means that in international context this format is ambiguous and should not be used.) (SU)
%e Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space. (SU)
%E Modifier: use alternative format, see below. (SU)
%F Equivalent to %Y-%m-%d (the ISO 8601 date format). (C99)
%G The ISO 8601 year with century as a decimal number. The 4-digit year corresponding to the ISO week number (see %V). This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead. (TZ)
%g Like %G, but without century, i.e., with a 2-digit year (00-99). (TZ)
%h Equivalent to %b. (SU)
%H The hour as a decimal number using a 24-hour clock (range 00 to 23).
%I The hour as a decimal number using a 12-hour clock (range 01 to 12).
%j The day of the year as a decimal number (range 001 to 366).
%k The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank. (See also %H.) (TZ)
%l The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank. (See also %I.) (TZ)
%m The month as a decimal number (range 01 to 12).
%M The minute as a decimal number (range 00 to 59).
%n A newline character. (SU)
%O Modifier: use alternative format, see below. (SU)
%p Either ‘AM’ or ‘PM’ according to the given time value, or the corresponding strings for the current locale. Noon is treated as ‘pm’ and midnight as ‘am’.
%P Like %p but in lowercase: ‘am’ or ‘pm’ or a corresponding string for the current locale. (GNU)
%r The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to ‘%I:%M:%S %p’. (SU)
%R The time in 24-hour notation (%H:%M). (SU) For a version including the seconds, see %T below.
%s The number of seconds since the Epoch, i.e., since 1970-01-01 00:00:00 UTC. (TZ)
%S The second as a decimal number (range 00 to 61).
%t A tab character. (SU)
%T The time in 24-hour notation (%H:%M:%S). (SU)
%u The day of the week as a decimal, range 1 to 7, Monday being 1. See also %w. (SU)
%U The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. See also %V and %W.
%V The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. See also %U and %W. (SU)
%w The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u.
%W The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01.
%x The preferred date representation for the current locale without the time.
%X The preferred time representation for the current locale without the date.
%y The year as a decimal number without a century (range 00 to 99).
%Y The year as a decimal number including the century.
%z The time-zone as hour offset from GMT. Required to emit RFC822-conformant dates (using "%a, %d %b %Y %H:%M:%S %z"). (GNU)
%Z The time zone or name or abbreviation.
%+ The date and time in date(1) format. (TZ)
%% A literal ‘%’ character.
Money Format String (!$ format)
The money formatter is locale aware and will use appropriate symbols and formats for the designated locale. It is a string in the form: %[=f ^ ( + ! -][fieldwidth][#leftprecision][.rightprecision][n or i] [] indicates optional sections.
=f f is a character to use as the numeric fill character. Default is ’ ’.
^ ignore grouping if specified in the locale. This is usually thousands groupings.
( Put negative amounts in ().
+ Show + sign on positive numbers.
! Omit the currency symbol.
- Left justify all fields.
n Display in national format. Like: $1.25
i Display in international format. Like USD 1.25
%% represents a % sign within the format specification string.
Default Format Strings
for STRING it is "%s"
for NUMBER it is "%d"
for DATE it is "%m/%d/%Y"

