mirror of
https://github.com/fluffos/fluffos
synced 2026-08-12 18:26:06 -04:00
* docs: add local full-text search and a contributor README Add @easyops-cn/docusaurus-search-local to the Docusaurus site so the docs get an offline search bar (index built at build time, no external service). English and zh-CN pages are both indexed, and matched terms are highlighted on the target page. Add docs/README.md describing the Docusaurus setup, local dev/build commands, search behavior, directory layout, and gotchas; exclude it from the published site alongside CLAUDE.md. Point the root README's docs/ entry at it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: remove dead framework leftovers, fix index generation, complete the nav Delete the VitePress (.vitepress/) and Jekyll (_layouts/, css/) leftovers, the one-shot migration scripts (fix_md_header.py, fix_seealso.py), and the stale keywords.json snapshot; prune the matching .gitignore entries and docusaurus exclude patterns. Rewrite gen_index.py for Docusaurus: it emitted dead .html links and legacy 'layout: doc' frontmatter, choked on non-markdown entries, and dropped nested categories — regenerating an index would have broken it. It now emits the extension-less links the site actually uses, links nested category indexes (restoring apply/* on the zh-CN index), and refuses to run on the docs root. Fix update_index.sh's copy-paste titles (zh-CN efun/build were titled 'APPLY'), stop it clobbering the hand-written lpc/index.md, and cover cli/. Regenerated indexes pick up the missing driver/ffi-plan entry. add_missing_efuns.py now takes the keywords.json path as an argument instead of requiring a stale copy. Move CNAME and the Google site-verification file into static/ so they actually reach the published build output. Complete the sidebar: link the CLI category to cli/index and add the missing portbind/symbol/generate_keywords pages, and expose the previously orphaned stdlib section under Reference. Promote onBrokenLinks to 'throw' now the build is warning-free, and drop the empty Demo section from the landing page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: strip legacy 'layout: doc' frontmatter from all pages Mechanical sweep removing the Jekyll-era 'layout: doc' line from every doc page's frontmatter (Docusaurus ignores it), and the matching line from the templates in docs/CLAUDE.md so new pages don't reintroduce it. No content changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE --------- Co-authored-by: Claude <noreply@anthropic.com>
122 lines
4.1 KiB
Markdown
122 lines
4.1 KiB
Markdown
---
|
||
title: strings / sprintf
|
||
---
|
||
# sprintf
|
||
|
||
### NAME
|
||
|
||
printf, sprintf - formatted output conversion
|
||
|
||
### SYNOPSIS
|
||
|
||
void printf( string format, ... );
|
||
string sprintf( string format, ... );
|
||
|
||
### DESCRIPTION
|
||
|
||
An implementation of (s)printf() for LPC, with quite a few extensions
|
||
Implemented by Lynscar (Sean A Reith).
|
||
|
||
This version supports the following as modifiers:
|
||
|
||
" " pad positive integers with a space.
|
||
|
||
"+" pad positive integers with a plus sign.
|
||
|
||
"-" left adjusted within field size.
|
||
NB: std (s)printf() defaults to right justification, which is
|
||
unnatural in the context of a mainly string based language but
|
||
has been retained for "compatability".
|
||
|
||
"|" centered within field size.
|
||
|
||
"=" column mode if strings are greater than field size. This is
|
||
only meaningful with strings, all other types ignore this. Col‐
|
||
umns are auto-magically word wrapped.
|
||
|
||
"#" table mode, print a list of '\n' separated 'words' in a table
|
||
within the field size. only meaningful with strings.
|
||
|
||
n specifies the field size, a '*' specifies to use the corre‐
|
||
sponding arg as the field size. If n is prepended with a zero,
|
||
then is padded zeros, else it is padded with spaces (or speci‐
|
||
fied pad string).
|
||
|
||
"."n precision of n, simple strings truncate after this (if preci‐
|
||
sion is greater than field size, then field size = precision),
|
||
tables use precision to specify the number of columns (if pre‐
|
||
cision not specified then tables calculate a best fit), all
|
||
other types ignore this.
|
||
|
||
":"n n specifies the fs _and_ the precision, if n is prepended by a
|
||
zero then it is padded with zeros instead of spaces.
|
||
|
||
"@" the argument is an array. the corresponding format_info (minus
|
||
the "@") is applyed to each element of the array.
|
||
|
||
"'X'" The char(s) between the single-quotes are used to pad to field
|
||
size (defaults to space) (if both a zero (in front of field
|
||
size) and a pad string are specified, the one specified second
|
||
overrules). NOTE: to include "'" in the pad string, you must
|
||
use "\'" (as the backslash has to be escaped past the inter‐
|
||
preter), similarly, to include "\" requires "\\".
|
||
|
||
The following are the possible type specifiers.
|
||
|
||
% in which case no arguments are interpreted, and a "%" is
|
||
inserted, and all modifiers are ignored.
|
||
|
||
O the argument is an LPC datatype.
|
||
|
||
s the argument is a string.
|
||
|
||
d, i the integer arg is printed in decimal.
|
||
|
||
c the integer arg is to be printed as a character.
|
||
|
||
o the integer arg is printed in octal.
|
||
|
||
x the integer arg is printed in hex.
|
||
|
||
X the integer arg is printed in hex (with A-F in capitals).
|
||
|
||
f floating point number
|
||
|
||
g floating point number, trailing zeros removed
|
||
(e.g. 3.14 instead of 3.140000, 100 instead of 100.000000)
|
||
|
||
### RETURN VALUES
|
||
|
||
sprintf() returns the formatted string.
|
||
|
||
### EXAMPLE
|
||
|
||
Basic Usage:
|
||
sprintf("%s is %i", "X", 1) = "X is 1"
|
||
|
||
Alignment:
|
||
sprintf("%-20s", "left") = "left "
|
||
sprintf("%20|s", "center") = " center "
|
||
sprintf("%20s", "right") = " right"
|
||
sprintf("%-20'-'s", "left") = "left----------------"
|
||
sprintf("%20'-'|s", "center") = "-------center-------"
|
||
sprintf("%20'-'s", "right") = "---------------right"
|
||
|
||
Numeric:
|
||
sprintf("%.2f", 1.2345) = "1.23"
|
||
sprintf("%10.2f", 1.2345) = " 1.23"
|
||
sprintf("%10.6f", 0.123) = " 0.123000"
|
||
|
||
Dynamic Field Size:
|
||
sprintf("%-*s", 10, "ten") = "ten "
|
||
sprintf("%|*s", 20, "twenty") = " twenty "
|
||
sprintf("%*s", 30, "thirty") = " thirty"
|
||
|
||
### AUTHOR
|
||
|
||
Sean A. Reith (Lynscar)
|
||
|
||
### SEE ALSO
|
||
|
||
printf(3), sscanf(3)
|
||
|