mirror of
https://github.com/zsh-users/zsh
synced 2024-07-21 10:14:19 +00:00
16673: add langinfo module as an interface to locale information.
This commit is contained in:
parent
9511df82d8
commit
0de96fc478
|
@ -1,3 +1,10 @@
|
|||
2002-02-19 Clint Adams <clint@zsh.org>
|
||||
|
||||
* 16673: zshconfig.ac, Doc/Zsh/.distfiles, Doc/Zsh/mod_langinfo.yo,
|
||||
Src/Modules/.distfiles, Src/Modules/langinfo.c,
|
||||
Src/Modules/langinfo.mdd: add langinfo module as an interface
|
||||
to locale information.
|
||||
|
||||
2002-02-19 Geoff Wing <gcw@zsh.org>
|
||||
|
||||
* 16635: Src/Zle/zle_refresh.c: make sure we display lists in
|
||||
|
|
|
@ -4,7 +4,7 @@ DISTFILES_SRC='
|
|||
cond.yo exec.yo expn.yo filelist.yo files.yo func.yo grammar.yo
|
||||
index.yo intro.yo invoke.yo jobs.yo manual.yo metafaq.yo mod_cap.yo
|
||||
mod_clone.yo mod_compctl.yo mod_complete.yo mod_complist.yo
|
||||
mod_computil.yo mod_deltochar.yo mod_example.yo mod_files.yo
|
||||
mod_computil.yo mod_deltochar.yo mod_example.yo mod_files.yo mod_langinfo.yo
|
||||
mod_mapfile.yo mod_mathfunc.yo mod_parameter.yo mod_pcre.yo mod_sched.yo
|
||||
mod_stat.yo mod_tcp.yo mod_termcap.yo mod_terminfo.yo mod_zftp.yo mod_zle.yo
|
||||
mod_zleparameter.yo mod_zutil.yo mod_zprof.yo mod_zpty.yo
|
||||
|
|
37
Doc/Zsh/mod_langinfo.yo
Normal file
37
Doc/Zsh/mod_langinfo.yo
Normal file
|
@ -0,0 +1,37 @@
|
|||
COMMENT(!MOD!zsh/langinfo
|
||||
Interface to locale information.
|
||||
!MOD!)
|
||||
The tt(zsh/langinfo) module makes available one parameter:
|
||||
|
||||
startitem()
|
||||
vindex(langinfo)
|
||||
item(tt(langinfo))(
|
||||
An associative array that maps langinfo elements to
|
||||
their values.
|
||||
|
||||
Your implementation may support a number of the following keys:
|
||||
|
||||
tt(CODESET),
|
||||
tt(D_T_FMT),
|
||||
tt(D_FMT),
|
||||
tt(T_FMT),
|
||||
tt(RADIXCHAR),
|
||||
tt(THOUSEP),
|
||||
tt(YESEXPR),
|
||||
tt(NOEXPR),
|
||||
tt(CRNCYSTR),
|
||||
tt(ABDAY_{1..7}),
|
||||
tt(DAY_{1..7}),
|
||||
tt(ABMON_{1..12}),
|
||||
tt(MON_{1..12}),
|
||||
tt(T_FMT_AMPM),
|
||||
tt(AM_STR),
|
||||
tt(PM_STR),
|
||||
tt(ERA),
|
||||
tt(ERA_D_FMT),
|
||||
tt(ERA_D_T_FMT),
|
||||
tt(ERA_T_FMT),
|
||||
tt(ALT_DIGITS)
|
||||
|
||||
)
|
||||
enditem()
|
|
@ -4,6 +4,7 @@ DISTFILES_SRC='
|
|||
clone.mdd clone.c
|
||||
example.mdd example.c
|
||||
files.mdd files.c
|
||||
langinfo.mdd langinfo.c
|
||||
mapfile.mdd mapfile.c
|
||||
mathfunc.mdd mathfunc.c
|
||||
parameter.mdd parameter.c
|
||||
|
|
557
Src/Modules/langinfo.c
Normal file
557
Src/Modules/langinfo.c
Normal file
|
@ -0,0 +1,557 @@
|
|||
/*
|
||||
* langinfo.c - parameter interface to langinfo via curses
|
||||
*
|
||||
* This file is part of zsh, the Z shell.
|
||||
*
|
||||
* Copyright (c) 2002 Peter Stephenson, Clint Adams
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, without written agreement and without
|
||||
* license or royalty fees, to use, copy, modify, and distribute this
|
||||
* software and to distribute modified versions of this software for any
|
||||
* purpose, provided that the above copyright notice and the following
|
||||
* two paragraphs appear in all copies of this software.
|
||||
*
|
||||
* In no event shall Peter Stephenson, Clint Adams or the Zsh Development Group
|
||||
* be liable to any party for direct, indirect, special, incidental, or
|
||||
* consequential damages arising out of the use of this software and its
|
||||
* documentation, even if Sven Wishnowsky, Clint Adams and the Zsh
|
||||
* Development Group have been advised of the possibility of such damage.
|
||||
*
|
||||
* Peter Stephenson, Clint Adams and the Zsh Development Group specifically
|
||||
* disclaim any warranties, including, but not limited to, the implied
|
||||
* warranties of merchantability and fitness for a particular purpose.
|
||||
* The software provided hereunder is on an "as is" basis, and Peter
|
||||
* Stephenson, Clint Adams and the Zsh Development Group have no obligation
|
||||
* to provide maintenance, support, updates, enhancements, or modifications.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "langinfo.mdh"
|
||||
#include "langinfo.pro"
|
||||
|
||||
static char langinfo_nam[] = "langinfo";
|
||||
|
||||
#ifdef HAVE_LANGINFO_H
|
||||
# include <langinfo.h>
|
||||
#endif
|
||||
|
||||
static Param langinfo_pm;
|
||||
|
||||
/**/
|
||||
#ifdef HAVE_NL_LANGINFO
|
||||
|
||||
static char *nl_names[] = {
|
||||
#ifdef CODESET
|
||||
"CODESET",
|
||||
#endif /* CODESET */
|
||||
#ifdef D_T_FMT
|
||||
"D_T_FMT",
|
||||
#endif /* D_T_FMT */
|
||||
#ifdef D_FMT
|
||||
"D_FMT",
|
||||
#endif /* D_FMT */
|
||||
#ifdef T_FMT
|
||||
"T_FMT",
|
||||
#endif /* T_FMT */
|
||||
#ifdef RADIXCHAR
|
||||
"RADIXCHAR",
|
||||
#endif /* RADIXCHAR */
|
||||
#ifdef THOUSEP
|
||||
"THOUSEP",
|
||||
#endif /* THOUSEP */
|
||||
#ifdef YESEXPR
|
||||
"YESEXPR",
|
||||
#endif /* YESEXPR */
|
||||
#ifdef NOEXPR
|
||||
"NOEXPR",
|
||||
#endif /* NOEXPR */
|
||||
#ifdef CRNCYSTR
|
||||
"CRNCYSTR",
|
||||
#endif /* CRNCYSTR */
|
||||
#ifdef ABDAY_1
|
||||
"ABDAY_1",
|
||||
#endif /* ABDAY_1 */
|
||||
#ifdef ABDAY_2
|
||||
"ABDAY_2",
|
||||
#endif /* ABDAY_2 */
|
||||
#ifdef ABDAY_3
|
||||
"ABDAY_3",
|
||||
#endif /* ABDAY_3 */
|
||||
#ifdef ABDAY_4
|
||||
"ABDAY_4",
|
||||
#endif /* ABDAY_4 */
|
||||
#ifdef ABDAY_5
|
||||
"ABDAY_5",
|
||||
#endif /* ABDAY_5 */
|
||||
#ifdef ABDAY_6
|
||||
"ABDAY_6",
|
||||
#endif /* ABDAY_6 */
|
||||
#ifdef ABDAY_7
|
||||
"ABDAY_7",
|
||||
#endif /* ABDAY_7 */
|
||||
#ifdef DAY_1
|
||||
"DAY_1",
|
||||
#endif /* DAY_1 */
|
||||
#ifdef DAY_2
|
||||
"DAY_2",
|
||||
#endif /* DAY_2 */
|
||||
#ifdef DAY_3
|
||||
"DAY_3",
|
||||
#endif /* DAY_3 */
|
||||
#ifdef DAY_4
|
||||
"DAY_4",
|
||||
#endif /* DAY_4 */
|
||||
#ifdef DAY_5
|
||||
"DAY_5",
|
||||
#endif /* DAY_5 */
|
||||
#ifdef DAY_6
|
||||
"DAY_6",
|
||||
#endif /* DAY_6 */
|
||||
#ifdef DAY_7
|
||||
"DAY_7",
|
||||
#endif /* DAY_7 */
|
||||
#ifdef ABMON_1
|
||||
"ABMON_1",
|
||||
#endif /* ABMON_1 */
|
||||
#ifdef ABMON_2
|
||||
"ABMON_2",
|
||||
#endif /* ABMON_2 */
|
||||
#ifdef ABMON_3
|
||||
"ABMON_3",
|
||||
#endif /* ABMON_3 */
|
||||
#ifdef ABMON_4
|
||||
"ABMON_4",
|
||||
#endif /* ABMON_4 */
|
||||
#ifdef ABMON_5
|
||||
"ABMON_5",
|
||||
#endif /* ABMON_5 */
|
||||
#ifdef ABMON_6
|
||||
"ABMON_6",
|
||||
#endif /* ABMON_6 */
|
||||
#ifdef ABMON_7
|
||||
"ABMON_7",
|
||||
#endif /* ABMON_7 */
|
||||
#ifdef ABMON_8
|
||||
"ABMON_8",
|
||||
#endif /* ABMON_8 */
|
||||
#ifdef ABMON_9
|
||||
"ABMON_9",
|
||||
#endif /* ABMON_9 */
|
||||
#ifdef ABMON_10
|
||||
"ABMON_10",
|
||||
#endif /* ABMON_10 */
|
||||
#ifdef ABMON_11
|
||||
"ABMON_11",
|
||||
#endif /* ABMON_11 */
|
||||
#ifdef ABMON_12
|
||||
"ABMON_12",
|
||||
#endif /* ABMON_12 */
|
||||
#ifdef MON_1
|
||||
"MON_1",
|
||||
#endif /* MON_1 */
|
||||
#ifdef MON_2
|
||||
"MON_2",
|
||||
#endif /* MON_2 */
|
||||
#ifdef MON_3
|
||||
"MON_3",
|
||||
#endif /* MON_3 */
|
||||
#ifdef MON_4
|
||||
"MON_4",
|
||||
#endif /* MON_4 */
|
||||
#ifdef MON_5
|
||||
"MON_5",
|
||||
#endif /* MON_5 */
|
||||
#ifdef MON_6
|
||||
"MON_6",
|
||||
#endif /* MON_6 */
|
||||
#ifdef MON_7
|
||||
"MON_7",
|
||||
#endif /* MON_7 */
|
||||
#ifdef MON_8
|
||||
"MON_8",
|
||||
#endif /* MON_8 */
|
||||
#ifdef MON_9
|
||||
"MON_9",
|
||||
#endif /* MON_9 */
|
||||
#ifdef MON_10
|
||||
"MON_10",
|
||||
#endif /* MON_10 */
|
||||
#ifdef MON_11
|
||||
"MON_11",
|
||||
#endif /* MON_11 */
|
||||
#ifdef MON_12
|
||||
"MON_12",
|
||||
#endif /* MON_12 */
|
||||
#ifdef T_FMT_AMPM
|
||||
"T_FMT_AMPM",
|
||||
#endif /* T_FMT_AMPM */
|
||||
#ifdef AM_STR
|
||||
"AM_STR",
|
||||
#endif /* AM_STR */
|
||||
#ifdef PM_STR
|
||||
"PM_STR",
|
||||
#endif /* PM_STR */
|
||||
#ifdef ERA
|
||||
"ERA",
|
||||
#endif /* ERA */
|
||||
#ifdef ERA_D_FMT
|
||||
"ERA_D_FMT",
|
||||
#endif /* ERA_D_FMT */
|
||||
#ifdef ERA_D_T_FMT
|
||||
"ERA_D_T_FMT",
|
||||
#endif /* ERA_D_T_FMT */
|
||||
#ifdef ERA_T_FMT
|
||||
"ERA_T_FMT",
|
||||
#endif /* ERA_T_FMT */
|
||||
#ifdef ALT_DIGITS
|
||||
"ALT_DIGITS",
|
||||
#endif /* ALT_DIGITS */
|
||||
NULL
|
||||
};
|
||||
|
||||
static nl_item nl_vals[] = {
|
||||
#ifdef CODESET
|
||||
CODESET,
|
||||
#endif /* CODESET */
|
||||
#ifdef D_T_FMT
|
||||
D_T_FMT,
|
||||
#endif /* D_T_FMT */
|
||||
#ifdef D_FMT
|
||||
D_FMT,
|
||||
#endif /* D_FMT */
|
||||
#ifdef T_FMT
|
||||
T_FMT,
|
||||
#endif /* T_FMT */
|
||||
#ifdef RADIXCHAR
|
||||
RADIXCHAR,
|
||||
#endif /* RADIXCHAR */
|
||||
#ifdef THOUSEP
|
||||
THOUSEP,
|
||||
#endif /* THOUSEP */
|
||||
#ifdef YESEXPR
|
||||
YESEXPR,
|
||||
#endif /* YESEXPR */
|
||||
#ifdef NOEXPR
|
||||
NOEXPR,
|
||||
#endif /* NOEXPR */
|
||||
#ifdef CRNCYSTR
|
||||
CRNCYSTR,
|
||||
#endif /* CRNCYSTR */
|
||||
#ifdef ABDAY_1
|
||||
ABDAY_1,
|
||||
#endif /* ABDAY_1 */
|
||||
#ifdef ABDAY_2
|
||||
ABDAY_2,
|
||||
#endif /* ABDAY_2 */
|
||||
#ifdef ABDAY_3
|
||||
ABDAY_3,
|
||||
#endif /* ABDAY_3 */
|
||||
#ifdef ABDAY_4
|
||||
ABDAY_4,
|
||||
#endif /* ABDAY_4 */
|
||||
#ifdef ABDAY_5
|
||||
ABDAY_5,
|
||||
#endif /* ABDAY_5 */
|
||||
#ifdef ABDAY_6
|
||||
ABDAY_6,
|
||||
#endif /* ABDAY_6 */
|
||||
#ifdef ABDAY_7
|
||||
ABDAY_7,
|
||||
#endif /* ABDAY_7 */
|
||||
#ifdef DAY_1
|
||||
DAY_1,
|
||||
#endif /* DAY_1 */
|
||||
#ifdef DAY_2
|
||||
DAY_2,
|
||||
#endif /* DAY_2 */
|
||||
#ifdef DAY_3
|
||||
DAY_3,
|
||||
#endif /* DAY_3 */
|
||||
#ifdef DAY_4
|
||||
DAY_4,
|
||||
#endif /* DAY_4 */
|
||||
#ifdef DAY_5
|
||||
DAY_5,
|
||||
#endif /* DAY_5 */
|
||||
#ifdef DAY_6
|
||||
DAY_6,
|
||||
#endif /* DAY_6 */
|
||||
#ifdef DAY_7
|
||||
DAY_7,
|
||||
#endif /* DAY_7 */
|
||||
#ifdef ABMON_1
|
||||
ABMON_1,
|
||||
#endif /* ABMON_1 */
|
||||
#ifdef ABMON_2
|
||||
ABMON_2,
|
||||
#endif /* ABMON_2 */
|
||||
#ifdef ABMON_3
|
||||
ABMON_3,
|
||||
#endif /* ABMON_3 */
|
||||
#ifdef ABMON_4
|
||||
ABMON_4,
|
||||
#endif /* ABMON_4 */
|
||||
#ifdef ABMON_5
|
||||
ABMON_5,
|
||||
#endif /* ABMON_5 */
|
||||
#ifdef ABMON_6
|
||||
ABMON_6,
|
||||
#endif /* ABMON_6 */
|
||||
#ifdef ABMON_7
|
||||
ABMON_7,
|
||||
#endif /* ABMON_7 */
|
||||
#ifdef ABMON_8
|
||||
ABMON_8,
|
||||
#endif /* ABMON_8 */
|
||||
#ifdef ABMON_9
|
||||
ABMON_9,
|
||||
#endif /* ABMON_9 */
|
||||
#ifdef ABMON_10
|
||||
ABMON_10,
|
||||
#endif /* ABMON_10 */
|
||||
#ifdef ABMON_11
|
||||
ABMON_11,
|
||||
#endif /* ABMON_11 */
|
||||
#ifdef ABMON_12
|
||||
ABMON_12,
|
||||
#endif /* ABMON_12 */
|
||||
#ifdef MON_1
|
||||
MON_1,
|
||||
#endif /* MON_1 */
|
||||
#ifdef MON_2
|
||||
MON_2,
|
||||
#endif /* MON_2 */
|
||||
#ifdef MON_3
|
||||
MON_3,
|
||||
#endif /* MON_3 */
|
||||
#ifdef MON_4
|
||||
MON_4,
|
||||
#endif /* MON_4 */
|
||||
#ifdef MON_5
|
||||
MON_5,
|
||||
#endif /* MON_5 */
|
||||
#ifdef MON_6
|
||||
MON_6,
|
||||
#endif /* MON_6 */
|
||||
#ifdef MON_7
|
||||
MON_7,
|
||||
#endif /* MON_7 */
|
||||
#ifdef MON_8
|
||||
MON_8,
|
||||
#endif /* MON_8 */
|
||||
#ifdef MON_9
|
||||
MON_9,
|
||||
#endif /* MON_9 */
|
||||
#ifdef MON_10
|
||||
MON_10,
|
||||
#endif /* MON_10 */
|
||||
#ifdef MON_11
|
||||
MON_11,
|
||||
#endif /* MON_11 */
|
||||
#ifdef MON_12
|
||||
MON_12,
|
||||
#endif /* MON_12 */
|
||||
#ifdef T_FMT_AMPM
|
||||
T_FMT_AMPM,
|
||||
#endif /* T_FMT_AMPM */
|
||||
#ifdef AM_STR
|
||||
AM_STR,
|
||||
#endif /* AM_STR */
|
||||
#ifdef PM_STR
|
||||
PM_STR,
|
||||
#endif /* PM_STR */
|
||||
#ifdef ERA
|
||||
ERA,
|
||||
#endif /* ERA */
|
||||
#ifdef ERA_D_FMT
|
||||
ERA_D_FMT,
|
||||
#endif /* ERA_D_FMT */
|
||||
#ifdef ERA_D_T_FMT
|
||||
ERA_D_T_FMT,
|
||||
#endif /* ERA_D_T_FMT */
|
||||
#ifdef ERA_T_FMT
|
||||
ERA_T_FMT,
|
||||
#endif /* ERA_T_FMT */
|
||||
#ifdef ALT_DIGITS
|
||||
ALT_DIGITS,
|
||||
#endif /* ALT_DIGITS */
|
||||
0
|
||||
};
|
||||
|
||||
static nl_item *
|
||||
liitem(char *name)
|
||||
{
|
||||
char **element;
|
||||
nl_item *nlcode;
|
||||
|
||||
nlcode = &nl_vals[0];
|
||||
|
||||
for (element = (char **)nl_names; *element; element++, nlcode++) {
|
||||
if ((!strncmp(*element, name, strlen(*element))))
|
||||
return nlcode;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**/
|
||||
static void
|
||||
shempty(void)
|
||||
{
|
||||
}
|
||||
|
||||
/* Create a simple special hash parameter. */
|
||||
|
||||
/**/
|
||||
static Param
|
||||
createlihash()
|
||||
{
|
||||
Param pm;
|
||||
HashTable ht;
|
||||
|
||||
unsetparam(langinfo_nam);
|
||||
|
||||
if (!(pm = createparam(langinfo_nam, PM_SPECIAL|PM_HIDE|PM_HIDEVAL|
|
||||
PM_REMOVABLE|PM_HASHED)))
|
||||
return NULL;
|
||||
|
||||
pm->level = pm->old ? locallevel : 0;
|
||||
pm->gets.hfn = hashgetfn;
|
||||
pm->sets.hfn = hashsetfn;
|
||||
pm->unsetfn = stdunsetfn;
|
||||
pm->u.hash = ht = newhashtable(7, langinfo_nam, NULL);
|
||||
|
||||
ht->hash = hasher;
|
||||
ht->emptytable = (TableFunc) shempty;
|
||||
ht->filltable = NULL;
|
||||
ht->addnode = (AddNodeFunc) shempty;
|
||||
ht->getnode = ht->getnode2 = getlanginfo;
|
||||
ht->removenode = (RemoveNodeFunc) shempty;
|
||||
ht->disablenode = NULL;
|
||||
ht->enablenode = NULL;
|
||||
ht->freenode = (FreeNodeFunc) shempty;
|
||||
ht->printnode = printparamnode;
|
||||
ht->scantab = scanlanginfo;
|
||||
|
||||
return (langinfo_pm = pm);
|
||||
}
|
||||
|
||||
/**/
|
||||
static HashNode
|
||||
getlanginfo(HashTable ht, char *name)
|
||||
{
|
||||
int len, *elem;
|
||||
char *listr;
|
||||
Param pm = NULL;
|
||||
|
||||
unmetafy(name, &len);
|
||||
|
||||
pm = (Param) zhalloc(sizeof(struct param));
|
||||
pm->nam = dupstring(name);
|
||||
pm->flags = PM_READONLY | PM_SCALAR;
|
||||
pm->sets.cfn = NULL;
|
||||
pm->gets.cfn = strgetfn;
|
||||
pm->sets.ifn = NULL;
|
||||
pm->gets.ifn = intgetfn;
|
||||
pm->unsetfn = NULL;
|
||||
pm->ct = 0;
|
||||
pm->env = NULL;
|
||||
pm->ename = NULL;
|
||||
pm->old = NULL;
|
||||
pm->level = 0;
|
||||
|
||||
if(name)
|
||||
elem = liitem(name);
|
||||
else
|
||||
elem = NULL;
|
||||
|
||||
if (elem && (listr = nl_langinfo(*elem))) {
|
||||
pm->u.str = dupstring(listr);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* zwarn("no such lang info: %s", name, 0); */
|
||||
pm->u.str = dupstring("");
|
||||
pm->flags |= PM_UNSET;
|
||||
}
|
||||
return (HashNode) pm;
|
||||
}
|
||||
|
||||
/**/
|
||||
static void
|
||||
scanlanginfo(HashTable ht, ScanFunc func, int flags)
|
||||
{
|
||||
Param pm = NULL;
|
||||
char **element, *langstr;
|
||||
nl_item *nlcode;
|
||||
|
||||
pm = (Param) zhalloc(sizeof(struct param));
|
||||
pm->sets.cfn = NULL;
|
||||
pm->gets.cfn = strgetfn;
|
||||
pm->sets.ifn = NULL;
|
||||
pm->gets.ifn = intgetfn;
|
||||
pm->unsetfn = NULL;
|
||||
pm->ct = 0;
|
||||
pm->env = NULL;
|
||||
pm->ename = NULL;
|
||||
pm->old = NULL;
|
||||
|
||||
pm->flags = PM_READONLY | PM_SCALAR;
|
||||
|
||||
nlcode = &nl_vals[0];
|
||||
for (element = (char **)nl_names; *element; element++, nlcode++) {
|
||||
if ((langstr = nl_langinfo(*nlcode)) != NULL) {
|
||||
pm->u.str = dupstring(langstr);
|
||||
pm->nam = dupstring(*element);
|
||||
func((HashNode) pm, flags);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**/
|
||||
#endif /* HAVE_NL_LANGINFO */
|
||||
|
||||
/**/
|
||||
int
|
||||
setup_(Module m)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
boot_(Module m)
|
||||
{
|
||||
#ifdef HAVE_NL_LANGINFO
|
||||
if (!createlihash())
|
||||
return 1;
|
||||
#else
|
||||
unsetparam(langinfo_nam);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
cleanup_(Module m)
|
||||
{
|
||||
#ifdef HAVE_NL_LANGINFO
|
||||
Param pm;
|
||||
|
||||
if ((pm = (Param) paramtab->getnode(paramtab, langinfo_nam)) &&
|
||||
pm == langinfo_pm) {
|
||||
pm->flags &= ~PM_READONLY;
|
||||
unsetparam_pm(pm, 0, 1);
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**/
|
||||
int
|
||||
finish_(Module m)
|
||||
{
|
||||
return 0;
|
||||
}
|
8
Src/Modules/langinfo.mdd
Normal file
8
Src/Modules/langinfo.mdd
Normal file
|
@ -0,0 +1,8 @@
|
|||
name=zsh/langinfo
|
||||
|
||||
link=either
|
||||
load=no
|
||||
|
||||
autoparams="langinfo"
|
||||
|
||||
objects="langinfo.o"
|
|
@ -487,7 +487,7 @@ AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \
|
|||
limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \
|
||||
locale.h errno.h stdio.h stdlib.h unistd.h sys/capability.h \
|
||||
utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h \
|
||||
netinet/in_systm.h pcre.h)
|
||||
netinet/in_systm.h pcre.h langinfo.h)
|
||||
if test $dynamic = yes; then
|
||||
AC_CHECK_HEADERS(dlfcn.h)
|
||||
AC_CHECK_HEADERS(dl.h)
|
||||
|
@ -950,6 +950,7 @@ AC_CHECK_FUNCS(strftime difftime gettimeofday \
|
|||
pathconf sysconf \
|
||||
tgetent tigetflag tigetnum tigetstr setupterm \
|
||||
pcre_compile pcre_study pcre_exec \
|
||||
nl_langinfo \
|
||||
erand48)
|
||||
AC_FUNC_STRCOLL
|
||||
|
||||
|
|
Loading…
Reference in a new issue