From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 435 invoked from network); 26 Apr 1997 19:52:59 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 26 Apr 1997 19:52:59 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id PAA22009; Sat, 26 Apr 1997 15:46:46 -0400 (EDT) Resent-Date: Sat, 26 Apr 1997 15:46:46 -0400 (EDT) Date: Sat, 26 Apr 1997 20:49:59 +0100 (BST) From: Zefram Message-Id: <15229.199704261949@stone.dcs.warwick.ac.uk> Subject: parameter bugfix X-Patch: 251 Resent-Message-ID: <"uukn4.0.qN5.bkbOp"@euclid> To: zsh-workers@math.gatech.edu Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3089 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- One of my earlier patches, 3014 I think, merging a couple of elements of the param structure, breaks the LC_* parameters, which rely on those two elements being distinct. This patch fixes it; as only lcsetfn() is affected, and the necessary table already exists, it modifies lcsetfn() to not require the data member. -zefram *** Src/hashtable.h 1997/03/31 18:09:29 1.32 --- Src/hashtable.h 1997/04/26 15:32:33 *************** *** 114,133 **** IPDEF2("_", underscoregetfn, nullsetfn, PM_READONLY), #ifdef LC_ALL ! #define LCIPDEF(A,B) {NULL,A,PM_SCALAR|PM_SPECIAL|PM_UNSET,BR((void *)B),SFN(lcsetfn),GFN(strgetfn),stdunsetfn,0,NULL,NULL,NULL,0} IPDEF2("LANG", strgetfn, langsetfn, PM_UNSET), IPDEF2("LC_ALL", strgetfn, lc_allsetfn, PM_UNSET), #ifdef LC_COLLATE ! LCIPDEF("LC_COLLATE", LC_COLLATE), #endif #ifdef LC_CTYPE ! LCIPDEF("LC_CTYPE", LC_CTYPE), #endif #ifdef LC_MESSAGES ! LCIPDEF("LC_MESSAGES", LC_MESSAGES), #endif #ifdef LC_TIME ! LCIPDEF("LC_TIME", LC_TIME), #endif #endif --- 114,133 ---- IPDEF2("_", underscoregetfn, nullsetfn, PM_READONLY), #ifdef LC_ALL ! #define LCIPDEF(name) IPDEF2(name, strgetfn, lcsetfn, PM_UNSET) IPDEF2("LANG", strgetfn, langsetfn, PM_UNSET), IPDEF2("LC_ALL", strgetfn, lc_allsetfn, PM_UNSET), #ifdef LC_COLLATE ! LCIPDEF("LC_COLLATE"), #endif #ifdef LC_CTYPE ! LCIPDEF("LC_CTYPE"), #endif #ifdef LC_MESSAGES ! LCIPDEF("LC_MESSAGES"), #endif #ifdef LC_TIME ! LCIPDEF("LC_TIME"), #endif #endif *** Src/params.c 1997/04/01 08:59:53 1.45 --- Src/params.c 1997/04/26 15:30:09 *************** *** 1615,1626 **** void lcsetfn(Param pm, char *x) { strsetfn(pm, x); if (getsparam("LC_ALL")) return; if (!x) x = getsparam("LANG"); ! setlocale((int) pm->u.data, x ? x : ""); } #endif --- 1615,1631 ---- void lcsetfn(Param pm, char *x) { + struct localename *ln; + strsetfn(pm, x); if (getsparam("LC_ALL")) return; if (!x) x = getsparam("LANG"); ! ! for (ln = lc_names; ln->name; ln++) ! if (!strcmp(ln->name, pm->nam)) ! setlocale(ln->category, x ? x : ""); } #endif -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: ascii iQCVAwUBM2IiTHD/+HJTpU/hAQGexAP+NZpG+21ARK142RgsiJnTSQqbpaxryB54 xxcaPXAgk9+2HtyMNAs30P5gUqOHkQVxjuPZY6KL01TbsW0u7gjpOZ49uhyw1dpY +BkAH974h0ncKofEDNuTXMM0Qcp9wOvPht3oiQbkd5PMgvQVnjhKzqvxILr+l+LC Pc9EWqwcnLc= =4qOL -----END PGP SIGNATURE-----