From: Heikki Linnakangas Date: Wed, 20 Apr 2011 06:49:44 +0000 (+0300) Subject: Quotes in strings injected into bki file need to escaped. In particular, X-Git-Tag: REL9_0_5~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a6d60fd0c01671773055558b687199ede961a97;p=postgresql Quotes in strings injected into bki file need to escaped. In particular, "People's Republic of China" locale on Windows was causing initdb to fail. This fixes bug #5818 reported by yulei. On master, this makes the mapping of "People's Republic of China" to just "China" obsolete. In 9.0 and 8.4, just fix the escaping. Earlier versions didn't have locale names in bki file. --- diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 0aee70de1d..7ca4c93431 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -1313,9 +1313,9 @@ bootstrap_template1(void) bki_lines = replace_token(bki_lines, "ENCODING", encodingid); - bki_lines = replace_token(bki_lines, "LC_COLLATE", lc_collate); + bki_lines = replace_token(bki_lines, "LC_COLLATE", escape_quotes(lc_collate)); - bki_lines = replace_token(bki_lines, "LC_CTYPE", lc_ctype); + bki_lines = replace_token(bki_lines, "LC_CTYPE", escape_quotes(lc_ctype)); /* * Pass correct LC_xxx environment to bootstrap.