revised docs

This commit is contained in:
hyung-hwan 2013-01-16 07:51:42 +00:00
parent 121ed07cf0
commit 07d38add5d
3 changed files with 33 additions and 11 deletions

View File

@ -1552,6 +1552,8 @@ PREDEFINED = "QSE_BEGIN_NAMESPACE(x)=namespace x {" \
"QSE_SIZEOF_OFF_T=@QSE_SIZEOF_OFF_T@" \ "QSE_SIZEOF_OFF_T=@QSE_SIZEOF_OFF_T@" \
"QSE_SIZEOF_OFF64_T=@QSE_SIZEOF_OFF64_T@" \ "QSE_SIZEOF_OFF64_T=@QSE_SIZEOF_OFF64_T@" \
"QSE_EXPORT=" \ "QSE_EXPORT=" \
"QSE_ENABLE_XCMGRS=" \
"QSE_ENABLE_BUNDLED_UNICODE=" \
"QSE_ENABLE_SEDTRACER=" \ "QSE_ENABLE_SEDTRACER=" \
"@CHAR_MODE@" "@CHAR_MODE@"

View File

@ -84,9 +84,9 @@ string literals and regular expressions.
Tokens Tokens
------ ------
When QSEAWK parses a program, it classifies the a series of input charcters When QSEAWK parses a program, it classifies a series of input characters
into meaningful tokens. It can extract the smallest meaningful unit through into meaningful tokens. It can extract the smallest meaningful unit through
this tokenization process. There are this tokenization process.
### Numbers ### ### Numbers ###
@ -650,18 +650,26 @@ of *r* causes the function to close the read-end of the pipe and the value of
The function returns 0 on success and -1 on failure. The function returns 0 on success and -1 on failure.
Though not so useful, it is possible to create more than 1 streams of different Though not so useful, it is possible to create more than 1 streams of different
kinds under the same name. It is undefined which stream *close* kinds under the same name. The following program generates a shell script
should close in the following program. /tmp/x containing a command *ls -laF* and executes it without closing the
script file being generated. It reads the execution output via a pipe and
prints it to the console. It is undefined which stream the last *close*
should close assuming the first *close* is commented out and the program works.
~~~~~{.awk} ~~~~~{.awk}
BEGIN { BEGIN {
"/tmp/x" || getline y; # rwpipe stream print "ls -laF" > "/tmp/x"; # file stream
print 1 | "/tmp/x"; # pipe stream system ("chmod ugo+x /tmp/x");
print 1 > "/tmp/x"; # file stream #close ("/tmp/x");
close ("/tmp/x"); while(("/tmp/x" | getline y) > 0) print y; # pipe stream
close ("/tmp/x"); # which stream to close?
} }
~~~~~ ~~~~~
Note that the execution of generated script fails if the script file is
open on some platforms. That's what the first *close* commented out is
actually for.
### fflush (io-name) ### ### fflush (io-name) ###
The *fflush* function flushes the output stream indicated by *io-name*. The *fflush* function flushes the output stream indicated by *io-name*.

View File

@ -35,14 +35,26 @@ typedef qse_cmgr_t* (*qse_cmgr_finder_t) (const qse_char_t* name);
*/ */
enum qse_cmgr_id_t enum qse_cmgr_id_t
{ {
/** The slmb cmgr relies on the locale routnines in the underlying
* platforms. You should initialize locale properly before using this.
*/
QSE_CMGR_SLMB, QSE_CMGR_SLMB,
/**
* The utf cmgr converts between utf8 and unicode characters.
*/
QSE_CMGR_UTF8, QSE_CMGR_UTF8,
/**
* The mb8 cmgr is used to convert raw bytes to wide characters and
* vice versa.
*/
QSE_CMGR_MB8 QSE_CMGR_MB8
#if defined(QSE_ENABLE_XCMGRS) #if defined(QSE_ENABLE_XCMGRS)
, ,
QSE_CMGR_CP949, QSE_CMGR_CP949, /**< cp949 */
QSE_CMGR_CP950 QSE_CMGR_CP950 /**< cp950 */
#endif #endif
}; };
typedef enum qse_cmgr_id_t qse_cmgr_id_t; typedef enum qse_cmgr_id_t qse_cmgr_id_t;