diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | libio/iopopen.c | 27 | ||||
-rw-r--r-- | localedata/ChangeLog | 6 | ||||
-rw-r--r-- | localedata/locales/ko_KR | 26 | ||||
-rw-r--r-- | stdio-common/Makefile | 3 | ||||
-rw-r--r-- | stdio-common/tst-popen.c | 72 |
6 files changed, 104 insertions, 40 deletions
@@ -1,3 +1,13 @@ +2004-07-23 Jakub Jelinek <jakub@redhat.com> + + [BZ #282] + * libio/iopopen.c (_IO_new_popen): Use _IO_init instead of + _IO_no_init. Remove wd from struct locked_FILE. + (_IO_wproc_jumps): Remove. + Reported by Andrew Josey <a.josey@opengroup.org>. + * stdio-common/Makefile (tests): Add tst-popen. + * stdio-common/tst-popen.c: New test. + 2004-07-23 Ulrich Drepper <drepper@redhat.com> * posix/bits/posix1_lim.h: Fix values for _POSIX_CHILD_MAX and diff --git a/libio/iopopen.c b/libio/iopopen.c index d1e0589e4d..3537eeb182 100644 --- a/libio/iopopen.c +++ b/libio/iopopen.c @@ -106,7 +106,6 @@ struct _IO_proc_file typedef struct _IO_proc_file _IO_proc_file; static const struct _IO_jump_t _IO_proc_jumps; -static const struct _IO_jump_t _IO_wproc_jumps; static struct _IO_proc_file *proc_file_chain; @@ -213,7 +212,6 @@ _IO_new_popen (command, mode) #ifdef _IO_MTSAFE_IO _IO_lock_t lock; #endif - struct _IO_wide_data wd; } *new_f; _IO_FILE *fp; @@ -224,7 +222,7 @@ _IO_new_popen (command, mode) new_f->fpx.file.file._lock = &new_f->lock; #endif fp = &new_f->fpx.file.file; - _IO_no_init (fp, 0, 0, &new_f->wd, &_IO_wproc_jumps); + INTUSE(_IO_init) (fp, 0); _IO_JUMPS (&new_f->fpx.file) = &_IO_proc_jumps; _IO_new_file_init (&new_f->fpx.file); #if !_IO_UNIFIED_JUMPTABLES @@ -309,29 +307,6 @@ static const struct _IO_jump_t _IO_proc_jumps = { JUMP_INIT(imbue, _IO_default_imbue) }; -static const struct _IO_jump_t _IO_wproc_jumps = { - JUMP_INIT_DUMMY, - JUMP_INIT(finish, _IO_new_file_finish), - JUMP_INIT(overflow, _IO_new_file_overflow), - JUMP_INIT(underflow, _IO_new_file_underflow), - JUMP_INIT(uflow, INTUSE(_IO_default_uflow)), - JUMP_INIT(pbackfail, INTUSE(_IO_default_pbackfail)), - JUMP_INIT(xsputn, _IO_new_file_xsputn), - JUMP_INIT(xsgetn, INTUSE(_IO_default_xsgetn)), - JUMP_INIT(seekoff, _IO_new_file_seekoff), - JUMP_INIT(seekpos, _IO_default_seekpos), - JUMP_INIT(setbuf, _IO_new_file_setbuf), - JUMP_INIT(sync, _IO_new_file_sync), - JUMP_INIT(doallocate, INTUSE(_IO_file_doallocate)), - JUMP_INIT(read, INTUSE(_IO_file_read)), - JUMP_INIT(write, _IO_new_file_write), - JUMP_INIT(seek, INTUSE(_IO_file_seek)), - JUMP_INIT(close, _IO_new_proc_close), - JUMP_INIT(stat, INTUSE(_IO_file_stat)), - JUMP_INIT(showmanyc, _IO_default_showmanyc), - JUMP_INIT(imbue, _IO_default_imbue) -}; - strong_alias (_IO_new_popen, __new_popen) versioned_symbol (libc, _IO_new_popen, _IO_popen, GLIBC_2_1); versioned_symbol (libc, __new_popen, popen, GLIBC_2_1); diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 7ce3d10858..2f62ecf3c4 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,9 @@ +2004-07-14 Petter Reinholdtsen <pere@hungry.com> + + * locales/kr_KO: Change month names to use latin numbers instead + of hangul numeric pronounciation. Patch from Changwoo + Ryu.[BZ #25] + 2004-07-17 Petter Reinholdtsen <pere@hungry.com> * charmaps/IBM874: Add new alias WINDOWS-874 for IBM874 [BZ #244]. diff --git a/localedata/locales/ko_KR b/localedata/locales/ko_KR index ec2815a66d..e6728decfc 100644 --- a/localedata/locales/ko_KR +++ b/localedata/locales/ko_KR @@ -1179,13 +1179,13 @@ order_start forward <U044E> <U044F> %%% -% HANGUL SYLLABLES +% HANGUL SYLLABLES <UAC00> .. <UD7A3> %%% % HANJA. For the moment, Hanjas defined in KS X 1001 -% are enumerated in the order they're listed in KS X 1001. +% are enumerated in the order they're listed in KS X 1001. <U4F3D> <U4F73> <U5047> @@ -6153,33 +6153,33 @@ abmon "<U0020><U0031><UC6D4>";"<U0020><U0032><UC6D4>";/ "<U0020><U0039><UC6D4>";"<U0031><U0030><UC6D4>";/ "<U0031><U0031><UC6D4>";"<U0031><U0032><UC6D4>" -mon "<UC77C><UC6D4>";"<UC774><UC6D4>";/ - "<UC0BC><UC6D4>";"<UC0AC><UC6D4>";/ - "<UC624><UC6D4>";"<UC720><UC6D4>";/ - "<UCE60><UC6D4>";"<UD314><UC6D4>";/ - "<UAD6C><UC6D4>";"<UC2DC><UC6D4>";/ - "<UC2ED><UC77C><UC6D4>";"<UC2ED><UC774><UC6D4>" +mon "<U0031><UC6D4>";"<U0032><UC6D4>";/ + "<U0033><UC6D4>";"<U0034><UC6D4>";/ + "<U0035><UC6D4>";"<U0036><UC6D4>";/ + "<U0037><UC6D4>";"<U0038><UC6D4>";/ + "<U0039><UC6D4>";"<U0031><U0030><UC6D4>";/ + "<U0031><U0031><UC6D4>";"<U0031><U0032><UC6D4>" % Appropriate date and time representation (%c) % "%x (%a) %r" d_t_fmt "<U0025><U0078><U0020><U0028><U0025><U0061><U0029><U0020><U0025><U0072>" % Appropriate date representation (%x) -% "%Y<NYEON> %m<WEOL> %d<IL> +% "%Y<NYEON> %m<WEOL> %d<IL> d_fmt / "<U0025><U0059><UB144><U0020><U0025><U006D><UC6D4><U0020><U0025><U0064><UC77C>" %d_fmt "<U0025><U0059><UB144><U0020><U0025><U006D><UC6D4><U0020><U0025><U0065><UC77C>" % Appropriate time representation (%X) -% "%H<SI> %M<BUN> %S<CHO>" +% "%H<SI> %M<BUN> %S<CHO>" t_fmt "<U0025><U0048><UC2DC><U0020><U0025><U004D><UBD84><U0020><U0025><U0053><UCD08>" -% Strings for AM/PM (%p) +% Strings for AM/PM (%p) % "<O><JEON>";"<O><HU>" am_pm "<UC624><UC804>";"<UC624><UD6C4>" % Appropriate AM/PM time representation (%r) -% "%p %H<SI> %M<BUN> %S<CHO>" +% "%p %H<SI> %M<BUN> %S<CHO>" t_fmt_ampm "<U0025><U0070><U0020><U0025><U0049><UC2DC><U0020><U0025><U004D><UBD84><U0020><U0025><U0053><UCD08>" % Appropriate date representation (date(1)) "%Y. %m. %d. (%a) %H:%M:%S %Z" @@ -6219,7 +6219,7 @@ tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>" % "(%A) %l" : (areacode) local_number tel_dom_fmt "<U0028><U0025><U0041><U0029><U0020><U0025><U006C>" -% Alternative form : +% Alternative form : % "%A-%l" : areacode-local_number %tel_dom_fmt "<U0025><U0041><U002D><U0020><U0025><U006C>" int_prefix "<U0038><U0032>" diff --git a/stdio-common/Makefile b/stdio-common/Makefile index 9c50b954d5..ab573e6940 100644 --- a/stdio-common/Makefile +++ b/stdio-common/Makefile @@ -52,7 +52,8 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \ tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ - tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 + tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 \ + tst-popen test-srcs = tst-unbputc tst-printf diff --git a/stdio-common/tst-popen.c b/stdio-common/tst-popen.c new file mode 100644 index 0000000000..980cf935a7 --- /dev/null +++ b/stdio-common/tst-popen.c @@ -0,0 +1,72 @@ +/* Copyright (C) 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2004. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <stdio.h> +#include <wchar.h> + +static int +do_test (void) +{ + FILE *f = popen ("echo test", "r"); + int result = 0, ret; + char *line = NULL; + size_t len = 0; + + if (f == NULL) + { + printf ("popen failed %m"); + return 1; + } + + /* POSIX says that pipe streams are byte-oriented. */ + if (fwide (f, 0) >= 0) + { + puts ("popen did not return byte-oriented stream"); + result = 1; + } + + if (getline (&line, &len, f) != 5) + { + puts ("could not read line from popen"); + result = 1; + } + else if (strcmp (line, "test\n") != 0) + { + printf ("read \"%s\"\n", line); + result = 1; + } + + if (getline (&line, &len, f) != -1) + { + puts ("second getline did not return -1"); + result = 1; + } + + ret = pclose (f); + if (ret != 0) + { + printf ("pclose returned %d\n", ret); + result = 1; + } + + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |