mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 00:10:10 +00:00
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com> * elf/dl-support.c: Define and initialize _dl_verbose used in dl-machine.h. * io/ftw.c: Expand stat/lstat calls. * manual/intro.texi: Also refer to ISO 9945. Update info about SVID. Add description for XPG. * md5-crypt/md5-crypt.c: Namespace cleanups. * md5-crypt/md5.c: Likewise. * md5-crypt/md5.h: Likewise. * sysdeps/generic/crypt-entry.c: Likewise. * posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L. * stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is defined. * sunrpc/rpc_scan.c (findkind): Declare `token' as const. * sunrpc/rpc_util.c (toktostr): Declare `token' as const. * time/Makefile: Make tzselect dependen of config.make. 1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu> * manual/string.texi (String and Array Utilities): Add `Argz and Envz Vectors' to the menu. (Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes. 1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * login/Makefile (utmpd-routines): Add utmpd. (extra-objs): Add utmpd objects to get dependencies. (distribute): Add sources for utmpd. (subdir-dirs): Define. 1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com> * sysdeps/wordsize-32/inttypes.h: Include features.h and use __CONCAT instead of defined __CONCAT__ ourself. * sysdeps/wordsize-64/inttypes.h: Likewise. 1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not `ll'. (PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST, SCNoFAST, SCNxFAST): Correct format specifiers. 1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir. 1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com> * md5-crypt/Makefile: Correct libmd5crypt file to really generate DES free libcrypt. * md5-crypt/onlymd5-entry.c: New file. Wrapper around sysdeps/generic/crypt-entry.c. 1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change type to `unsigned long int'. Patch by Richard Henderson <richard@twiddle.rth.home>. 1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C declaration style. * nss/nss_files/files-hosts.c: Delete inclusion of "../resolv/mapv4v6hostent.h".
This commit is contained in:
parent
f671aeab4e
commit
b13927da59
77
ChangeLog
77
ChangeLog
@ -1,3 +1,80 @@
|
|||||||
|
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* elf/dl-support.c: Define and initialize _dl_verbose used in
|
||||||
|
dl-machine.h.
|
||||||
|
|
||||||
|
* io/ftw.c: Expand stat/lstat calls.
|
||||||
|
|
||||||
|
* manual/intro.texi: Also refer to ISO 9945.
|
||||||
|
Update info about SVID.
|
||||||
|
Add description for XPG.
|
||||||
|
|
||||||
|
* md5-crypt/md5-crypt.c: Namespace cleanups.
|
||||||
|
* md5-crypt/md5.c: Likewise.
|
||||||
|
* md5-crypt/md5.h: Likewise.
|
||||||
|
* sysdeps/generic/crypt-entry.c: Likewise.
|
||||||
|
|
||||||
|
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
|
||||||
|
|
||||||
|
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
|
||||||
|
defined.
|
||||||
|
|
||||||
|
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
|
||||||
|
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
|
||||||
|
|
||||||
|
* time/Makefile: Make tzselect dependen of config.make.
|
||||||
|
|
||||||
|
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
|
||||||
|
|
||||||
|
* manual/string.texi (String and Array Utilities): Add `Argz and
|
||||||
|
Envz Vectors' to the menu.
|
||||||
|
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
|
||||||
|
|
||||||
|
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* login/Makefile (utmpd-routines): Add utmpd.
|
||||||
|
(extra-objs): Add utmpd objects to get dependencies.
|
||||||
|
(distribute): Add sources for utmpd.
|
||||||
|
(subdir-dirs): Define.
|
||||||
|
|
||||||
|
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
|
||||||
|
__CONCAT instead of defined __CONCAT__ ourself.
|
||||||
|
* sysdeps/wordsize-64/inttypes.h: Likewise.
|
||||||
|
|
||||||
|
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
|
||||||
|
`ll'.
|
||||||
|
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
|
||||||
|
SCNoFAST, SCNxFAST): Correct format specifiers.
|
||||||
|
|
||||||
|
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
|
||||||
|
|
||||||
|
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
|
||||||
|
DES free libcrypt.
|
||||||
|
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
|
||||||
|
sysdeps/generic/crypt-entry.c.
|
||||||
|
|
||||||
|
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
|
||||||
|
type to `unsigned long int'.
|
||||||
|
Patch by Richard Henderson <richard@twiddle.rth.home>.
|
||||||
|
|
||||||
|
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
|
||||||
|
declaration style.
|
||||||
|
|
||||||
|
* nss/nss_files/files-hosts.c: Delete inclusion of
|
||||||
|
"../resolv/mapv4v6hostent.h".
|
||||||
|
|
||||||
1997-05-31 02:33 Ulrich Drepper <drepper@cygnus.com>
|
1997-05-31 02:33 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* io/ftwtest-sh: More tests.
|
* io/ftwtest-sh: More tests.
|
||||||
|
@ -20,9 +20,25 @@
|
|||||||
/* This file defines some things that for the dynamic linker are defined in
|
/* This file defines some things that for the dynamic linker are defined in
|
||||||
rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */
|
rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
extern char *__progname;
|
extern char *__progname;
|
||||||
char **_dl_argv = &__progname; /* This is checked for some error messages. */
|
char **_dl_argv = &__progname; /* This is checked for some error messages. */
|
||||||
|
|
||||||
/* This defines the default search path for libraries.
|
/* This defines the default search path for libraries.
|
||||||
For the dynamic linker it is set by -rpath when linking. */
|
For the dynamic linker it is set by -rpath when linking. */
|
||||||
const char *_dl_rpath = DEFAULT_RPATH;
|
const char *_dl_rpath = DEFAULT_RPATH;
|
||||||
|
|
||||||
|
/* If nonzero print warnings about problematic situations. */
|
||||||
|
int _dl_verbose;
|
||||||
|
|
||||||
|
|
||||||
|
static void init_verbose (void) __attribute__ ((unused));
|
||||||
|
|
||||||
|
static void
|
||||||
|
init_verbose (void)
|
||||||
|
{
|
||||||
|
_dl_verbose = *(getenv ("LD_WARN") ?: "") == '\0' ? 0 : 1;
|
||||||
|
}
|
||||||
|
text_set_element (__libc_subinit, init_verbose);
|
||||||
|
21
io/ftw.c
21
io/ftw.c
@ -243,12 +243,14 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
|
|||||||
memcpy (data->dirbuf + data->ftw.base, name, namlen);
|
memcpy (data->dirbuf + data->ftw.base, name, namlen);
|
||||||
data->dirbuf[data->ftw.base + namlen] = '\0';
|
data->dirbuf[data->ftw.base + namlen] = '\0';
|
||||||
|
|
||||||
if (((data->flags & FTW_PHYS) ? lstat : stat) (data->dirbuf, &st) < 0)
|
if (((data->flags & FTW_PHYS)
|
||||||
|
? __lxstat (_STAT_VER, data->dirbuf, &st)
|
||||||
|
: __xstat (_STAT_VER, data->dirbuf, &st)) < 0)
|
||||||
{
|
{
|
||||||
if (errno != EACCES && errno != ENOENT)
|
if (errno != EACCES && errno != ENOENT)
|
||||||
result = -1;
|
result = -1;
|
||||||
else if (!(data->flags & FTW_PHYS)
|
else if (!(data->flags & FTW_PHYS)
|
||||||
&& lstat (data->dirbuf, &st) == 0
|
&& __lxstat (_STAT_VER, data->dirbuf, &st) == 0
|
||||||
&& S_ISLNK (st.st_mode))
|
&& S_ISLNK (st.st_mode))
|
||||||
flag = FTW_SLN;
|
flag = FTW_SLN;
|
||||||
else
|
else
|
||||||
@ -265,8 +267,8 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result == 0
|
if (result == 0
|
||||||
&& (!(data->flags & FTW_MOUNT) || flag == FTW_NS
|
&& (flag == FTW_NS
|
||||||
|| st.st_dev == data->dev))
|
|| !(data->flags & FTW_MOUNT) || st.st_dev == data->dev))
|
||||||
{
|
{
|
||||||
if ((data->flags & FTW_PHYS) || flag == FTW_NS
|
if ((data->flags & FTW_PHYS) || flag == FTW_NS
|
||||||
|| (!find_object (data, &st)
|
|| (!find_object (data, &st)
|
||||||
@ -282,7 +284,7 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
|
|||||||
/* Change back to current directory. */
|
/* Change back to current directory. */
|
||||||
int done = 0;
|
int done = 0;
|
||||||
if (dir->stream != NULL)
|
if (dir->stream != NULL)
|
||||||
if (fchdir (dirfd (dir->stream)) == 0)
|
if (__fchdir (dirfd (dir->stream)) == 0)
|
||||||
done = 1;
|
done = 1;
|
||||||
|
|
||||||
if (!done)
|
if (!done)
|
||||||
@ -347,7 +349,7 @@ ftw_dir (struct ftw_data *data, struct stat *st)
|
|||||||
/* If necessary, change to this directory. */
|
/* If necessary, change to this directory. */
|
||||||
if (data->flags & FTW_CHDIR)
|
if (data->flags & FTW_CHDIR)
|
||||||
{
|
{
|
||||||
if (fchdir (dirfd (dir.stream)) < 0)
|
if (__fchdir (dirfd (dir.stream)) < 0)
|
||||||
{
|
{
|
||||||
if (errno == ENOSYS)
|
if (errno == ENOSYS)
|
||||||
{
|
{
|
||||||
@ -521,13 +523,16 @@ ftw_startup (const char *dir, int is_nftw, void *func, int descriptors,
|
|||||||
|
|
||||||
/* Get stat info for start directory. */
|
/* Get stat info for start directory. */
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
if (((flags & FTW_PHYS) ? lstat : stat) (data.dirbuf, &st) < 0)
|
if (((flags & FTW_PHYS)
|
||||||
|
? __lxstat (_STAT_VER, data.dirbuf, &st)
|
||||||
|
: __xstat (_STAT_VER, data.dirbuf, &st)) < 0)
|
||||||
{
|
{
|
||||||
if (errno == EACCES)
|
if (errno == EACCES)
|
||||||
result = (*data.func) (data.dirbuf, &st, FTW_NS, &data.ftw);
|
result = (*data.func) (data.dirbuf, &st, FTW_NS, &data.ftw);
|
||||||
else if (!(flags & FTW_PHYS)
|
else if (!(flags & FTW_PHYS)
|
||||||
&& errno == ENOENT
|
&& errno == ENOENT
|
||||||
&& lstat (dir, &st) == 0 && S_ISLNK (st.st_mode))
|
&& __lxstat (_STAT_VER, dir, &st) == 0
|
||||||
|
&& S_ISLNK (st.st_mode))
|
||||||
result = (*data.func) (data.dirbuf, &st, data.cvt_arr[FTW_SLN],
|
result = (*data.func) (data.dirbuf, &st, data.cvt_arr[FTW_SLN],
|
||||||
&data.ftw);
|
&data.ftw);
|
||||||
else
|
else
|
||||||
|
810
localedata/locales/cs_CZ
Normal file
810
localedata/locales/cs_CZ
Normal file
@ -0,0 +1,810 @@
|
|||||||
|
escape_char /
|
||||||
|
comment_char %
|
||||||
|
%
|
||||||
|
% Czech Language Locale for Czech
|
||||||
|
% Source:
|
||||||
|
% Address: U ¹koly 292 Without diactitical chars: U skoly 292
|
||||||
|
% 783 72 Velký Týnec 782 72 Velky Tynec
|
||||||
|
% Contact: Vladimir Michl
|
||||||
|
% Email: Vladimir.Michl@upol.cz
|
||||||
|
% Tel:
|
||||||
|
% Fax:
|
||||||
|
% Language: cs
|
||||||
|
% Territory: CZ
|
||||||
|
% Revision: 1.01
|
||||||
|
% Date: 1997-01-17
|
||||||
|
% Application: general
|
||||||
|
% Users: general
|
||||||
|
% Repertoiremap: mnemonic.ds
|
||||||
|
% Charset: ISO_8859-2:1987
|
||||||
|
% Distribution and use is free, also
|
||||||
|
% for commercial purposes.
|
||||||
|
|
||||||
|
% zpracování:
|
||||||
|
%% localedef -c -i <tento-soubor> -f "ISO_8859-2:1987" 'cs_CZ.ISO-8859-2'
|
||||||
|
%% pokud se podaøí odstranit chyby, lze -c vynechat.
|
||||||
|
|
||||||
|
%% pro úspì¹né pøelo¾ení je tøeba mít kolekci lokalizací WG15collection.
|
||||||
|
%% Tuto rozbalit do adresáøe
|
||||||
|
%% /usr/share/i18n
|
||||||
|
%% Lokalizace se pak budou tvoøit v adresáøi /usr/share/locale
|
||||||
|
|
||||||
|
%% Také je dobré do souboru /usr/share/locale/locale.alias napsat tyto øádky
|
||||||
|
%% cz cs_CZ.ISO88592
|
||||||
|
%% cs cs_CZ.ISO88592
|
||||||
|
%% czech cs_CZ.ISO88592
|
||||||
|
|
||||||
|
|
||||||
|
%% Poøadí znakù
|
||||||
|
%% Mo¾ná jsou nìkteré akcentované znaky jinak ne¾ by mìly být,
|
||||||
|
%% zkuste zkontrolovat a pøípadné vylep¹ení mi poslat.
|
||||||
|
%% ----------------------------------------------------------
|
||||||
|
|
||||||
|
LC_COLLATE
|
||||||
|
% Definice písmene ch
|
||||||
|
collating-element <c-h> from "<c><h>"
|
||||||
|
collating-element <C-h> from "<C><h>"
|
||||||
|
collating-element <C-H> from "<C><H>"
|
||||||
|
|
||||||
|
collating-symbol <CAPITAL>
|
||||||
|
collating-symbol <SMALL>
|
||||||
|
|
||||||
|
collating-symbol <NONE>
|
||||||
|
collating-symbol <ACUTE>
|
||||||
|
%collating-symbol <GRAVE>
|
||||||
|
%collating-symbol <DOUBLE-GRAVE>
|
||||||
|
collating-symbol <BREVE>
|
||||||
|
collating-symbol <CIRCUMFLEX>
|
||||||
|
collating-symbol <CARON>
|
||||||
|
collating-symbol <RING>
|
||||||
|
collating-symbol <DIAERESIS>
|
||||||
|
collating-symbol <DOUBLE-ACUTE>
|
||||||
|
%collating-symbol <TILDE>
|
||||||
|
collating-symbol <DOT>
|
||||||
|
collating-symbol <STROKE>
|
||||||
|
collating-symbol <CEDILLA>
|
||||||
|
collating-symbol <OGONEK>
|
||||||
|
|
||||||
|
order_start forward;backward/
|
||||||
|
;forward;position
|
||||||
|
|
||||||
|
<CAPITAL>
|
||||||
|
<SMALL>
|
||||||
|
|
||||||
|
<NONE>
|
||||||
|
<ACUTE>
|
||||||
|
<CARON>
|
||||||
|
<RING>
|
||||||
|
%<GRAVE>
|
||||||
|
%<DOUBLE-GRAVE>
|
||||||
|
<BREVE>
|
||||||
|
<CIRCUMFLEX>
|
||||||
|
<DIAERESIS>
|
||||||
|
<DOUBLE-ACUTE>
|
||||||
|
%<TILDE>
|
||||||
|
<DOT>
|
||||||
|
<STROKE>
|
||||||
|
<CEDILLA>
|
||||||
|
<OGONEK>
|
||||||
|
|
||||||
|
%
|
||||||
|
<NS> <NS>;<NS>;<NS>;IGNORE
|
||||||
|
<SP> IGNORE;IGNORE;IGNORE;<SP>
|
||||||
|
<HT> IGNORE;IGNORE;IGNORE;<HT>
|
||||||
|
<VT> IGNORE;IGNORE;IGNORE;<VT>
|
||||||
|
<CR> IGNORE;IGNORE;IGNORE;<CR>
|
||||||
|
<LF> IGNORE;IGNORE;IGNORE;<LF>
|
||||||
|
<FF> IGNORE;IGNORE;IGNORE;<FF>
|
||||||
|
<_> IGNORE;IGNORE;IGNORE;<_>
|
||||||
|
<--> IGNORE;IGNORE;IGNORE;<-->
|
||||||
|
<-> IGNORE;IGNORE;IGNORE;<->
|
||||||
|
<,> IGNORE;IGNORE;IGNORE;<,>
|
||||||
|
<;> IGNORE;IGNORE;IGNORE;<;>
|
||||||
|
<:> IGNORE;IGNORE;IGNORE;<:>
|
||||||
|
<!> IGNORE;IGNORE;IGNORE;<!>
|
||||||
|
<?> IGNORE;IGNORE;IGNORE;<?>
|
||||||
|
<//> IGNORE;IGNORE;IGNORE;<//>
|
||||||
|
<.> IGNORE;IGNORE;IGNORE;<.>
|
||||||
|
<''> IGNORE;IGNORE;IGNORE;<''>
|
||||||
|
<'!> IGNORE;IGNORE;IGNORE;<'!>
|
||||||
|
<'/>> IGNORE;IGNORE;IGNORE;<'/>>
|
||||||
|
<':> IGNORE;IGNORE;IGNORE;<':>
|
||||||
|
<'?> IGNORE;IGNORE;IGNORE;<'?>
|
||||||
|
<',> IGNORE;IGNORE;IGNORE;<',>
|
||||||
|
<'> IGNORE;IGNORE;IGNORE;<'>
|
||||||
|
<"> IGNORE;IGNORE;IGNORE;<">
|
||||||
|
<(> IGNORE;IGNORE;IGNORE;<(>
|
||||||
|
<)> IGNORE;IGNORE;IGNORE;<)>
|
||||||
|
<<(> IGNORE;IGNORE;IGNORE;<<(>
|
||||||
|
<)/>> IGNORE;IGNORE;IGNORE;<)/>>
|
||||||
|
<(!> IGNORE;IGNORE;IGNORE;<(!>
|
||||||
|
<!)> IGNORE;IGNORE;IGNORE;<!)>
|
||||||
|
<SE> IGNORE;IGNORE;IGNORE;<SE>
|
||||||
|
<At> IGNORE;IGNORE;IGNORE;<At>
|
||||||
|
<Cu> IGNORE;IGNORE;IGNORE;<Cu>
|
||||||
|
<DO> IGNORE;IGNORE;IGNORE;<DO>
|
||||||
|
<*> IGNORE;IGNORE;IGNORE;<*>
|
||||||
|
<////> IGNORE;IGNORE;IGNORE;<////>
|
||||||
|
<&> IGNORE;IGNORE;IGNORE;<&>
|
||||||
|
<Nb> IGNORE;IGNORE;IGNORE;<Nb>
|
||||||
|
<%> IGNORE;IGNORE;IGNORE;<%>
|
||||||
|
<+> IGNORE;IGNORE;IGNORE;<+>
|
||||||
|
<-:> IGNORE;IGNORE;IGNORE;<-:>
|
||||||
|
<*X> IGNORE;IGNORE;IGNORE;<*X>
|
||||||
|
<<> IGNORE;IGNORE;IGNORE;<<>
|
||||||
|
<=> IGNORE;IGNORE;IGNORE;<=>
|
||||||
|
</>> IGNORE;IGNORE;IGNORE;</>>
|
||||||
|
<!!> IGNORE;IGNORE;IGNORE;<!!>
|
||||||
|
<DG> IGNORE;IGNORE;IGNORE;<DG>
|
||||||
|
<'<> IGNORE;IGNORE;IGNORE;<'<>
|
||||||
|
<'(> IGNORE;IGNORE;IGNORE;<'(>
|
||||||
|
<'.> IGNORE;IGNORE;IGNORE;<'.>
|
||||||
|
<'0> IGNORE;IGNORE;IGNORE;<'0>
|
||||||
|
<';> IGNORE;IGNORE;IGNORE;<';>
|
||||||
|
<'"> IGNORE;IGNORE;IGNORE;<'">
|
||||||
|
<NU> IGNORE;IGNORE;IGNORE;<NU>
|
||||||
|
<SH> IGNORE;IGNORE;IGNORE;<SH>
|
||||||
|
<SX> IGNORE;IGNORE;IGNORE;<SX>
|
||||||
|
<EX> IGNORE;IGNORE;IGNORE;<EX>
|
||||||
|
<ET> IGNORE;IGNORE;IGNORE;<ET>
|
||||||
|
<EQ> IGNORE;IGNORE;IGNORE;<EQ>
|
||||||
|
<AK> IGNORE;IGNORE;IGNORE;<AK>
|
||||||
|
<BL> IGNORE;IGNORE;IGNORE;<BL>
|
||||||
|
<BS> IGNORE;IGNORE;IGNORE;<BS>
|
||||||
|
<SO> IGNORE;IGNORE;IGNORE;<SO>
|
||||||
|
<SI> IGNORE;IGNORE;IGNORE;<SI>
|
||||||
|
<DL> IGNORE;IGNORE;IGNORE;<DL>
|
||||||
|
<D1> IGNORE;IGNORE;IGNORE;<D1>
|
||||||
|
<D2> IGNORE;IGNORE;IGNORE;<D2>
|
||||||
|
<D3> IGNORE;IGNORE;IGNORE;<D3>
|
||||||
|
<D4> IGNORE;IGNORE;IGNORE;<D4>
|
||||||
|
<NK> IGNORE;IGNORE;IGNORE;<NK>
|
||||||
|
<SY> IGNORE;IGNORE;IGNORE;<SY>
|
||||||
|
<EB> IGNORE;IGNORE;IGNORE;<EB>
|
||||||
|
<CN> IGNORE;IGNORE;IGNORE;<CN>
|
||||||
|
<EM> IGNORE;IGNORE;IGNORE;<EM>
|
||||||
|
<SB> IGNORE;IGNORE;IGNORE;<SB>
|
||||||
|
<EC> IGNORE;IGNORE;IGNORE;<EC>
|
||||||
|
<FS> IGNORE;IGNORE;IGNORE;<FS>
|
||||||
|
<GS> IGNORE;IGNORE;IGNORE;<GS>
|
||||||
|
<RS> IGNORE;IGNORE;IGNORE;<RS>
|
||||||
|
<US> IGNORE;IGNORE;IGNORE;<US>
|
||||||
|
<DT> IGNORE;IGNORE;IGNORE;<DT>
|
||||||
|
<PA> IGNORE;IGNORE;IGNORE;<PA>
|
||||||
|
<HO> IGNORE;IGNORE;IGNORE;<HO>
|
||||||
|
<BH> IGNORE;IGNORE;IGNORE;<BH>
|
||||||
|
<NH> IGNORE;IGNORE;IGNORE;<NH>
|
||||||
|
<IN> IGNORE;IGNORE;IGNORE;<IN>
|
||||||
|
<NL> IGNORE;IGNORE;IGNORE;<NL>
|
||||||
|
<SA> IGNORE;IGNORE;IGNORE;<SA>
|
||||||
|
<ES> IGNORE;IGNORE;IGNORE;<ES>
|
||||||
|
<HS> IGNORE;IGNORE;IGNORE;<HS>
|
||||||
|
<HJ> IGNORE;IGNORE;IGNORE;<HJ>
|
||||||
|
<VS> IGNORE;IGNORE;IGNORE;<VS>
|
||||||
|
<PD> IGNORE;IGNORE;IGNORE;<PD>
|
||||||
|
<PU> IGNORE;IGNORE;IGNORE;<PU>
|
||||||
|
<RI> IGNORE;IGNORE;IGNORE;<RI>
|
||||||
|
<S2> IGNORE;IGNORE;IGNORE;<S2>
|
||||||
|
<S3> IGNORE;IGNORE;IGNORE;<S3>
|
||||||
|
<DC> IGNORE;IGNORE;IGNORE;<DC>
|
||||||
|
<P1> IGNORE;IGNORE;IGNORE;<P1>
|
||||||
|
<P2> IGNORE;IGNORE;IGNORE;<P2>
|
||||||
|
<TS> IGNORE;IGNORE;IGNORE;<TS>
|
||||||
|
<CC> IGNORE;IGNORE;IGNORE;<CC>
|
||||||
|
<MW> IGNORE;IGNORE;IGNORE;<MW>
|
||||||
|
<SG> IGNORE;IGNORE;IGNORE;<SG>
|
||||||
|
<EG> IGNORE;IGNORE;IGNORE;<EG>
|
||||||
|
<SS> IGNORE;IGNORE;IGNORE;<SS>
|
||||||
|
<GC> IGNORE;IGNORE;IGNORE;<GC>
|
||||||
|
<SC> IGNORE;IGNORE;IGNORE;<SC>
|
||||||
|
<CI> IGNORE;IGNORE;IGNORE;<CI>
|
||||||
|
<ST> IGNORE;IGNORE;IGNORE;<ST>
|
||||||
|
<OC> IGNORE;IGNORE;IGNORE;<OC>
|
||||||
|
<PM> IGNORE;IGNORE;IGNORE;<PM>
|
||||||
|
<AC> IGNORE;IGNORE;IGNORE;<AC>
|
||||||
|
UNDEFINED IGNORE;IGNORE;IGNORE
|
||||||
|
|
||||||
|
<0> <0>;<0>;IGNORE;IGNORE
|
||||||
|
<1> <1>;<1>;IGNORE;IGNORE
|
||||||
|
<2> <2>;<2>;IGNORE;IGNORE
|
||||||
|
<3> <3>;<3>;IGNORE;IGNORE
|
||||||
|
<4> <4>;<4>;IGNORE;IGNORE
|
||||||
|
<5> <5>;<5>;IGNORE;IGNORE
|
||||||
|
<6> <6>;<6>;IGNORE;IGNORE
|
||||||
|
<7> <7>;<7>;IGNORE;IGNORE
|
||||||
|
<8> <8>;<8>;IGNORE;IGNORE
|
||||||
|
<9> <9>;<9>;IGNORE;IGNORE
|
||||||
|
|
||||||
|
<A> <A>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<a> <A>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<A'> <A>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<a'> <A>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<A(> <A>;<BREVE>;<CAPITAL>;IGNORE
|
||||||
|
<a(> <A>;<BREVE>;<SMALL>;IGNORE
|
||||||
|
<A/>> <A>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
|
||||||
|
<a/>> <A>;<CIRCUMFLEX>;<SMALL>;IGNORE
|
||||||
|
<A:> <A>;<DIAERESIS>;<CAPITAL>;IGNORE
|
||||||
|
<a:> <A>;<DIAERESIS>;<SMALL>;IGNORE
|
||||||
|
<A;> <A>;<OGONEK>;<CAPITAL>;IGNORE
|
||||||
|
<a;> <A>;<OGONEK>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<B> <B>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<b> <B>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<C> <C>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<c> <C>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<C<> <C>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<c<> <C>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<C'> <C>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<c'> <C>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<C,> <C>;<CEDILLA>;<CAPITAL>;IGNORE
|
||||||
|
<c,> <C>;<CEDILLA>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<D> <D>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<d> <D>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<D<> <D>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<d<> <D>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<D//> <D>;<STROKE>;<CAPITAL>;IGNORE
|
||||||
|
<d//> <D>;<STROKE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<E> <E>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<e> <E>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<E'> <E>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<e'> <E>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<E<> <E>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<e<> <E>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<E:> <E>;<DIAERESIS>;<CAPITAL>;IGNORE
|
||||||
|
<e:> <E>;<DIAERESIS>;<SMALL>;IGNORE
|
||||||
|
<E;> <E>;<OGONEK>;<CAPITAL>;IGNORE
|
||||||
|
<e;> <E>;<OGONEK>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<F> <F>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<f> <F>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<G> <G>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<g> <G>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<H> <H>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<h> <H>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<C-H> <C-H>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<C-h> <C-h>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<c-h> <c-h>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<I> <I>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<i> <I>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<I'> <I>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<i'> <I>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<I/>> <I>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
|
||||||
|
<i/>> <I>;<CIRCUMFLEX>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<J> <J>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<j> <J>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<K> <K>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<k> <K>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<L> <L>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<l> <L>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<L'> <L>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<l'> <L>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<L<> <L>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<l<> <L>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<L//> <L>;<STROKE>;<CAPITAL>;IGNORE
|
||||||
|
<l//> <L>;<STROKE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<M> <M>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<m> <M>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<N> <N>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<n> <N>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<N<> <N>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<n<> <N>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<N'> <N>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<n'> <N>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<O> <O>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<o> <O>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<O'> <O>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<o'> <O>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<O/>> <O>;<CIRCUMFLEX>;<CAPITAL>;IGNORE
|
||||||
|
<o/>> <O>;<CIRCUMFLEX>;<SMALL>;IGNORE
|
||||||
|
<O:> <O>;<DIAERESIS>;<CAPITAL>;IGNORE
|
||||||
|
<o:> <O>;<DIAERESIS>;<SMALL>;IGNORE
|
||||||
|
<O"> <O>;<DOUBLE-ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<o"> <O>;<DOUBLE-ACUTE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<P> <P>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<p> <P>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<Q> <Q>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<q> <Q>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<R> <R>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<r> <R>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<R<> <R>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<r<> <R>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<R'> <R>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<r'> <R>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<S> <S>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<s> <S>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<S<> <S>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<s<> <S>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<S'> <S>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<s'> <S>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<S,> <S>;<CEDILLA>;<CAPITAL>;IGNORE
|
||||||
|
<s,> <S>;<CEDILLA>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<T> <T>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<t> <T>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<T<> <T>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<t<> <T>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<T,> <T>;<CEDILLA>;<CAPITAL>;IGNORE
|
||||||
|
<t,> <T>;<CEDILLA>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<U> <U>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<u> <U>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<U'> <U>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<u'> <U>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<U0> <U>;<RING>;<CAPITAL>;IGNORE
|
||||||
|
<u0> <U>;<RING>;<SMALL>;IGNORE
|
||||||
|
<U:> <U>;<DIAERESIS>;<CAPITAL>;IGNORE
|
||||||
|
<u:> <U>;<DIAERESIS>;<SMALL>;IGNORE
|
||||||
|
<U"> <U>;<DOUBLE-ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<u"> <U>;<DOUBLE-ACUTE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<V> <V>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<v> <V>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<W> <W>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<w> <W>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<X> <X>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<x> <X>;<NONE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<Y> <Y>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<y> <Y>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<Y'> <Y>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<y'> <Y>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
<Z> <Z>;<NONE>;<CAPITAL>;IGNORE
|
||||||
|
<z> <Z>;<NONE>;<SMALL>;IGNORE
|
||||||
|
<Z<> <Z>;<CARON>;<CAPITAL>;IGNORE
|
||||||
|
<z<> <Z>;<CARON>;<SMALL>;IGNORE
|
||||||
|
<Z'> <Z>;<ACUTE>;<CAPITAL>;IGNORE
|
||||||
|
<z'> <Z>;<ACUTE>;<SMALL>;IGNORE
|
||||||
|
<Z.> <Z>;<DOT>;<CAPITAL>;IGNORE
|
||||||
|
<z.> <Z>;<DOT>;<SMALL>;IGNORE
|
||||||
|
|
||||||
|
order_end
|
||||||
|
|
||||||
|
END LC_COLLATE
|
||||||
|
|
||||||
|
% Definice typù znakù
|
||||||
|
|
||||||
|
LC_CTYPE
|
||||||
|
|
||||||
|
digit <0>;<1>;<2>;<3>;<4>;/
|
||||||
|
<5>;<6>;<7>;<8>;<9>
|
||||||
|
|
||||||
|
xdigit <0>;<1>;<2>;<3>;<4>;/
|
||||||
|
<5>;<6>;<7>;<8>;<9>;/
|
||||||
|
<a>;...;<f>;/
|
||||||
|
<A>;...;<F>
|
||||||
|
|
||||||
|
punct <!>;...;<//>;/
|
||||||
|
<:>;...;<At>;/
|
||||||
|
<<(>;...;<'!>;/
|
||||||
|
<(!>;...;<'?>;/
|
||||||
|
<'(>;<Cu>;<SE>;<':>;/
|
||||||
|
<-->;<DG>;<';>;<''>;/
|
||||||
|
<'<>;<',>;<'">;<*X>;/
|
||||||
|
<-:>;<'.>
|
||||||
|
|
||||||
|
blank <SP>;<HT>;<NS>
|
||||||
|
|
||||||
|
space <SP>;<LF>;<VT>;<FF>;/
|
||||||
|
<CR>;<HT>;<NS>
|
||||||
|
|
||||||
|
cntrl <NU>;<SH>;<SX>;<EX>;<ET>;<EQ>;/
|
||||||
|
<AK>;<BL>;<BS>;<HT>;<LF>;<VT>;/
|
||||||
|
<FF>;<CR>;<SO>;<SI>;<DL>;<D1>;/
|
||||||
|
<D2>;<D3>;<D4>;<NK>;<SY>;<EB>;/
|
||||||
|
<CN>;<EM>;<SB>;<EC>;<FS>;<GS>;/
|
||||||
|
<RS>;<US>;<DT>;<PA>;<HO>;<BH>;/
|
||||||
|
<NH>;<IN>;<NL>;<SA>;<ES>;<HS>;/
|
||||||
|
<HJ>;<VS>;<PD>;<PU>;<RI>;<S2>;/
|
||||||
|
<S3>;<DC>;<P1>;<P2>;<TS>;<CC>;/
|
||||||
|
<MW>;<SG>;<EG>;<SS>;<GC>;<SC>;/
|
||||||
|
<CI>;<ST>;<OC>;<PM>;<AC>
|
||||||
|
|
||||||
|
alpha <A>;...;<Z>;/
|
||||||
|
<A;>;/
|
||||||
|
<L//>;/
|
||||||
|
<L<>;/
|
||||||
|
<S'>;/
|
||||||
|
<S<>;/
|
||||||
|
<S,>;/
|
||||||
|
<T<>;/
|
||||||
|
<Z'>;/
|
||||||
|
<Z<>;/
|
||||||
|
<Z.>;/
|
||||||
|
<R'>;/
|
||||||
|
<A'>;/
|
||||||
|
<A/>>;/
|
||||||
|
<A(>;/
|
||||||
|
<A:>;/
|
||||||
|
<L'>;/
|
||||||
|
<C'>;/
|
||||||
|
<C,>;/
|
||||||
|
<C<>;/
|
||||||
|
<E'>;/
|
||||||
|
<E;>;/
|
||||||
|
<E:>;/
|
||||||
|
<E<>;/
|
||||||
|
<I'>;/
|
||||||
|
<I/>>;/
|
||||||
|
<D<>;/
|
||||||
|
<D//>;/
|
||||||
|
<N'>;/
|
||||||
|
<N<>;/
|
||||||
|
<O'>;/
|
||||||
|
<O/>>;/
|
||||||
|
<O">;/
|
||||||
|
<O:>;/
|
||||||
|
<R<>;/
|
||||||
|
<U0>;/
|
||||||
|
<U'>;/
|
||||||
|
<U">;/
|
||||||
|
<U:>;/
|
||||||
|
<Y'>;/
|
||||||
|
<T,>;/
|
||||||
|
<a>;...;<z>;/
|
||||||
|
<a;>;/
|
||||||
|
<l//>;/
|
||||||
|
<l<>;/
|
||||||
|
<s'>;/
|
||||||
|
<s<>;/
|
||||||
|
<s,>;/
|
||||||
|
<t<>;/
|
||||||
|
<z'>;/
|
||||||
|
<z<>;/
|
||||||
|
<z.>;/
|
||||||
|
<ss>;/
|
||||||
|
<r'>;/
|
||||||
|
<a'>;/
|
||||||
|
<a/>>;/
|
||||||
|
<a(>;/
|
||||||
|
<a:>;/
|
||||||
|
<l'>;/
|
||||||
|
<c'>;/
|
||||||
|
<c,>;/
|
||||||
|
<c<>;/
|
||||||
|
<e'>;/
|
||||||
|
<e;>;/
|
||||||
|
<e:>;/
|
||||||
|
<e<>;/
|
||||||
|
<i'>;/
|
||||||
|
<i/>>;/
|
||||||
|
<d<>;/
|
||||||
|
<d//>;/
|
||||||
|
<n'>;/
|
||||||
|
<n<>;/
|
||||||
|
<o'>;/
|
||||||
|
<o/>>;/
|
||||||
|
<o">;/
|
||||||
|
<o:>;/
|
||||||
|
<r<>;/
|
||||||
|
<u0>;/
|
||||||
|
<u'>;/
|
||||||
|
<u">;/
|
||||||
|
<u:>;/
|
||||||
|
<y'>;/
|
||||||
|
<t,>
|
||||||
|
|
||||||
|
upper <A>;...;<Z>;/
|
||||||
|
<A;>;/
|
||||||
|
<L//>;/
|
||||||
|
<L<>;/
|
||||||
|
<S'>;/
|
||||||
|
<S<>;/
|
||||||
|
<S,>;/
|
||||||
|
<T<>;/
|
||||||
|
<Z'>;/
|
||||||
|
<Z<>;/
|
||||||
|
<Z.>;/
|
||||||
|
<R'>;/
|
||||||
|
<A'>;/
|
||||||
|
<A/>>;/
|
||||||
|
<A(>;/
|
||||||
|
<A:>;/
|
||||||
|
<L'>;/
|
||||||
|
<C'>;/
|
||||||
|
<C,>;/
|
||||||
|
<C<>;/
|
||||||
|
<E'>;/
|
||||||
|
<E;>;/
|
||||||
|
<E:>;/
|
||||||
|
<E<>;/
|
||||||
|
<I'>;/
|
||||||
|
<I/>>;/
|
||||||
|
<D<>;/
|
||||||
|
<D//>;/
|
||||||
|
<N'>;/
|
||||||
|
<N<>;/
|
||||||
|
<O'>;/
|
||||||
|
<O/>>;/
|
||||||
|
<O">;/
|
||||||
|
<O:>;/
|
||||||
|
<R<>;/
|
||||||
|
<U0>;/
|
||||||
|
<U'>;/
|
||||||
|
<U">;/
|
||||||
|
<U:>;/
|
||||||
|
<Y'>;/
|
||||||
|
<T,>
|
||||||
|
|
||||||
|
lower <a>;...;<z>;/
|
||||||
|
<a;>;/
|
||||||
|
<l//>;/
|
||||||
|
<l<>;/
|
||||||
|
<s'>;/
|
||||||
|
<s<>;/
|
||||||
|
<s,>;/
|
||||||
|
<t<>;/
|
||||||
|
<z'>;/
|
||||||
|
<z<>;/
|
||||||
|
<z.>;/
|
||||||
|
<ss>;/
|
||||||
|
<r'>;/
|
||||||
|
<a'>;/
|
||||||
|
<a/>>;/
|
||||||
|
<a(>;/
|
||||||
|
<a:>;/
|
||||||
|
<l'>;/
|
||||||
|
<c'>;/
|
||||||
|
<c,>;/
|
||||||
|
<c<>;/
|
||||||
|
<e'>;/
|
||||||
|
<e;>;/
|
||||||
|
<e:>;/
|
||||||
|
<e<>;/
|
||||||
|
<i'>;/
|
||||||
|
<i/>>;/
|
||||||
|
<d<>;/
|
||||||
|
<d//>;/
|
||||||
|
<n'>;/
|
||||||
|
<n<>;/
|
||||||
|
<o'>;/
|
||||||
|
<o/>>;/
|
||||||
|
<o">;/
|
||||||
|
<o:>;/
|
||||||
|
<r<>;/
|
||||||
|
<u0>;/
|
||||||
|
<u'>;/
|
||||||
|
<u">;/
|
||||||
|
<u:>;/
|
||||||
|
<y'>;/
|
||||||
|
<t,>
|
||||||
|
|
||||||
|
|
||||||
|
toupper (<a>,<A>);(<b>,<B>);(<c>,<C>);(<d>,<D>);(<e>,<E>);(<f>,<F>);/
|
||||||
|
(<g>,<G>);(<h>,<H>);(<i>,<I>);(<j>,<J>);(<k>,<K>);(<l>,<L>);/
|
||||||
|
(<m>,<M>);(<n>,<N>);(<o>,<O>);(<p>,<P>);(<q>,<Q>);(<r>,<R>);/
|
||||||
|
(<s>,<S>);(<t>,<T>);(<u>,<U>);(<v>,<V>);(<w>,<W>);(<x>,<X>);/
|
||||||
|
(<y>,<Y>);(<z>,<Z>);/
|
||||||
|
(<a;>,<A;>);/
|
||||||
|
(<l//>,<L//>);/
|
||||||
|
(<l<>,<L<>);/
|
||||||
|
(<s'>,<S'>);/
|
||||||
|
(<s<>,<S<>);/
|
||||||
|
(<s,>,<S,>);/
|
||||||
|
(<t<>,<T<>);/
|
||||||
|
(<z'>,<Z'>);/
|
||||||
|
(<z<>,<Z<>);/
|
||||||
|
(<z.>,<Z.>);/
|
||||||
|
(<r'>,<R'>);/
|
||||||
|
(<a'>,<A'>);/
|
||||||
|
(<a/>>,<A/>>);/
|
||||||
|
(<a(>,<A(>);/
|
||||||
|
(<a:>,<A:>);/
|
||||||
|
(<l'>,<L'>);/
|
||||||
|
(<c'>,<C'>);/
|
||||||
|
(<c,>,<C,>);/
|
||||||
|
(<c<>,<C<>);/
|
||||||
|
(<e'>,<E'>);/
|
||||||
|
(<e;>,<E;>);/
|
||||||
|
(<e:>,<E:>);/
|
||||||
|
(<e<>,<E<>);/
|
||||||
|
(<i'>,<I'>);/
|
||||||
|
(<i/>>,<I/>>);/
|
||||||
|
(<d<>,<D<>);/
|
||||||
|
(<d//>,<D//>);/
|
||||||
|
(<n'>,<N'>);/
|
||||||
|
(<n<>,<N<>);/
|
||||||
|
(<o'>,<O'>);/
|
||||||
|
(<o/>>,<O/>>);/
|
||||||
|
(<o">,<O">);/
|
||||||
|
(<o:>,<O:>);/
|
||||||
|
(<r<>,<R<>);/
|
||||||
|
(<u0>,<U0>);/
|
||||||
|
(<u'>,<U'>);/
|
||||||
|
(<u">,<U">);/
|
||||||
|
(<u:>,<U:>);/
|
||||||
|
(<y'>,<Y'>);/
|
||||||
|
(<t,>,<T,>)
|
||||||
|
|
||||||
|
tolower (<A>,<a>);(<B>,<b>);(<C>,<c>);(<D>,<d>);(<E>,<e>);(<F>,<f>);/
|
||||||
|
(<G>,<g>);(<H>,<h>);(<I>,<i>);(<J>,<j>);(<K>,<k>);(<L>,<l>);/
|
||||||
|
(<M>,<m>);(<N>,<n>);(<O>,<o>);(<P>,<p>);(<Q>,<q>);(<R>,<r>);/
|
||||||
|
(<S>,<s>);(<T>,<t>);(<U>,<u>);(<V>,<v>);(<W>,<w>);(<X>,<x>);/
|
||||||
|
(<Y>,<y>);(<Z>,<z>);/
|
||||||
|
(<A;>,<a;>);/
|
||||||
|
(<L//>,<l//>);/
|
||||||
|
(<L<>,<l<>);/
|
||||||
|
(<S'>,<s'>);/
|
||||||
|
(<S<>,<s<>);/
|
||||||
|
(<S,>,<s,>);/
|
||||||
|
(<T<>,<t<>);/
|
||||||
|
(<Z'>,<z'>);/
|
||||||
|
(<Z<>,<z<>);/
|
||||||
|
(<Z.>,<z.>);/
|
||||||
|
(<R'>,<r'>);/
|
||||||
|
(<A'>,<a'>);/
|
||||||
|
(<A/>>,<a/>>);/
|
||||||
|
(<A(>,<a(>);/
|
||||||
|
(<A:>,<a:>);/
|
||||||
|
(<L'>,<l'>);/
|
||||||
|
(<C'>,<c'>);/
|
||||||
|
(<C,>,<c,>);/
|
||||||
|
(<C<>,<c<>);/
|
||||||
|
(<E'>,<e'>);/
|
||||||
|
(<E;>,<e;>);/
|
||||||
|
(<E:>,<e:>);/
|
||||||
|
(<E<>,<e<>);/
|
||||||
|
(<I'>,<i'>);/
|
||||||
|
(<I/>>,<i/>>);/
|
||||||
|
(<D<>,<d<>);/
|
||||||
|
(<D//>,<d//>);/
|
||||||
|
(<N'>,<n'>);/
|
||||||
|
(<N<>,<n<>);/
|
||||||
|
(<O'>,<o'>);/
|
||||||
|
(<O/>>,<o/>>);/
|
||||||
|
(<O">,<o">);/
|
||||||
|
(<O:>,<o:>);/
|
||||||
|
(<R<>,<r<>);/
|
||||||
|
(<u0>,<U0>);/
|
||||||
|
(<U'>,<u'>);/
|
||||||
|
(<U">,<u">);/
|
||||||
|
(<U:>,<u:>);/
|
||||||
|
(<Y'>,<y'>);/
|
||||||
|
(<T,>,<t,>)
|
||||||
|
|
||||||
|
END LC_CTYPE
|
||||||
|
|
||||||
|
%% LC_MESSAGES
|
||||||
|
%% ekvivalenty yes/no
|
||||||
|
%% -------------------------
|
||||||
|
|
||||||
|
LC_MESSAGES
|
||||||
|
|
||||||
|
yesexpr "<<(><a><A><y><Y><)/>><.><*>"
|
||||||
|
noexpr "<<(><n><N><)/>><.><*>"
|
||||||
|
yesstr "<a><n><o>"
|
||||||
|
nostr "<n><e>"
|
||||||
|
|
||||||
|
END LC_MESSAGES
|
||||||
|
|
||||||
|
%% LC_MONETARY -- jde jen o peníze
|
||||||
|
%% -------------------------------------------------
|
||||||
|
|
||||||
|
LC_MONETARY
|
||||||
|
|
||||||
|
int_curr_symbol "<C><Z><K><SP>"
|
||||||
|
currency_symbol "<K><c<>"
|
||||||
|
mon_decimal_point "<,>"
|
||||||
|
mon_thousands_sep "<SP>"
|
||||||
|
mon_grouping 3;3
|
||||||
|
positive_sign ""
|
||||||
|
negative_sign "<->"
|
||||||
|
int_frac_digits 2
|
||||||
|
frac_digits 2
|
||||||
|
p_cs_precedes 0
|
||||||
|
p_sep_by_space 1
|
||||||
|
n_cs_precedes 0
|
||||||
|
n_sep_by_space 1
|
||||||
|
p_sign_posn 1
|
||||||
|
n_sign_posn 1
|
||||||
|
|
||||||
|
END LC_MONETARY
|
||||||
|
|
||||||
|
%% O èíslech
|
||||||
|
%% --------------
|
||||||
|
|
||||||
|
LC_NUMERIC
|
||||||
|
|
||||||
|
decimal_point "<,>"
|
||||||
|
thousands_sep "<SP>"
|
||||||
|
grouping 3;3
|
||||||
|
|
||||||
|
END LC_NUMERIC
|
||||||
|
|
||||||
|
%% Èas
|
||||||
|
|
||||||
|
LC_TIME
|
||||||
|
|
||||||
|
abday "<N><e>";/
|
||||||
|
"<P><o>";/
|
||||||
|
"<U'><t>";/
|
||||||
|
"<S><t>";/
|
||||||
|
"<C<><t>";/
|
||||||
|
"<P><a'>";/
|
||||||
|
"<S><o>"
|
||||||
|
|
||||||
|
day "<N><e><d><e<><l><e>";/
|
||||||
|
"<P><o><n><d<><e><l><i'>";/
|
||||||
|
"<U'><t><e><r><y'>";/
|
||||||
|
"<S><t><r<><e><d><a>";/
|
||||||
|
"<C<><t><v><r><t><e><k>";/
|
||||||
|
"<P><a'><t><e><k>";/
|
||||||
|
"<S><o><b><o><t><a>"
|
||||||
|
|
||||||
|
abmon "<L><e><d>";/
|
||||||
|
"<U'><n><o>";/
|
||||||
|
"<B><r<><e>";/
|
||||||
|
"<D><u><b>";/
|
||||||
|
"<K><v><e<>";/
|
||||||
|
"<C<><e><r>";/
|
||||||
|
"<C<><n><c>";/
|
||||||
|
"<S><r><p>";/
|
||||||
|
"<Z><a'><r<>";/
|
||||||
|
"<R<><i'><j>";/
|
||||||
|
"<L><i><s>";/
|
||||||
|
"<P><r><o>"
|
||||||
|
|
||||||
|
mon "<L><e><d><e><n>";/
|
||||||
|
"<U'><n><o><r>";/
|
||||||
|
"<B><r<><e><z><e><n>";/
|
||||||
|
"<D><u><b><e><n>";/
|
||||||
|
"<K><v><e<><t><e><n>";/
|
||||||
|
"<C<><e><r><v><e><n>";/
|
||||||
|
"<C<><e><r><v><e><n><e><c>";/
|
||||||
|
"<S><r><p><e><n>";/
|
||||||
|
"<Z><a'><r<><i'>";/
|
||||||
|
"<R<><i'><j><e><n>";/
|
||||||
|
"<L><i><s><t><o><p><a><d>";/
|
||||||
|
"<P><r><o><s><i><n><e><c>"
|
||||||
|
|
||||||
|
|
||||||
|
d_t_fmt "<%><a><SP><%><d><.><SP><%><B><SP><%><Y><SP><%><H><:><%><M><:><%><S><SP><%><Z>"
|
||||||
|
%d_t_fmt "<%><d><.><%><m><.><%><Y><SP><%><T><SP><%><Z>"
|
||||||
|
|
||||||
|
d_fmt "<%><d><.><%><m><.><%><Y>"
|
||||||
|
%d_fmt "<%><d><.><%><m><.><%><Y>"
|
||||||
|
|
||||||
|
t_fmt "<%><H><:><%><M><:><%><S>"
|
||||||
|
%t_fmt "<%><T>"
|
||||||
|
|
||||||
|
t_fmt_ampm "<%><I><:><%><M><:><%><S>"
|
||||||
|
%t_fmt_ampm ""
|
||||||
|
|
||||||
|
%am_pm "am";"pm"
|
||||||
|
am_pm "";""
|
||||||
|
|
||||||
|
% Zde nevím, co následující polo¾ky znamenají
|
||||||
|
% V pøípadì potøeby prosím opravte
|
||||||
|
|
||||||
|
%era "<%><Y>"
|
||||||
|
|
||||||
|
%era_year "<%><y>"
|
||||||
|
|
||||||
|
%alt_digits "<0>";"<1>";"<2>";"<3>";"<4>";/
|
||||||
|
% "<5>";"<6>";"<7>";"<8>"
|
||||||
|
|
||||||
|
%era_d_fmt "<%><e><SP><%><B><SP><%><Y>"
|
||||||
|
|
||||||
|
END LC_TIME
|
||||||
|
|
||||||
|
%% END OF LOCALIZATION FILE for cs_CZ.ISO-8859-2
|
||||||
|
%% Konec lokalizaèního souboru pro èeské prostøedí
|
@ -2,17 +2,18 @@ comment_char %
|
|||||||
escape_char /
|
escape_char /
|
||||||
%
|
%
|
||||||
% Croatian Language Locale for Croatia
|
% Croatian Language Locale for Croatia
|
||||||
% Source: USM/MZT
|
% Source: CARNet/SRCE
|
||||||
% Address: Kotnikova 6,
|
% Address: Josipa Marohnica bb
|
||||||
% Ljubljana, Slovenia
|
% Zagreb, Croatia
|
||||||
% Contact: Borka Jerman-Blaz<ic<
|
% Contact: Tomislav Vujec
|
||||||
% Email: jerman-blazic@ijs.si
|
% Email: Tomislav.Vujec@CARNet.hr
|
||||||
% Tel: +38 - 61 - 653225
|
% Tel: +385-1-616-41-94
|
||||||
% Fax: none
|
% Fax: +385-1-616-41-94
|
||||||
|
% Based on original serbo-croate locale by Borka Jerman Blaz<ic<
|
||||||
% Language: hr
|
% Language: hr
|
||||||
% Territory: HR
|
% Territory: HR
|
||||||
% Revision: 4.3
|
% Revision: 1.0
|
||||||
% Date: 1996-10-15
|
% Date: 1997-04-22
|
||||||
% Application: general
|
% Application: general
|
||||||
% Users: general
|
% Users: general
|
||||||
% Repertoiremap: mnemonic,ds
|
% Repertoiremap: mnemonic,ds
|
||||||
@ -2163,15 +2164,15 @@ noexpr "<<(><n><N><)/>><*><.>"
|
|||||||
END LC_MESSAGES
|
END LC_MESSAGES
|
||||||
|
|
||||||
LC_MONETARY
|
LC_MONETARY
|
||||||
int_curr_symbol "<H><R><D><SP>"
|
int_curr_symbol "<H><R><K><SP>"
|
||||||
currency_symbol "<H><R><D>"
|
currency_symbol "<k><n>"
|
||||||
mon_decimal_point "<,>"
|
mon_decimal_point "<.>"
|
||||||
mon_thousands_sep "<SP>"
|
mon_thousands_sep "<SP>"
|
||||||
mon_grouping 3;3
|
mon_grouping 3;3
|
||||||
positive_sign ""
|
positive_sign ""
|
||||||
negative_sign "<->"
|
negative_sign "<->"
|
||||||
int_frac_digits 0
|
int_frac_digits 2
|
||||||
frac_digits 0
|
frac_digits 2
|
||||||
p_cs_precedes 1
|
p_cs_precedes 1
|
||||||
p_sep_by_space 1
|
p_sep_by_space 1
|
||||||
n_cs_precedes 1
|
n_cs_precedes 1
|
||||||
@ -2181,44 +2182,44 @@ n_sign_posn 1
|
|||||||
END LC_MONETARY
|
END LC_MONETARY
|
||||||
|
|
||||||
LC_NUMERIC
|
LC_NUMERIC
|
||||||
decimal_point "<,>"
|
decimal_point "<.>"
|
||||||
thousands_sep ""
|
thousands_sep ""
|
||||||
grouping 0;0
|
grouping 0;0
|
||||||
END LC_NUMERIC
|
END LC_NUMERIC
|
||||||
|
|
||||||
LC_TIME
|
LC_TIME
|
||||||
|
|
||||||
abday "<n><e><d>";"<p><o><n>";/
|
abday "<N><e><d>";"<P><o><n>";/
|
||||||
"<t><o><r>";"<s><r><e>";/
|
"<U><t><o>";"<S><r><i>";/
|
||||||
"<c<><e><t>";"<p><e><t>";/
|
"<C<><e><t>";"<P><e><t>";/
|
||||||
"<s><u><b>"
|
"<S><u><b>"
|
||||||
day "<n><e><d><e><l><j><a>";/
|
day "<N><e><d><j><e><l><j><a>";/
|
||||||
"<p><o><n><e><d><e><l><j><a><k>";/
|
"<P><o><n><e><d><j><e><l><j><a><k>";/
|
||||||
"<u><t><o><r><a><k>";/
|
"<U><t><o><r><a><k>";/
|
||||||
"<s><r><e><d><a>";/
|
"<S><r><i><j><e><d><a>";/
|
||||||
"<c<><e><t><v><r><t><a><k>";/
|
"<C<><e><t><v><r><t><a><k>";/
|
||||||
"<p><e><t><a><k>";/
|
"<P><e><t><a><k>";/
|
||||||
"<s><u><b><o><t><a>"
|
"<S><u><b><o><t><a>"
|
||||||
abmon "<j><a><n>";"<f><e><b>";/
|
abmon "<S><i><j>";"<V><e><l>";/
|
||||||
"<m><a><r>";"<a><p><r>";/
|
"<O><z><u>";"<T><r><a>";/
|
||||||
"<m><a><j>";"<j><u><n>";/
|
"<S><v><i>";"<L><i><p>";/
|
||||||
"<j><u><l>";"<a><u><g>";/
|
"<S><r><p>";"<K><o><l>";/
|
||||||
"<s><e><p>";"<o><k><t>";/
|
"<R><u><j>";"<L><i><s>";/
|
||||||
"<n><o><v>";"<d><e><c>"
|
"<S><t><u>";"<P><r><o>"
|
||||||
mon "<j><a><n><u><a><r>";/
|
mon "<S><i><j><e><c'><a><n><j>";/
|
||||||
"<f><e><b><r><u><a><r>";/
|
"<V><e><l><j><a><c<><a>";/
|
||||||
"<m><a><r><t>";/
|
"<O><z<><u><j><a><k>";/
|
||||||
"<a><p><r><i><l>";/
|
"<T><r><a><v><a><n><j>";/
|
||||||
"<m><a><j>";/
|
"<S><v><i><b><a><n><j>";/
|
||||||
"<j><u><n>";/
|
"<L><i><p><a><n><j>";/
|
||||||
"<j><u><l>";/
|
"<S><r><p><a><n><j>";/
|
||||||
"<a><u><g><u><s><t>";/
|
"<K><o><l><o><v><o><z>";/
|
||||||
"<s><e><p><t><e><m><b><a><r>";/
|
"<R><u><j><a><n>";/
|
||||||
"<o><k><t><o><b><a><r>";/
|
"<L><i><s><t><o><p><a><d>";/
|
||||||
"<n><o><v><e><m><b><a><r>";/
|
"<S><t><u><d><e><n><i>";/
|
||||||
"<d><e><c><e><m><b><a><r>"
|
"<P><r><o><s><i><n><a><c>"
|
||||||
d_t_fmt "<%><a><SP><%><d><SP><%><b><SP><%><Y><SP><%><T>"
|
d_t_fmt "<%><a><SP><%><d><SP><%><b><SP><%><Y><SP><%><T>"
|
||||||
d_fmt "<%><Y><-><%><m><-><%><d>"
|
d_fmt "<%><d><.><%><m><.><%><y>"
|
||||||
t_fmt "<%><T>"
|
t_fmt "<%><T>"
|
||||||
am_pm "";""
|
am_pm "";""
|
||||||
t_fmt_ampm ""
|
t_fmt_ampm ""
|
||||||
|
@ -29,11 +29,14 @@ routines := getutent getutent_r getutid getutline getutid_r getutline_r \
|
|||||||
|
|
||||||
others = utmpd
|
others = utmpd
|
||||||
install-sbin = utmpd
|
install-sbin = utmpd
|
||||||
utmpd-routines := connection database error request xtmp
|
utmpd-routines := utmpd connection database error request xtmp
|
||||||
|
extra-objs := $(utmpd-routines:=.o)
|
||||||
|
|
||||||
distribute := utmp-private.h utmpd/xtmp.h utmpd/utmpd.h utmpd/utmpd-private.h
|
distribute := utmp-private.h programs/xtmp.h programs/utmpd.h \
|
||||||
|
programs/utmpd-private.h $(utmpd-routines:%=programs/%.c)
|
||||||
|
|
||||||
vpath %.c utmpd
|
subdir-dirs = programs
|
||||||
|
vpath %.c programs
|
||||||
|
|
||||||
# Build the -lutil library with these extra functions.
|
# Build the -lutil library with these extra functions.
|
||||||
extra-libs := libutil
|
extra-libs := libutil
|
||||||
|
@ -77,12 +77,13 @@ other symbols provided by the library. This list also states which
|
|||||||
standards each function or symbol comes from.
|
standards each function or symbol comes from.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* ISO C:: The international standard for the C
|
* ISO C:: The international standard for the C
|
||||||
programming language.
|
programming language.
|
||||||
* POSIX:: The ISO/IEC 9945 (aka IEEE 1003) standards
|
* POSIX:: The ISO/IEC 9945 (aka IEEE 1003) standards
|
||||||
for operating systems.
|
for operating systems.
|
||||||
* Berkeley Unix:: BSD and SunOS.
|
* Berkeley Unix:: BSD and SunOS.
|
||||||
* SVID:: The System V Interface Description.
|
* SVID:: The System V Interface Description.
|
||||||
|
* XPG:: The X/Open Portability Guide.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node ISO C, POSIX, , Standards and Portability
|
@node ISO C, POSIX, , Standards and Portability
|
||||||
@ -118,18 +119,22 @@ differences between @w{ISO C} and older dialects. It gives advice on how
|
|||||||
to write programs to work portably under multiple C dialects, but does
|
to write programs to work portably under multiple C dialects, but does
|
||||||
not aim for completeness.
|
not aim for completeness.
|
||||||
|
|
||||||
|
|
||||||
@node POSIX, Berkeley Unix, ISO C, Standards and Portability
|
@node POSIX, Berkeley Unix, ISO C, Standards and Portability
|
||||||
@subsection POSIX (The Portable Operating System Interface)
|
@subsection POSIX (The Portable Operating System Interface)
|
||||||
@cindex POSIX
|
@cindex POSIX
|
||||||
@cindex POSIX.1
|
@cindex POSIX.1
|
||||||
@cindex IEEE Std 1003.1
|
@cindex IEEE Std 1003.1
|
||||||
|
@cindex ISO/IEC 9945-1
|
||||||
@cindex POSIX.2
|
@cindex POSIX.2
|
||||||
@cindex IEEE Std 1003.2
|
@cindex IEEE Std 1003.2
|
||||||
|
@cindex ISO/IEC 9945-2
|
||||||
|
|
||||||
The GNU library is also compatible with the IEEE @dfn{POSIX} family of
|
The GNU library is also compatible with the ISO @dfn{POSIX} family of
|
||||||
standards, known more formally as the @dfn{Portable Operating System
|
standards, known more formally as the @dfn{Portable Operating System
|
||||||
Interface for Computer Environments}. POSIX is derived mostly from
|
Interface for Computer Environments} (ISO/IEC 9945). They were also
|
||||||
various versions of the Unix operating system.
|
published as ANSI/IEEE Std 1003. POSIX is derived mostly from various
|
||||||
|
versions of the Unix operating system.
|
||||||
|
|
||||||
The library facilities specified by the POSIX standards are a superset
|
The library facilities specified by the POSIX standards are a superset
|
||||||
of those required by @w{ISO C}; POSIX specifies additional features for
|
of those required by @w{ISO C}; POSIX specifies additional features for
|
||||||
@ -141,14 +146,14 @@ programming language support which can run in many diverse operating
|
|||||||
system environments.@refill
|
system environments.@refill
|
||||||
|
|
||||||
The GNU C library implements all of the functions specified in
|
The GNU C library implements all of the functions specified in
|
||||||
@cite{IEEE Std 1003.1-1990, the POSIX System Application Program
|
@cite{ISO/IEC 9945-1:1996, the POSIX System Application Program
|
||||||
Interface}, commonly referred to as POSIX.1. The primary extensions to
|
Interface}, commonly referred to as POSIX.1. The primary extensions to
|
||||||
the @w{ISO C} facilities specified by this standard include file system
|
the @w{ISO C} facilities specified by this standard include file system
|
||||||
interface primitives (@pxref{File System Interface}), device-specific
|
interface primitives (@pxref{File System Interface}), device-specific
|
||||||
terminal control functions (@pxref{Low-Level Terminal Interface}), and
|
terminal control functions (@pxref{Low-Level Terminal Interface}), and
|
||||||
process control functions (@pxref{Processes}).
|
process control functions (@pxref{Processes}).
|
||||||
|
|
||||||
Some facilities from @cite{IEEE Std 1003.2-1992, the POSIX Shell and
|
Some facilities from @cite{ISO/IEC 9945-2:1993, the POSIX Shell and
|
||||||
Utilities standard} (POSIX.2) are also implemented in the GNU library.
|
Utilities standard} (POSIX.2) are also implemented in the GNU library.
|
||||||
These include utilities for dealing with regular expressions and other
|
These include utilities for dealing with regular expressions and other
|
||||||
pattern matching facilities (@pxref{Pattern Matching}).
|
pattern matching facilities (@pxref{Pattern Matching}).
|
||||||
@ -186,7 +191,7 @@ The BSD facilities include symbolic links (@pxref{Symbolic Links}), the
|
|||||||
@code{select} function (@pxref{Waiting for I/O}), the BSD signal
|
@code{select} function (@pxref{Waiting for I/O}), the BSD signal
|
||||||
functions (@pxref{BSD Signal Handling}), and sockets (@pxref{Sockets}).
|
functions (@pxref{BSD Signal Handling}), and sockets (@pxref{Sockets}).
|
||||||
|
|
||||||
@node SVID, , Berkeley Unix, Standards and Portability
|
@node SVID, XPG, Berkeley Unix, Standards and Portability
|
||||||
@subsection SVID (The System V Interface Description)
|
@subsection SVID (The System V Interface Description)
|
||||||
@cindex SVID
|
@cindex SVID
|
||||||
@cindex System V Unix
|
@cindex System V Unix
|
||||||
@ -196,14 +201,36 @@ The @dfn{System V Interface Description} (SVID) is a document describing
|
|||||||
the AT&T Unix System V operating system. It is to some extent a
|
the AT&T Unix System V operating system. It is to some extent a
|
||||||
superset of the POSIX standard (@pxref{POSIX}).
|
superset of the POSIX standard (@pxref{POSIX}).
|
||||||
|
|
||||||
The GNU C library defines some of the facilities required by the SVID
|
The GNU C library defines most of the facilities required by the SVID
|
||||||
that are not also required by the @w{ISO C} or POSIX standards, for
|
that are not also required by the @w{ISO C} or POSIX standards, for
|
||||||
compatibility with System V Unix and other Unix systems (such as
|
compatibility with System V Unix and other Unix systems (such as
|
||||||
SunOS) which include these facilities. However, many of the more
|
SunOS) which include these facilities. However, many of the more
|
||||||
obscure and less generally useful facilities required by the SVID are
|
obscure and less generally useful facilities required by the SVID are
|
||||||
not included. (In fact, Unix System V itself does not provide them all.)
|
not included. (In fact, Unix System V itself does not provide them all.)
|
||||||
|
|
||||||
@c !!! mention sysv ipc/shmem when it is there.
|
The supported facilities from System V include the methods for
|
||||||
|
inter-process communication and shared memory, the @code{hsearch} and
|
||||||
|
@code{drand48} families of functions, @code{fmtmsg} and several of the
|
||||||
|
mathematical functions.
|
||||||
|
|
||||||
|
@node XPG, , SVID, Standards and Portability
|
||||||
|
@subsection XPG (The X/Open Portability Guide)
|
||||||
|
|
||||||
|
The X/Open Portability Guide, published by the X/Open Company, Ltd., is
|
||||||
|
a more general standard than POSIX. X/Open owns the Unix copyright and
|
||||||
|
the XPG specifies the requirements for systems which are intended to be
|
||||||
|
a Unix system.
|
||||||
|
|
||||||
|
The GNU C library complies to the X/Open Portability Guide, Issue 4.2,
|
||||||
|
with the with all extensions common to XSI (X/Open System Interface)
|
||||||
|
compliant systems and also all X/Open UNIX extensions.
|
||||||
|
|
||||||
|
The additions on top of POSIX are mainly derived from functionality
|
||||||
|
available in @w{System V} and BSD systems. Some of the really bad
|
||||||
|
mistakes in @w{System V} systems were corrected, though. Since
|
||||||
|
fulfilling the XPG standard with the Unix extensions is a
|
||||||
|
precondition for getting the Unix brand chances are good that the
|
||||||
|
functionality is available on commercial systems.
|
||||||
|
|
||||||
|
|
||||||
@node Using the Library, Roadmap to the Manual, Standards and Portability, Introduction
|
@node Using the Library, Roadmap to the Manual, Standards and Portability, Introduction
|
||||||
@ -360,7 +387,7 @@ and also provides a macro definition for @code{abs}. Then, in:
|
|||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
int f (int *i) @{ return (abs (++*i)); @}
|
int f (int *i) @{ return abs (++*i); @}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
@ -370,10 +397,10 @@ to a function and not a macro.
|
|||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
int g (int *i) @{ return ((abs)(++*i)); @}
|
int g (int *i) @{ return (abs) (++*i); @}
|
||||||
|
|
||||||
#undef abs
|
#undef abs
|
||||||
int h (int *i) @{ return (abs (++*i)); @}
|
int h (int *i) @{ return abs (++*i); @}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
Since macro definitions that double for a function behave in
|
Since macro definitions that double for a function behave in
|
||||||
|
@ -33,6 +33,7 @@ too.
|
|||||||
* Finding Tokens in a String:: Splitting a string into tokens by looking
|
* Finding Tokens in a String:: Splitting a string into tokens by looking
|
||||||
for delimiters.
|
for delimiters.
|
||||||
* Encode Binary Data:: Encoding and Decoding of Binary Data.
|
* Encode Binary Data:: Encoding and Decoding of Binary Data.
|
||||||
|
* Argz and Envz Vectors:: Null-separated string vectors.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Representation of Strings
|
@node Representation of Strings
|
||||||
@ -1200,3 +1201,227 @@ sure the buffer pointer is update after each call to @code{a64l} since
|
|||||||
this function does not modify the buffer pointer. Every call consumes 6
|
this function does not modify the buffer pointer. Every call consumes 6
|
||||||
characters.
|
characters.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@node Argz and Envz Vectors
|
||||||
|
@section Argz and Envz Vectors
|
||||||
|
|
||||||
|
@cindex argz vectors
|
||||||
|
@cindex string vectors, null-character separated
|
||||||
|
@cindex argument vectors, null-character separated
|
||||||
|
@dfn{argz vectors} are vectors of strings in a contiguous block of
|
||||||
|
memory, each element separated from its neighbors by null-characters
|
||||||
|
(@code{'\0'}).
|
||||||
|
|
||||||
|
@cindex envz vectors
|
||||||
|
@cindex environment vectors, null-character separated
|
||||||
|
@dfn{Envz vectors} are an extension of argz vectors where each element is a
|
||||||
|
name-value pair, separated by a @code{'='} character (as in a unix
|
||||||
|
environment).
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Argz Functions:: Operations on argz vectors.
|
||||||
|
* Envz Functions:: Additional operations on environment vectors.
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node Argz Functions, Envz Functions, , Argz and Envz Vectors
|
||||||
|
@subsection Argz Functions
|
||||||
|
|
||||||
|
Each argz vector is represented by a pointer to the first element, of
|
||||||
|
type @code{char *}, and a size, of type @code{size_t}, both of which can
|
||||||
|
be initialized to @code{0} to represent an empty argz vector. All argz
|
||||||
|
functions accept either a pointer and a size argument, or pointers to
|
||||||
|
them, if they will be modified.
|
||||||
|
|
||||||
|
The argz functions use @code{malloc}/@code{realloc} to allocate/grow
|
||||||
|
argz vectors, and so any argz vector creating using these functions may
|
||||||
|
be freed by using @code{free}; conversely, any argz function that may
|
||||||
|
grow a string expects that string to have been allocated using
|
||||||
|
@code{malloc} (those argz functions that only examine their arguments or
|
||||||
|
modify them in place will work on any sort of memory).
|
||||||
|
@xref{Unconstrained Allocation}.
|
||||||
|
|
||||||
|
All argz functions that do memory allocation have a return type of
|
||||||
|
@code{error_t}, and return @code{0} for success, and @code{ENOMEM} if an
|
||||||
|
allocation error occurs.
|
||||||
|
|
||||||
|
@pindex argz.h
|
||||||
|
These functions are declared in the standard include file @file{argz.h}.
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_create (char *const @var{argv}[], char **@var{argz}, size_t *@var{argz_len})
|
||||||
|
The @code{argz_create} function converts the unix-style argument vector
|
||||||
|
@var{argv} (a vector of pointers to normal C strings, terminated by
|
||||||
|
@code{(char *)0}; @pxref{Program Arguments}) into an argz vector with
|
||||||
|
the same elements, which is returned in @var{argz} and @var{argz_len}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_create_sep (const char *@var{string}, int @var{sep}, char **@var{argz}, size_t *@var{argz_len})
|
||||||
|
The @code{argz_create_sep} function converts the null-terminated string
|
||||||
|
@var{string} into an argz vector (returned in @var{argz} and
|
||||||
|
@var{argz_len}) by splitting it into elements at every occurance of the
|
||||||
|
character @var{sep}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {size_t} argz_count (const char *@var{argz}, size_t @var{arg_len})
|
||||||
|
Returns the number of elements in the argz vector @var{argz} and
|
||||||
|
@var{argz_len}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {void} argz_extract (char *@var{argz}, size_t @var{argz_len}, char **@var{argv})
|
||||||
|
The @code{argz_extract} function converts the argz vector @var{argz} and
|
||||||
|
@var{argz_len} into a unix-style argument vector stored in @var{argv},
|
||||||
|
by putting pointers to every element in @var{argz} into successive
|
||||||
|
positions in @var{argv}, followed by a terminator of @code{0}.
|
||||||
|
@var{Argv} must be pre-allocated with enough space to hold all the
|
||||||
|
elements in @var{argz} plus the terminating @code{(char *)0}
|
||||||
|
(@code{(argz_count (@var{argz}, @var{argz_len}) + 1) * sizeof (char *)}
|
||||||
|
bytes should be enough). Note that the string pointers stored into
|
||||||
|
@var{argv} point into @var{argz}---they are not copies---and so
|
||||||
|
@var{argz} must be copied if it will be changed while @var{argv} is
|
||||||
|
still active. This function is useful for passing the elements in
|
||||||
|
@var{argz} to an exec function (@pxref{Executing a File}).
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {void} argz_stringify (char *@var{argz}, size_t @var{len}, int @var{sep})
|
||||||
|
The @code{argz_stringify} converts @var{argz} into a normal string with
|
||||||
|
the elements separated by the character @var{sep}, by replacing each
|
||||||
|
@code{'\0'} inside @var{argz} (except the last one, which terminates the
|
||||||
|
string) with @var{sep}. This is handy for printing @var{argz} in a
|
||||||
|
readable manner.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_add (char **@var{argz}, size_t *@var{argz_len}, const char *@var{str})
|
||||||
|
The @code{argz_add} function adds the string @var{str} to the end of the
|
||||||
|
argz vector @code{*@var{argz}}, and updates @code{*@var{argz}} and
|
||||||
|
@code{*@var{argz_len}} accordingly.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_add_sep (char **@var{argz}, size_t *@var{argz_len}, const char *@var{str}, int @var{delim})
|
||||||
|
The @code{argz_add_sep} function is similar to @code{argz_add}, but
|
||||||
|
@var{str} is split into separate elements in the result at occurances of
|
||||||
|
the character @var{delim}. This is useful, for instance, for
|
||||||
|
adding the components of a unix search path to an argz vector, by using
|
||||||
|
a value of @code{':'} for @var{delim}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_append (char **@var{argz}, size_t *@var{argz_len}, const char *@var{buf}, size_t @var{buf_len})
|
||||||
|
The @code{argz_append} function appends @var{buf_len} bytes starting at
|
||||||
|
@var{buf} to the argz vector @code{*@var{argz}}, reallocating
|
||||||
|
@code{*@var{argz}} to accommodate it, and adding @var{buf_len} to
|
||||||
|
@code{*@var{argz_len}}.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_delete (char **@var{argz}, size_t *@var{argz_len}, char *@var{entry})
|
||||||
|
If @var{entry} points to the beginning of one of the elements in the
|
||||||
|
argz vector @code{*@var{argz}}, the @code{argz_delete} function will
|
||||||
|
remove this entry and reallocate @code{*@var{argz}}, modifying
|
||||||
|
@code{*@var{argz}} and @code{*@var{argz_len}} accordingly. Note that as
|
||||||
|
destructive argz functions usually reallocate their argz argument,
|
||||||
|
pointers into argz vectors such as @var{entry} will then become invalid.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} argz_insert (char **@var{argz}, size_t *@var{argz_len}, char *@var{before}, const char *@var{entry})
|
||||||
|
The @code{argz_insert} function inserts the string @var{entry} into the
|
||||||
|
argz vector @code{*@var{argz}} at a point just before the existing
|
||||||
|
element pointed to by @var{before}, reallocating @code{*@var{argz}} and
|
||||||
|
updating @code{*@var{argz}} and @code{*@var{argz_len}}. If @var{before}
|
||||||
|
is @code{0}, @var{entry} is added to the end instead (as if by
|
||||||
|
@code{argz_add}). Since the first element is in fact the same as
|
||||||
|
@code{*@var{argz}}, passing in @code{*@var{argz}} as the value of
|
||||||
|
@var{before} will result in @var{entry} being inserted at the beginning.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {char *} argz_next (char *@var{argz}, size_t @var{argz_len}, const char *@var{entry})
|
||||||
|
The @code{argz_next} function provides a convenient way of iterating
|
||||||
|
over the elements in the argz vector @var{argz}. It returns a pointer
|
||||||
|
to the next element in @var{argz} after the element @var{entry}, or
|
||||||
|
@code{0} if there are no elements following @var{entry}. If @var{entry}
|
||||||
|
is @code{0}, the first element of @var{argz} is returned.
|
||||||
|
|
||||||
|
This behavior suggests two styles of iteration:
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
char *entry = 0;
|
||||||
|
while ((entry = argz_next (@var{argz}, @var{argz_len}, entry)))
|
||||||
|
@var{action};
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
(the double parentheses are necessary to make some C compilers shut up
|
||||||
|
about what they consider a questionable @code{while}-test) and:
|
||||||
|
|
||||||
|
@smallexample
|
||||||
|
char *entry;
|
||||||
|
for (entry = @var{argz};
|
||||||
|
entry;
|
||||||
|
entry = argz_next (@var{argz}, @var{argz_len}, entry))
|
||||||
|
@var{action};
|
||||||
|
@end smallexample
|
||||||
|
|
||||||
|
Note that the latter depends on @var{argz} having a value of @code{0} if
|
||||||
|
it is empty (rather than a pointer to an empty block of memory); this
|
||||||
|
invariant is maintained for argz vectors created by the functions here.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@node Envz Functions, , Argz Functions, Argz and Envz Vectors
|
||||||
|
@subsection Envz Functions
|
||||||
|
|
||||||
|
Envz vectors are just argz vectors with additional constraints on the form
|
||||||
|
of each element; as such, argz functions can also be used on them, where it
|
||||||
|
makes sense.
|
||||||
|
|
||||||
|
Each element in an envz vector is a name-value pair, separated by a @code{'='}
|
||||||
|
character; if multiple @code{'='} characters are present in an element, those
|
||||||
|
after the first are considered part of the value, and treated like all other
|
||||||
|
non-@code{'\0'} characters.
|
||||||
|
|
||||||
|
If @emph{no} @code{'='} characters are present in an element, that element is
|
||||||
|
considered the name of a ``null'' entry, as distinct from an entry with an
|
||||||
|
empty value: @code{envz_get} will return @code{0} if given the name of null
|
||||||
|
entry, whereas an entry with an empty value would result in a value of
|
||||||
|
@code{""}; @code{envz_entry} will still find such entries, however. Null
|
||||||
|
entries can be removed with @code{envz_strip} function.
|
||||||
|
|
||||||
|
As with argz functions, envz functions that may allocate memory (and thus
|
||||||
|
fail) have a return type of @code{error_t}, and return either @code{0} or
|
||||||
|
@code{ENOMEM}.
|
||||||
|
|
||||||
|
@pindex envz.h
|
||||||
|
These functions are declared in the standard include file @file{envz.h}.
|
||||||
|
|
||||||
|
@deftypefun {char *} envz_entry (const char *@var{envz}, size_t @var{envz_len}, const char *@var{name})
|
||||||
|
The @code{envz_entry} function finds the entry in @var{envz} with the name
|
||||||
|
@var{name}, and returns a pointer to the whole entry---that is, the argz
|
||||||
|
element which begins with @var{name} followed by a @code{'='} character. If
|
||||||
|
there is no entry with that name, @code{0} is returned.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {char *} envz_get (const char *@var{envz}, size_t @var{envz_len}, const char *@var{name})
|
||||||
|
The @code{envz_get} function finds the entry in @var{envz} with the name
|
||||||
|
@var{name} (like @code{envz_entry}), and returns a pointer to the value
|
||||||
|
portion of that entry (following the @code{'='}). If there is no entry with
|
||||||
|
that name (or only a null entry), @code{0} is returned.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} envz_add (char **@var{envz}, size_t *@var{envz_len}, const char *@var{name}, const char *@var{value})
|
||||||
|
The @code{envz_add} function adds an entry to @code{*@var{envz}}
|
||||||
|
(updating @code{*@var{envz}} and @code{*@var{envz_len}}) with the name
|
||||||
|
@var{name}, and value @var{value}. If an entry with the same name
|
||||||
|
already exists in @var{envz}, it is removed first. If @var{value} is
|
||||||
|
@code{0}, then the new entry will the special null type of entry
|
||||||
|
(mentioned above).
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {error_t} envz_merge (char **@var{envz}, size_t *@var{envz_len}, const char *@var{envz2}, size_t @var{envz2_len}, int @var{override})
|
||||||
|
The @code{envz_merge} function adds each entry in @var{envz2} to @var{envz},
|
||||||
|
as if with @code{envz_add}, updating @code{*@var{envz}} and
|
||||||
|
@code{*@var{envz_len}}. If @var{override} is true, then values in @var{envz2}
|
||||||
|
will supersede those with the same name in @var{envz}, otherwise not.
|
||||||
|
|
||||||
|
Null entries are treated just like other entries in this respect, so a null
|
||||||
|
entry in @var{envz} can prevent an entry of the same name in @var{envz2} from
|
||||||
|
being added to @var{envz}, if @var{override} is false.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
@deftypefun {void} envz_strip (char **@var{envz}, size_t *@var{envz_len})
|
||||||
|
The @code{envz_strip} function removes any null entries from @var{envz},
|
||||||
|
updating @code{*@var{envz}} and @code{*@var{envz_len}}.
|
||||||
|
@end deftypefun
|
||||||
|
@ -33,6 +33,9 @@ extra-libs-others := $(extra-libs)
|
|||||||
md5-routines := crypt-entry md5-crypt md5
|
md5-routines := crypt-entry md5-crypt md5
|
||||||
libcrypt-routines := $(md5-routines)
|
libcrypt-routines := $(md5-routines)
|
||||||
|
|
||||||
|
onlymd5-routines := onlymd5-entry md5-crypt md5
|
||||||
|
distribute += onlymd5-entry
|
||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
rpath-link := $(common-objpfx)md5-crypt:$(rpath-link)
|
rpath-link := $(common-objpfx)md5-crypt:$(rpath-link)
|
||||||
@ -60,7 +63,7 @@ endif
|
|||||||
|
|
||||||
define o-iterator-doit
|
define o-iterator-doit
|
||||||
$(objpfx)$(patsubst %,$(libtype$o),md5crypt): \
|
$(objpfx)$(patsubst %,$(libtype$o),md5crypt): \
|
||||||
$(md5-routines:%=$(objpfx)%$o); $$(build-extra-lib)
|
$(onlymd5-routines:%=$(objpfx)%$o); $$(build-extra-lib)
|
||||||
endef
|
endef
|
||||||
object-suffixes-left = $(object-suffixes)
|
object-suffixes-left = $(object-suffixes)
|
||||||
include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes))
|
include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes))
|
||||||
@ -69,3 +72,4 @@ include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes))
|
|||||||
# This ensures they will load libc.so for needed symbols if loaded by
|
# This ensures they will load libc.so for needed symbols if loaded by
|
||||||
# a statically-linked program that hasn't already loaded it.
|
# a statically-linked program that hasn't already loaded it.
|
||||||
$(objpfx)libcrypt.so: $(common-objpfx)libc.so
|
$(objpfx)libcrypt.so: $(common-objpfx)libc.so
|
||||||
|
$(objpfx)libmd5crypt.so: $(common-objpfx)libc.so
|
||||||
|
@ -37,8 +37,10 @@ static const char b64t[64] =
|
|||||||
|
|
||||||
|
|
||||||
/* Prototypes for local functions. */
|
/* Prototypes for local functions. */
|
||||||
extern char *md5_crypt_r __P ((const char *key, const char *salt, char *buffer,
|
extern char *__md5_crypt_r __P ((const char *key, const char *salt,
|
||||||
int buflen));
|
char *buffer, int buflen));
|
||||||
|
extern char *md5_crypt_r __P ((const char *key, const char *salt,
|
||||||
|
char *buffer, int buflen));
|
||||||
extern char *md5_crypt __P ((const char *key, const char *salt));
|
extern char *md5_crypt __P ((const char *key, const char *salt));
|
||||||
|
|
||||||
|
|
||||||
@ -46,7 +48,7 @@ extern char *md5_crypt __P ((const char *key, const char *salt));
|
|||||||
/* This entry point is equivalent to the `crypt' function in Unix
|
/* This entry point is equivalent to the `crypt' function in Unix
|
||||||
libcs. */
|
libcs. */
|
||||||
char *
|
char *
|
||||||
md5_crypt_r (key, salt, buffer, buflen)
|
__md5_crypt_r (key, salt, buffer, buflen)
|
||||||
const char *key;
|
const char *key;
|
||||||
const char *salt;
|
const char *salt;
|
||||||
char *buffer;
|
char *buffer;
|
||||||
@ -155,10 +157,10 @@ md5_crypt_r (key, salt, buffer, buflen)
|
|||||||
|
|
||||||
/* Now we can construct the result string. It consists of three
|
/* Now we can construct the result string. It consists of three
|
||||||
parts. */
|
parts. */
|
||||||
cp = stpncpy (buffer, md5_salt_prefix, MAX (0, buflen));
|
cp = __stpncpy (buffer, md5_salt_prefix, MAX (0, buflen));
|
||||||
buflen -= sizeof (md5_salt_prefix);
|
buflen -= sizeof (md5_salt_prefix);
|
||||||
|
|
||||||
cp = stpncpy (cp, salt, MIN ((size_t) buflen, salt_len));
|
cp = __stpncpy (cp, salt, MIN ((size_t) buflen, salt_len));
|
||||||
buflen -= MIN ((size_t) buflen, salt_len);
|
buflen -= MIN ((size_t) buflen, salt_len);
|
||||||
|
|
||||||
if (buflen > 0)
|
if (buflen > 0)
|
||||||
@ -201,10 +203,11 @@ md5_crypt_r (key, salt, buffer, buflen)
|
|||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
weak_alias (__md5_crypt_r, md5_crypt_r)
|
||||||
|
|
||||||
|
|
||||||
char *
|
char *
|
||||||
md5_crypt (key, salt)
|
__md5_crypt (key, salt)
|
||||||
const char *key;
|
const char *key;
|
||||||
const char *salt;
|
const char *salt;
|
||||||
{
|
{
|
||||||
@ -222,5 +225,6 @@ md5_crypt (key, salt)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return md5_crypt_r (key, salt, buffer, buflen);
|
return __md5_crypt_r (key, salt, buffer, buflen);
|
||||||
}
|
}
|
||||||
|
weak_alias (__md5_crypt, md5_crypt)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
|
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
|
||||||
according to the definition of MD5 in RFC 1321 from April 1992.
|
according to the definition of MD5 in RFC 1321 from April 1992.
|
||||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -42,6 +42,15 @@
|
|||||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||||
# define WORDS_BIGENDIAN 1
|
# define WORDS_BIGENDIAN 1
|
||||||
# endif
|
# endif
|
||||||
|
/* We need to keep the namespace clean so define the MD5 function
|
||||||
|
protected using leading __ and use weak aliases. */
|
||||||
|
# define md5_init_ctx __md5_init_ctx
|
||||||
|
# define md5_process_block __md5_process_block
|
||||||
|
# define md5_process_bytes __md5_process_bytes
|
||||||
|
# define md5_finish_ctx __md5_finish_ctx
|
||||||
|
# define md5_read_ctx __md5_read_ctx
|
||||||
|
# define md5_stream __md5_stream
|
||||||
|
# define md5_buffer __md5_buffer
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
#ifdef WORDS_BIGENDIAN
|
||||||
@ -417,3 +426,22 @@ md5_process_block (buffer, len, ctx)
|
|||||||
ctx->C = C;
|
ctx->C = C;
|
||||||
ctx->D = D;
|
ctx->D = D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _LIBC
|
||||||
|
/* Define weak aliases. */
|
||||||
|
# undef md5_init_ctx
|
||||||
|
weak_alias (__md5_init_ctx, md5_init_ctx)
|
||||||
|
# undef md5_process_block
|
||||||
|
weak_alias (__md5_process_block, md5_process_block)
|
||||||
|
# undef md5_process_bytes
|
||||||
|
weak_alias (__md5_process_bytes, md5_process_bytes)
|
||||||
|
# undef md5_finish_ctx
|
||||||
|
weak_alias (__md5_finish_ctx, md5_finish_ctx)
|
||||||
|
# undef md5_read_ctx
|
||||||
|
weak_alias (__md5_read_ctx, md5_read_ctx)
|
||||||
|
# undef md5_stream
|
||||||
|
weak_alias (__md5_stream, md5_stream)
|
||||||
|
# undef md5_buffer
|
||||||
|
weak_alias (__md5_buffer, md5_buffer)
|
||||||
|
#endif
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* md5.h - Declaration of functions and data types used for MD5 sum
|
/* Declaration of functions and data types used for MD5 sum computing
|
||||||
computing library functions.
|
library functions.
|
||||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -97,12 +97,15 @@ struct md5_ctx
|
|||||||
|
|
||||||
/* Initialize structure containing state of computation.
|
/* Initialize structure containing state of computation.
|
||||||
(RFC 1321, 3.3: Step 3) */
|
(RFC 1321, 3.3: Step 3) */
|
||||||
|
extern void __md5_init_ctx __P ((struct md5_ctx *ctx));
|
||||||
extern void md5_init_ctx __P ((struct md5_ctx *ctx));
|
extern void md5_init_ctx __P ((struct md5_ctx *ctx));
|
||||||
|
|
||||||
/* Starting with the result of former calls of this function (or the
|
/* Starting with the result of former calls of this function (or the
|
||||||
initialization function update the context for the next LEN bytes
|
initialization function update the context for the next LEN bytes
|
||||||
starting at BUFFER.
|
starting at BUFFER.
|
||||||
It is necessary that LEN is a multiple of 64!!! */
|
It is necessary that LEN is a multiple of 64!!! */
|
||||||
|
extern void __md5_process_block __P ((const void *buffer, size_t len,
|
||||||
|
struct md5_ctx *ctx));
|
||||||
extern void md5_process_block __P ((const void *buffer, size_t len,
|
extern void md5_process_block __P ((const void *buffer, size_t len,
|
||||||
struct md5_ctx *ctx));
|
struct md5_ctx *ctx));
|
||||||
|
|
||||||
@ -110,6 +113,8 @@ extern void md5_process_block __P ((const void *buffer, size_t len,
|
|||||||
initialization function update the context for the next LEN bytes
|
initialization function update the context for the next LEN bytes
|
||||||
starting at BUFFER.
|
starting at BUFFER.
|
||||||
It is NOT required that LEN is a multiple of 64. */
|
It is NOT required that LEN is a multiple of 64. */
|
||||||
|
extern void __md5_process_bytes __P ((const void *buffer, size_t len,
|
||||||
|
struct md5_ctx *ctx));
|
||||||
extern void md5_process_bytes __P ((const void *buffer, size_t len,
|
extern void md5_process_bytes __P ((const void *buffer, size_t len,
|
||||||
struct md5_ctx *ctx));
|
struct md5_ctx *ctx));
|
||||||
|
|
||||||
@ -120,6 +125,7 @@ extern void md5_process_bytes __P ((const void *buffer, size_t len,
|
|||||||
|
|
||||||
IMPORTANT: On some systems it is required that RESBUF is correctly
|
IMPORTANT: On some systems it is required that RESBUF is correctly
|
||||||
aligned for a 32 bits value. */
|
aligned for a 32 bits value. */
|
||||||
|
extern void *__md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
||||||
extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
||||||
|
|
||||||
|
|
||||||
@ -129,18 +135,23 @@ extern void *md5_finish_ctx __P ((struct md5_ctx *ctx, void *resbuf));
|
|||||||
|
|
||||||
IMPORTANT: On some systems it is required that RESBUF is correctly
|
IMPORTANT: On some systems it is required that RESBUF is correctly
|
||||||
aligned for a 32 bits value. */
|
aligned for a 32 bits value. */
|
||||||
|
extern void *__md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
|
||||||
extern void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
|
extern void *md5_read_ctx __P ((const struct md5_ctx *ctx, void *resbuf));
|
||||||
|
|
||||||
|
|
||||||
/* Compute MD5 message digest for bytes read from STREAM. The
|
/* Compute MD5 message digest for bytes read from STREAM. The
|
||||||
resulting message digest number will be written into the 16 bytes
|
resulting message digest number will be written into the 16 bytes
|
||||||
beginning at RESBLOCK. */
|
beginning at RESBLOCK. */
|
||||||
|
extern int __md5_stream __P ((FILE *stream, void *resblock));
|
||||||
extern int md5_stream __P ((FILE *stream, void *resblock));
|
extern int md5_stream __P ((FILE *stream, void *resblock));
|
||||||
|
|
||||||
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
|
/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
|
||||||
result is always in little endian byte order, so that a byte-wise
|
result is always in little endian byte order, so that a byte-wise
|
||||||
output yields to the wanted ASCII representation of the message
|
output yields to the wanted ASCII representation of the message
|
||||||
digest. */
|
digest. */
|
||||||
extern void *md5_buffer __P ((const char *buffer, size_t len, void *resblock));
|
extern void *__md5_buffer __P ((const char *buffer, size_t len,
|
||||||
|
void *resblock));
|
||||||
|
extern void *md5_buffer __P ((const char *buffer, size_t len,
|
||||||
|
void *resblock));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
1
md5-crypt/onlymd5-entry.c
Normal file
1
md5-crypt/onlymd5-entry.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include <sysdeps/generic/crypt-entry.c>
|
@ -26,7 +26,6 @@
|
|||||||
|
|
||||||
/* Get implementation for some internal functions. */
|
/* Get implementation for some internal functions. */
|
||||||
#include "../resolv/mapv4v6addr.h"
|
#include "../resolv/mapv4v6addr.h"
|
||||||
#include "../resolv/mapv4v6hostent.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define ENTNAME hostent
|
#define ENTNAME hostent
|
||||||
|
@ -37,7 +37,7 @@ __BEGIN_DECLS
|
|||||||
/* These are not #ifdef __USE_POSIX2 because they are
|
/* These are not #ifdef __USE_POSIX2 because they are
|
||||||
in the theoretically application-owned namespace. */
|
in the theoretically application-owned namespace. */
|
||||||
|
|
||||||
#define _POSIX2_C_VERSION 199912L /* Invalid until 1003.2 is done. */
|
#define _POSIX2_C_VERSION 199209L /* Invalid until 1003.2 is done. */
|
||||||
|
|
||||||
/* If defined, the implementation supports the
|
/* If defined, the implementation supports the
|
||||||
C Language Bindings Option. */
|
C Language Bindings Option. */
|
||||||
|
@ -99,8 +99,10 @@ extern int fmtmsg __P ((long int __classification, __const char *__label,
|
|||||||
int __severity, __const char *__text,
|
int __severity, __const char *__text,
|
||||||
__const char *__action, __const char *__tag));
|
__const char *__action, __const char *__tag));
|
||||||
|
|
||||||
|
#ifdef __USE_SVID
|
||||||
/* Add or remove severity level. */
|
/* Add or remove severity level. */
|
||||||
extern int addseverity __P ((int __severity, __const char *__string));
|
extern int addseverity __P ((int __severity, __const char *__string));
|
||||||
|
#endif
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
@ -450,10 +450,10 @@ static const token symbols[] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
findkind (const char **mark, token * tokp)
|
findkind (const char **mark, token *tokp)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
token *s;
|
const token *s;
|
||||||
const char *str;
|
const char *str;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
|
@ -398,10 +398,10 @@ static const token tokstrings[] =
|
|||||||
static const char *
|
static const char *
|
||||||
toktostr (tok_kind kind)
|
toktostr (tok_kind kind)
|
||||||
{
|
{
|
||||||
token *sp;
|
const token *sp;
|
||||||
|
|
||||||
for (sp = tokstrings; sp->kind != TOK_EOF && sp->kind != kind; sp++);
|
for (sp = tokstrings; sp->kind != TOK_EOF && sp->kind != kind; sp++);
|
||||||
return (sp->str);
|
return sp->str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -29,8 +29,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
__bb_init_func (bb)
|
__bb_init_func (struct __bb *bb)
|
||||||
struct __bb *bb;
|
|
||||||
{
|
{
|
||||||
struct gmonparam *p = &_gmonparam;
|
struct gmonparam *p = &_gmonparam;
|
||||||
|
|
||||||
|
@ -30,27 +30,29 @@ static const char md5_salt_prefix[] = "$1$";
|
|||||||
|
|
||||||
|
|
||||||
/* Prototypes for the MD5 encryption replacement functions. */
|
/* Prototypes for the MD5 encryption replacement functions. */
|
||||||
extern char *md5_crypt_r (const char *key, const char *salt, char *buffer,
|
extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer,
|
||||||
int buflen);
|
int buflen);
|
||||||
extern char *md5_crypt (const char *key, const char *salt);
|
extern char *__md5_crypt (const char *key, const char *salt);
|
||||||
|
|
||||||
|
|
||||||
/* We recognize an intended call of the MD5 crypt replacement function
|
/* We recognize an intended call of the MD5 crypt replacement function
|
||||||
by the first 3 characters of the salt string. If they match the
|
by the first 3 characters of the salt string. If they match the
|
||||||
MD5 magic string we want MD5 encryption replacement. */
|
MD5 magic string we want MD5 encryption replacement. */
|
||||||
char *
|
char *
|
||||||
crypt_r (key, salt, data)
|
__crypt_r (key, salt, data)
|
||||||
const char *key;
|
const char *key;
|
||||||
const char *salt;
|
const char *salt;
|
||||||
struct crypt_data *data;
|
struct crypt_data *data;
|
||||||
{
|
{
|
||||||
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
||||||
return md5_crypt_r (key, salt, (char *) data, sizeof (struct crypt_data));
|
return __md5_crypt_r (key, salt, (char *) data,
|
||||||
|
sizeof (struct crypt_data));
|
||||||
|
|
||||||
/* We don't have DES encryption. */
|
/* We don't have DES encryption. */
|
||||||
__set_errno (EOPNOTSUPP);
|
__set_errno (EOPNOTSUPP);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
weak_alias (__crypt_r, crypt_r)
|
||||||
|
|
||||||
|
|
||||||
/* The same here, only we call the non-reentrant version. */
|
/* The same here, only we call the non-reentrant version. */
|
||||||
@ -60,7 +62,7 @@ crypt (key, salt)
|
|||||||
const char *salt;
|
const char *salt;
|
||||||
{
|
{
|
||||||
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
|
||||||
return md5_crypt (key, salt);
|
return __md5_crypt (key, salt);
|
||||||
|
|
||||||
/* We don't have DES encryption. */
|
/* We don't have DES encryption. */
|
||||||
__set_errno (EOPNOTSUPP);
|
__set_errno (EOPNOTSUPP);
|
||||||
|
@ -9,7 +9,7 @@ chroot - chroot 1 chroot
|
|||||||
close - close 1 __libc_close __close close
|
close - close 1 __libc_close __close close
|
||||||
dup - dup 1 __dup dup
|
dup - dup 1 __dup dup
|
||||||
dup2 - dup2 2 __dup2 dup2
|
dup2 - dup2 2 __dup2 dup2
|
||||||
fchdir - fchdir 1 fchdir
|
fchdir - fchdir 1 __fchdir fchdir
|
||||||
fcntl - fcntl 3 __libc_fcntl __fcntl fcntl
|
fcntl - fcntl 3 __libc_fcntl __fcntl fcntl
|
||||||
fstatfs - fstatfs 2 __fstatfs fstatfs
|
fstatfs - fstatfs 2 __fstatfs fstatfs
|
||||||
fsync - fsync 1 __libc_fsync fsync
|
fsync - fsync 1 __libc_fsync fsync
|
||||||
|
@ -66,7 +66,7 @@ typedef long int __swblk_t; /* Type of a swap block maybe? */
|
|||||||
typedef long int __clock_t;
|
typedef long int __clock_t;
|
||||||
|
|
||||||
/* One element in the file descriptor mask array. */
|
/* One element in the file descriptor mask array. */
|
||||||
typedef unsigned int __fd_mask;
|
typedef unsigned long int __fd_mask;
|
||||||
|
|
||||||
/* Due to incaution, we may have gotten these from a kernel header file. */
|
/* Due to incaution, we may have gotten these from a kernel header file. */
|
||||||
#undef __FD_SETSIZE
|
#undef __FD_SETSIZE
|
||||||
|
@ -21,7 +21,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _INTTYPES_H
|
#ifndef _INTTYPES_H
|
||||||
|
|
||||||
#define _INTTYPES_H 1
|
#define _INTTYPES_H 1
|
||||||
|
#include <features.h>
|
||||||
|
|
||||||
/* Exact integral types. */
|
/* Exact integral types. */
|
||||||
|
|
||||||
@ -162,24 +164,21 @@ typedef unsigned long long int uint_fast64_t;
|
|||||||
#define UINTPTR_MAX (4294967295U)
|
#define UINTPTR_MAX (4294967295U)
|
||||||
|
|
||||||
|
|
||||||
/* Macros for creating constants. */
|
|
||||||
#define __CONCAT__(A, B) A ## B
|
|
||||||
|
|
||||||
/* Signed. */
|
/* Signed. */
|
||||||
#define INT8_C(c) ((int8_t) c)
|
#define INT8_C(c) ((int8_t) c)
|
||||||
#define INT16_C(c) ((int16_t) c)
|
#define INT16_C(c) ((int16_t) c)
|
||||||
#define INT32_C(c) ((int32_t) c)
|
#define INT32_C(c) ((int32_t) c)
|
||||||
#define INT64_C(c) ((int64_t) __CONCAT__ (c,ll))
|
#define INT64_C(c) ((int64_t) __CONCAT (c,ll))
|
||||||
|
|
||||||
/* Unsigned. */
|
/* Unsigned. */
|
||||||
#define UINT8_C(c) ((uint8_t) __CONCAT__ (c,u))
|
#define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
|
||||||
#define UINT16_C(c) ((uint16_t) __CONCAT__ (c,u))
|
#define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
|
||||||
#define UINT32_C(c) ((uint32_t) __CONCAT__ (c,u))
|
#define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
|
||||||
#define UINT64_C(c) ((uint64_t) __CONCAT__ (c,ull))
|
#define UINT64_C(c) ((uint64_t) __CONCAT (c,ull))
|
||||||
|
|
||||||
/* Maximal type. */
|
/* Maximal type. */
|
||||||
#define INTMAX_C(c) ((intmax_t) __CONCAT__ (c,ll))
|
#define INTMAX_C(c) ((intmax_t) __CONCAT (c,ll))
|
||||||
#define UINTMAX_C(c) ((uintmax_t) __CONCAT__ (c,ull))
|
#define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ull))
|
||||||
|
|
||||||
|
|
||||||
/* Macros for printing format specifiers. */
|
/* Macros for printing format specifiers. */
|
||||||
|
@ -21,7 +21,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _INTTYPES_H
|
#ifndef _INTTYPES_H
|
||||||
|
|
||||||
#define _INTTYPES_H 1
|
#define _INTTYPES_H 1
|
||||||
|
#include <features.h>
|
||||||
|
|
||||||
/* Exact integral types. */
|
/* Exact integral types. */
|
||||||
|
|
||||||
@ -162,24 +164,21 @@ typedef unsigned long int uint_fast64_t;
|
|||||||
#define UINTPTR_MAX (18446744073709551615uL)
|
#define UINTPTR_MAX (18446744073709551615uL)
|
||||||
|
|
||||||
|
|
||||||
/* Macros for creating constants. */
|
|
||||||
#define __CONCAT__(A, B) A ## B
|
|
||||||
|
|
||||||
/* Signed. */
|
/* Signed. */
|
||||||
#define INT8_C(c) ((int8_t) c)
|
#define INT8_C(c) ((int8_t) c)
|
||||||
#define INT16_C(c) ((int16_t) c)
|
#define INT16_C(c) ((int16_t) c)
|
||||||
#define INT32_C(c) ((int32_t) c)
|
#define INT32_C(c) ((int32_t) c)
|
||||||
#define INT64_C(c) ((int64_t) __CONCAT__ (c,l))
|
#define INT64_C(c) ((int64_t) __CONCAT (c,l))
|
||||||
|
|
||||||
/* Unsigned. */
|
/* Unsigned. */
|
||||||
#define UINT8_C(c) ((uint8_t) __CONCAT__ (c,u))
|
#define UINT8_C(c) ((uint8_t) __CONCAT (c,u))
|
||||||
#define UINT16_C(c) ((uint16_t) __CONCAT__ (c,u))
|
#define UINT16_C(c) ((uint16_t) __CONCAT (c,u))
|
||||||
#define UINT32_C(c) ((uint32_t) __CONCAT__ (c,u))
|
#define UINT32_C(c) ((uint32_t) __CONCAT (c,u))
|
||||||
#define UINT64_C(c) ((uint64_t) __CONCAT__ (c,ul))
|
#define UINT64_C(c) ((uint64_t) __CONCAT (c,ul))
|
||||||
|
|
||||||
/* Maximal type. */
|
/* Maximal type. */
|
||||||
#define INTMAX_C(c) ((intmax_t) __CONCAT__ (c,ll))
|
#define INTMAX_C(c) ((intmax_t) __CONCAT (c,l))
|
||||||
#define UINTMAX_C(c) ((uintmax_t) __CONCAT__ (c,ul))
|
#define UINTMAX_C(c) ((uintmax_t) __CONCAT (c,ul))
|
||||||
|
|
||||||
|
|
||||||
/* Macros for printing format specifiers. */
|
/* Macros for printing format specifiers. */
|
||||||
@ -290,10 +289,10 @@ typedef unsigned long int uint_fast64_t;
|
|||||||
|
|
||||||
|
|
||||||
/* Macros for printing `intfast_t' and `uintfast_t'. */
|
/* Macros for printing `intfast_t' and `uintfast_t'. */
|
||||||
#define PRIdFAST "d"
|
#define PRIdFAST "ld"
|
||||||
#define PRIoFAST "o"
|
#define PRIoFAST "lo"
|
||||||
#define PRIxFAST "x"
|
#define PRIxFAST "lx"
|
||||||
#define PRIuFAST "u"
|
#define PRIuFAST "lu"
|
||||||
|
|
||||||
|
|
||||||
/* Macros for printing `intptr_t' and `uintptr_t'. */
|
/* Macros for printing `intptr_t' and `uintptr_t'. */
|
||||||
@ -326,10 +325,10 @@ typedef unsigned long int uint_fast64_t;
|
|||||||
|
|
||||||
|
|
||||||
/* Macros for scaning `intfast_t' and `uintfast_t'. */
|
/* Macros for scaning `intfast_t' and `uintfast_t'. */
|
||||||
#define SCNdFAST "d"
|
#define SCNdFAST "ld"
|
||||||
#define SCNiFAST "i"
|
#define SCNiFAST "li"
|
||||||
#define SCNoFAST "o"
|
#define SCNoFAST "lo"
|
||||||
#define SCNxFAST "x"
|
#define SCNxFAST "lx"
|
||||||
|
|
||||||
/* Macros for scaning `intptr_t' and `uintptr_t'. */
|
/* Macros for scaning `intptr_t' and `uintptr_t'. */
|
||||||
#define SCNdPTR "ld"
|
#define SCNdPTR "ld"
|
||||||
|
@ -187,7 +187,7 @@ $(objpfx)testdata/UTC: simplebackw $(objpfx)zic $(objpfx)testdata/Etc/UTC \
|
|||||||
test-tz-ENV = TZDIR=$(objpfx)testdata
|
test-tz-ENV = TZDIR=$(objpfx)testdata
|
||||||
|
|
||||||
|
|
||||||
$(objpfx)tzselect: tzselect.ksh
|
$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
|
||||||
sed -e 's%@KSH@%$(KSH)%g' \
|
sed -e 's%@KSH@%$(KSH)%g' \
|
||||||
-e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
|
-e 's%@TZDIR@%$(zonedir)%g' < $< > $@.new
|
||||||
chmod 555 $@.new
|
chmod 555 $@.new
|
||||||
|
Loading…
Reference in New Issue
Block a user