This list is closed, nobody may subscribe to it.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(13) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
|
Jun
(38) |
Jul
(10) |
Aug
(70) |
Sep
(63) |
Oct
(61) |
Nov
(41) |
Dec
(28) |
| 2002 |
Jan
(43) |
Feb
(11) |
Mar
(9) |
Apr
(2) |
May
(97) |
Jun
(94) |
Jul
(13) |
Aug
(49) |
Sep
(41) |
Oct
(24) |
Nov
(55) |
Dec
(126) |
| 2003 |
Jan
(90) |
Feb
(75) |
Mar
(32) |
Apr
(24) |
May
(54) |
Jun
(54) |
Jul
(22) |
Aug
(4) |
Sep
(16) |
Oct
(8) |
Nov
(6) |
Dec
(13) |
| 2004 |
Jan
|
Feb
(17) |
Mar
(60) |
Apr
(21) |
May
(12) |
Jun
|
Jul
(13) |
Aug
|
Sep
(29) |
Oct
|
Nov
|
Dec
(2) |
| 2005 |
Jan
(22) |
Feb
(3) |
Mar
(2) |
Apr
(13) |
May
(82) |
Jun
(18) |
Jul
(30) |
Aug
(17) |
Sep
(3) |
Oct
(19) |
Nov
(4) |
Dec
(8) |
| 2006 |
Jan
(1) |
Feb
(6) |
Mar
(2) |
Apr
(40) |
May
|
Jun
(21) |
Jul
(1) |
Aug
(410) |
Sep
(3) |
Oct
|
Nov
(56) |
Dec
(7) |
| 2007 |
Jan
(19) |
Feb
|
Mar
(4) |
Apr
(8) |
May
(19) |
Jun
(6) |
Jul
(4) |
Aug
(6) |
Sep
|
Oct
(4) |
Nov
(3) |
Dec
(2) |
| 2008 |
Jan
(13) |
Feb
(18) |
Mar
(12) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(6) |
Mar
(8) |
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
(2) |
Sep
(11) |
Oct
(13) |
Nov
(17) |
Dec
(6) |
| 2010 |
Jan
(24) |
Feb
(10) |
Mar
(27) |
Apr
(20) |
May
(108) |
Jun
(8) |
Jul
(23) |
Aug
(38) |
Sep
(49) |
Oct
(17) |
Nov
(12) |
Dec
(14) |
| 2011 |
Jan
(17) |
Feb
(7) |
Mar
(28) |
Apr
(8) |
May
(20) |
Jun
(11) |
Jul
(7) |
Aug
(12) |
Sep
(4) |
Oct
(20) |
Nov
(19) |
Dec
(2) |
| 2012 |
Jan
(2) |
Feb
(6) |
Mar
(5) |
Apr
(24) |
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(18) |
Sep
(38) |
Oct
(26) |
Nov
(12) |
Dec
(6) |
| 2013 |
Jan
(19) |
Feb
(18) |
Mar
(44) |
Apr
(35) |
May
(18) |
Jun
(21) |
Jul
(10) |
Aug
(19) |
Sep
(44) |
Oct
(25) |
Nov
(1) |
Dec
(2) |
| 2014 |
Jan
(8) |
Feb
|
Mar
|
Apr
(5) |
May
(1) |
Jun
(3) |
Jul
|
Aug
(3) |
Sep
|
Oct
(4) |
Nov
(4) |
Dec
(7) |
| 2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(4) |
Jul
(6) |
Aug
(2) |
Sep
(8) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
| 2016 |
Jan
(7) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(9) |
Jun
(4) |
Jul
(20) |
Aug
(4) |
Sep
(7) |
Oct
(6) |
Nov
(9) |
Dec
(2) |
| 2017 |
Jan
(7) |
Feb
(7) |
Mar
(5) |
Apr
|
May
(1) |
Jun
(4) |
Jul
(12) |
Aug
(4) |
Sep
(1) |
Oct
(4) |
Nov
(11) |
Dec
(14) |
| 2018 |
Jan
(3) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(2) |
2
|
|
3
(1) |
4
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
13
|
14
(1) |
15
|
16
|
|
17
|
18
(2) |
19
|
20
|
21
|
22
|
23
|
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
|
From: Keith M. <kei...@us...> - 2007-06-18 22:36:56
|
Update of /cvsroot/mingw/catgets/include In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv29204/include Modified Files: gcmsgs.h Added Files: mcutfsig.h Log Message: Handle unicode input streams. --- NEW FILE: mcutfsig.h --- #ifndef _MCUTFSIG_H_ /* * mcutfsig.h * * $Id: mcutfsig.h,v 1.1 2007/06/18 22:36:08 keithmarshall Exp $ * * Copyright (C) 2007, Keith Marshall * * Header file defining the `mc_utf_signature' function API, and a set * of supporting macros, used for obtaining and manipulating an encoding * `signature' for UTF-8, UTF-16 and UTF-32 encoded input files. * * Written by Keith Marshall <kei...@us...> * Last Revision: 30-May-2007 * * * This is free software. It is provided AS IS, in the hope that it may * be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY * of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. * * Permission is granted to redistribute this software, either "as is" or * in modified form, under the terms of the GNU General Public License, as * published by the Free Software Foundation; either version 2, or (at your * option) any later version. * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to the * Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, * MA 02110-1301, USA. * */ #define _MCUTFSIG_H_ /* * Flags used to designate the `endianness' of the input encoding, * and to record presence or absence of a byte order mark. * */ #define UTF_BIG_ENDIAN 0100 #define UTF_LITTLE_ENDIAN 0200 #define UTF_WITH_BYTE_ORDER_MARK 0400 /* * Mask used to isolate a bit-field representing the number of bytes * per encoding unit in the input stream. * */ #define UTF_CODE_UNIT_SIZE_MASK 0007 /* * Macros used to disambiguate the codeset name, wrt byte order. * */ #define UTF_IS_MB(FLAGS) (UTF_CODE_SIZE(FLAGS) > 1) #define UTF_CODE_SIZE(FLAGS) ((FLAGS) & UTF_CODE_UNIT_SIZE_MASK) #define UTF_BYTE_ORDER(FLAGS) (UTF_IS_MB(FLAGS) ? UTF_SUFFIX(FLAGS) : '\0') #define UTF_SUFFIX(FLAGS) (((FLAGS) & UTF_LITTLE_ENDIAN) ? 'L' : 'B') /* * Function prototypes. * */ unsigned short mc_ucs_signature( unsigned char *stream ); #endif /* !defined(_MCUTFSIG_H_): $RCSfile: mcutfsig.h,v $Revision: 1.1 $: end of file */ Index: gcmsgs.h =================================================================== RCS file: /cvsroot/mingw/catgets/include/gcmsgs.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gcmsgs.h 12 May 2007 22:51:10 -0000 1.3 --- gcmsgs.h 18 Jun 2007 22:36:08 -0000 1.4 *************** *** 45,49 **** #define MSG_UNKNOWN_CODESET 2, 2, "%s: %s: unknown codeset descriptor\n" #define MSG_CODESET_CLASH 2, 3, "%s:%u: codeset `%s' conflicts with prior declaration\n" ! #define MSG_HAD_CODESET 2, 4, "%s:%u: codeset `%s' was previously declared here\n" #define MSG_SETNUM_NOT_INCR 2, 5, "invalid set number: expecting > %d; got %d\n" #define MSG_MSGNUM_NOT_INCR 2, 6, "invalid message number: expecting > %d; got %d\n" --- 45,49 ---- #define MSG_UNKNOWN_CODESET 2, 2, "%s: %s: unknown codeset descriptor\n" #define MSG_CODESET_CLASH 2, 3, "%s:%u: codeset `%s' conflicts with prior declaration\n" ! #define MSG_HAD_CODESET 2, 4, "%s:%u: codeset `%s' previously declared here\n" #define MSG_SETNUM_NOT_INCR 2, 5, "invalid set number: expecting > %d; got %d\n" #define MSG_MSGNUM_NOT_INCR 2, 6, "invalid message number: expecting > %d; got %d\n" *************** *** 54,57 **** --- 54,61 ---- #define MSG_MISSING_NEWLINE 3, 4, "%s:%u: missing newline at end of file\n" #define MSG_BAD_INDEX 3, 5, "invalid reference in message index" + #define MSG_UTF_UNKNOWN 4, 1, "%s:unrecognisable encoding format\n" + #define MSG_UTF_SIZE_ERROR 4, 2, "%s:invalid byte count per code point; value was %d\n" + #define MSG_UTF_FRAME_ERROR 4, 3, "%s:%u:UTF-%u%cE input framing error\n" + #define MSG_UTF_CODESET 4, 4, "%s:input codeset identified as %s; conflicts with ...\n" /* ! * !$ end of file |
|
From: Keith M. <kei...@us...> - 2007-06-18 22:36:56
|
Update of /cvsroot/mingw/catgets In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv29204 Modified Files: ChangeLog Makefile.in aclocal.m4 configure configure.ac mcsource.c Added Files: mcutfsig.c Log Message: Handle unicode input streams. Index: configure =================================================================== RCS file: /cvsroot/mingw/catgets/configure,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure 6 Apr 2007 22:34:55 -0000 1.1.1.1 --- configure 18 Jun 2007 22:36:07 -0000 1.2 *************** *** 311,315 **** #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S AR ac_ct_AR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MAKE_DLL DLLVERSION HOST_PATH_SEPARATOR REPLACEMENT_HEADERS CPP EGREP LOCAL_HEADERS GENCAT_OBJECTS INCICONV LIBICONV LIBOBJS LTLIBOBJS' ac_subst_files='' --- 311,315 ---- #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S AR ac_ct_AR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MAKE_DLL DLLVERSION canonical_prefix HOST_PATH_SEPARATOR REPLACEMENT_HEADERS CPP EGREP LOCAL_HEADERS GENCAT_OBJECTS INCICONV LIBICONV LIBOBJS LTLIBOBJS' ac_subst_files='' *************** *** 2509,2515 **** echo "${ECHO_T}${DLLVERSION}" >&6 ! # We need to identify the appropriate PATH separator character, ! # to be used in the default NLSPATH definition. # echo "$as_me:$LINENO: checking NLSPATH separator character used at runtime" >&5 echo $ECHO_N "checking NLSPATH separator character used at runtime... $ECHO_C" >&6 --- 2509,2537 ---- echo "${ECHO_T}${DLLVERSION}" >&6 ! # We need to identify the canonical path prefix, and the appropriate ! # PATH separator character, to be used in the default NLSPATH definition. # + ac_val=$prefix; test "x$ac_val" = xNONE && ac_val=$ac_default_prefix + ac_dir="$ac_val" + pwd -W >/dev/null 2>&1 && ac_pwd_w="pwd -W" || ac_pwd_w=pwd + until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w` + do + ac_dir=`(dirname "$ac_dir") 2>/dev/null || + $as_expr X"$ac_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dir" : 'X\(//\)[^/]' \| \ + X"$ac_dir" : 'X\(//\)$' \| \ + X"$ac_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || + echo X"$ac_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + ac_dir=`echo "$ac_dir" | sed 's?^[./]*??'` + ac_val=`echo "$ac_val" | sed 's?/*$??'` + canonical_prefix=`echo "$ac_val" | sed "s?^[./]*$ac_dir/*?$ac_val/?"' + s?/*$??'` echo "$as_me:$LINENO: checking NLSPATH separator character used at runtime" >&5 echo $ECHO_N "checking NLSPATH separator character used at runtime... $ECHO_C" >&6 *************** *** 4333,4336 **** --- 4355,4359 ---- GENCAT_OBJECTS=${GENCAT_OBJECTS}' mcsource.$(OBJEXT)' GENCAT_OBJECTS=${GENCAT_OBJECTS}' mcmerge.$(OBJEXT)' + GENCAT_OBJECTS=${GENCAT_OBJECTS}' mcutfsig.$(OBJEXT)' # We also require `iconv', always expecting it to be pre-installed; we *************** *** 5469,5472 **** --- 5492,5496 ---- s,@MAKE_DLL@,$MAKE_DLL,;t t s,@DLLVERSION@,$DLLVERSION,;t t + s,@canonical_prefix@,$canonical_prefix,;t t s,@HOST_PATH_SEPARATOR@,$HOST_PATH_SEPARATOR,;t t s,@REPLACEMENT_HEADERS@,$REPLACEMENT_HEADERS,;t t Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/catgets/ChangeLog,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ChangeLog 1 Jun 2007 20:33:57 -0000 1.13 --- ChangeLog 18 Jun 2007 22:36:06 -0000 1.14 *************** *** 1,2 **** --- 1,36 ---- + 2007-06-18 Keith Marshall <kei...@us...> + + Handle unicode input streams. + + * mcutfsig.c, include/mcutfsig.h: New files; they define the + interface and implementation for... + (mc_utf_signature): ...this new function. + + * mcsource.c (mc_discard): New static function. + (mc_source): Use it to clean up heap on abnormal termination. + Include `mcutfsig.h'; use `mc_utf_signature' to identify unicode + streams; map codeset using new local variables `input_encoding' + and `input_code_size'; use them with... + (UTF_TYPE): ...this new macro, to parse input accordingly. + + * include/gcmsgs.h (MSG_HAD_CODESET): New wording. + (MSG_UTF_CODESET, NMSG_UTF_UNKNOWN): New message definitions. + (MSG_UTF_SIZE_ERROR, MSG_UTF_FRAME_ERROR): Likewise. + + * Makefile.in (canonical_prefix): New macro. + (HEADER_TRANSFORM_SCRIPT): Use it. + (GENCAT_HEADERS): Add `mcutfsig.h'. + (GENCAT_SOURCES): Add `mcutfsig.c'. + (target): Macro renamed as... + (tool_prefix): ...this. + (install-progs): Updated to use it. + (clean): Remove all locally generated headers. + + * aclocal.m4 (MINGW_AC_HOST_CANONICAL_PREFIX): New macro. + (MSYS_AC_CANONICAL_PATH): New macro; copied from `man' sources. + * configure.ac: Use them. + (GENCAT_AC_OBJECTS_ADD): Add `mcutfsig'. + * configure: Regenerated. + 2007-06-01 Keith Marshall <kei...@us...> Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/catgets/Makefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile.in 6 Apr 2007 22:34:55 -0000 1.1.1.1 --- Makefile.in 18 Jun 2007 22:36:06 -0000 1.2 *************** *** 33,36 **** --- 33,38 ---- exec_prefix = @exec_prefix@ + canonical_prefix = @canonical_prefix@ + bindir = @bindir@ libdir = @libdir@ *************** *** 86,91 **** CATGETS_OBJECTS = $(subst .c,.$(OBJEXT),$(CATGETS_SOURCES)) ! GENCAT_HEADERS = gencat.h gcmsgs.h ! GENCAT_SOURCES = gencat.c mcload.c mcsource.c mciconv.c mcmerge.c GENCAT_OBJECTS = @GENCAT_OBJECTS@ --- 88,93 ---- CATGETS_OBJECTS = $(subst .c,.$(OBJEXT),$(CATGETS_SOURCES)) ! GENCAT_HEADERS = gencat.h gcmsgs.h mcutfsig.h ! GENCAT_SOURCES = gencat.c mcload.c mcsource.c mciconv.c mcmerge.c mcutfsig.c GENCAT_OBJECTS = @GENCAT_OBJECTS@ *************** *** 111,115 **** HEADER_TRANSFORM_SCRIPT = \ ! -e 's,@HOST_PREFIX@,${prefix},g' \ -e 's,@PATH_SEPARATOR_INTERNAL@,$(PATH_SEPARATOR_INTERNAL),g' \ -e 's,$(subst .,\.,$@)\.in$$,$@ -- $(AUTOGENERATED),' --- 113,117 ---- HEADER_TRANSFORM_SCRIPT = \ ! -e 's,@HOST_PREFIX@,${canonical_prefix},g' \ -e 's,@PATH_SEPARATOR_INTERNAL@,$(PATH_SEPARATOR_INTERNAL),g' \ -e 's,$(subst .,\.,$@)\.in$$,$@ -- $(AUTOGENERATED),' *************** *** 147,151 **** mkinstalldirs = ${srcdir}/mkinstalldirs ! target = @target_alias@`test -n "@target_alias@" && echo "-"` INSTALL = @INSTALL@ --- 149,153 ---- mkinstalldirs = ${srcdir}/mkinstalldirs ! tool_prefix = @target_alias@`test -n "@target_alias@" && echo "-"` INSTALL = @INSTALL@ *************** *** 160,167 **** $(mkinstalldirs) --require ${exec_prefix} ${bindir} ${libdir} for prog in $(BUILD_PROGS); do \ ! $(INSTALL_PROGRAM) $$prog ${bindir}/$(target)$$prog; \ done for prog in $(INSTALL_PROGS); do \ ! $(INSTALL_PROGRAM) ${srcdir}/$$prog ${bindir}/$(target)$$prog; \ done --- 162,169 ---- $(mkinstalldirs) --require ${exec_prefix} ${bindir} ${libdir} for prog in $(BUILD_PROGS); do \ ! $(INSTALL_PROGRAM) $$prog ${bindir}/$(tool_prefix)$$prog; \ done for prog in $(INSTALL_PROGS); do \ ! $(INSTALL_PROGRAM) ${srcdir}/$$prog ${bindir}/$(tool_prefix)$$prog; \ done *************** *** 231,234 **** --- 233,237 ---- clean: + rm -f nlspath.h $(LOCAL_HEADERS) $(REPLACEMENT_HEADERS) rm -f *.$(OBJEXT) *~ gencat$(EXEEXT) Index: mcsource.c =================================================================== RCS file: /cvsroot/mingw/catgets/mcsource.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** mcsource.c 21 May 2007 04:13:20 -0000 1.10 --- mcsource.c 18 Jun 2007 22:36:07 -0000 1.11 *************** *** 58,61 **** --- 58,62 ---- #include <platform.h> + #include <mcutfsig.h> #ifdef DEBUG_BUFSIZ *************** *** 206,212 **** --- 207,239 ---- } + static inline + struct msgdict *mc_discard( struct msgdict *index, char *messages ) + { + /* A helper function, to reclaim all memory allocated to a local + * message dictionary, prior to aborting compilation of the current + * message catalogue source file. + */ + while( index ) + { + /* Walk the linked list of dictionary index entries, (if any), + * releasing the memory block alloted to each individually. + */ + struct msgdict *next = index->link; + free( index ); + index = next; + } + if( messages ) + /* + * All of the indexed messages are collected into a single block, + * which is allocated, and so must be released, separately. + */ + free( messages ); + return index; + } + struct msgdict *mc_source( const char *input ) { # define CODESET_DECLARED codeset_decl_src, codeset_decl_lineno + # define UTF_TYPE(ORDER) 8 * input_code_size, (ORDER) dinvoke( int dtrace = 0; ) *************** *** 232,235 **** --- 259,265 ---- static const char *codeset_decl_src = NULL; static unsigned int codeset_decl_lineno = 0; + + unsigned short input_encoding = 0, input_code_size; + static iconv_t iconv_map[2] = {(iconv_t)(-1), (iconv_t)(-1)}; char *messages; off_t msgloc, headroom; *************** *** 298,301 **** --- 328,426 ---- int high_water_mark = count - ( count >> 2 ); dfprintf(( stderr, "\n%s:%u:read %u byte%s", input, linenum, count, count == 1 ? "" : "s" )); + + if( input_encoding == 0 ) + { + input_encoding = mc_utf_signature( buf ); + switch( input_code_size = input_encoding & UTF_CODE_UNIT_SIZE_MASK ) + { + case 1: + if( (input_encoding & UTF_WITH_BYTE_ORDER_MARK) != 0 ) + { + /* + * This is UTF-8 input encoding, affirmed by the presence of + * the byte order mark, (three bytes), which we must skip. + */ + p += 3; + count -= 3; + } + break; + + case 2: + case 4: + if( (input_encoding & UTF_WITH_BYTE_ORDER_MARK) != 0 ) + { + /* This is either UTF-16, or UTF-32, also affirmed by the BOM, + * which occupies the first code unit, so skip it. + */ + p += input_code_size; + count -= input_code_size; + } + break; + + default: + /* + * This isn't valid, for any recognisable codeset in the required + * POSIX Portable Character Set input context; diagnose, clean up, + * and bail out. + */ + dfputc(( '\n', stderr )); + fprintf( errmsg( MSG_UTF_UNKNOWN ), input ); + fprintf( errmsg( MSG_UTF_SIZE_ERROR ), input, input_code_size ); + free( messages ); + close( input_fd ); + return NULL; + } + + if( input_encoding > 1 ) + { + /* We've detected a UTF input encoding, which implicitly specifies + * the codeset of the messages defined within this source file. + */ + char utf_byte_order = UTF_BYTE_ORDER( input_encoding ); + sprintf( keyword, "UTF-%d%cE", 8 * input_code_size, utf_byte_order ); + + dfprintf(( stderr, "\n%s:", input )); + dinvoke( if( (input_encoding & UTF_WITH_BYTE_ORDER_MARK) != 0 ) ) + dfprintf(( stderr, "unicode byte order mark detected; " )); + dfprintf(( stderr, "encoding identified as %s", keyword )); + + if( codeset != NULL ) + { + /* We could coalesce these two conditions into a single test, + * but we choose to nest them thus, to facilitate a possible + * future change, to support codeset alternation. + */ + if( strcmp( keyword, codeset ) != 0 ) + { + /* The detected UTF input encoding is not compatible with the + * previously declared codeset of the messages in the catalogue; + * diagnose, and skip this source file. + */ + dfputc(( '\n', stderr )); + fprintf( errmsg( MSG_UTF_CODESET ), input, keyword ); + fprintf( errmsg( MSG_HAD_CODESET ), CODESET_DECLARED, codeset ); + free( messages ); + close( input_fd ); + return NULL; + } + } + + else + { + /* We don't yet have a codeset declaration; establish one implicitly, + * based on the identified input encoding. + */ + id = strdup( keyword ); + if( (codeset = map_codeset( iconv_map, id, "wchar_t" )) == NULL ) + { + free( id ); + } + + else + codeset_decl_src = input; + } + } + } + while( count > 0 ) { *************** *** 326,329 **** --- 451,467 ---- */ p += ((skip = iconv_mbtowc( &c, p, count )) > 0) ? skip : 0; + + /* For UTF-16 or UTF-32 input encodings, the `skip' count *must* + * match the codeset size, ... + */ + if( (input_code_size > 1) && (skip != input_code_size) ) + { + /* ... or we have a framing error; diagnose, + * and discard this input stream. + */ + dfputc(( '\n', stderr )); + fprintf( errmsg( MSG_UTF_FRAME_ERROR ), input, linenum, codeset ); + return mc_discard( head, messages ); + } } *************** *** 331,337 **** { /* We are parsing context which is defined in the POSIX, ! * or "C" locale, so read single byte character sequences. */ c = (wchar_t)(*p++); } --- 469,512 ---- { /* We are parsing context which is defined in the POSIX, ! * or "C" locale, so read single byte character sequences, ! * but stripping out any padding NULs required to fill the ! * input stream to a UTF-16 or UTF-32 framing boundary. */ + int utf_skip = input_code_size - 1; + if( (utf_skip > 0) && ((input_encoding & UTF_BIG_ENDIAN) != 0) ) + { + /* Big-Endian Unicode should have padding NULs before the + * POSIX `C' locale byte required. + */ + while( (*p == '\0') && utf_skip-- && count-- ) + ++p; + if( (utf_skip > 0) || (*p == '\0') ) + { + /* Diagnose and bail out, if the number of padding NULs + * wasn't what we expected. + */ + dfputc(( '\n', stderr )); + fprintf( errmsg( MSG_UTF_FRAME_ERROR ), input, linenum, UTF_TYPE( 'B' )); + return mc_discard( head, messages ); + } + } c = (wchar_t)(*p++); + if( (utf_skip > 0) && ((input_encoding & UTF_LITTLE_ENDIAN) != 0) ) + { + /* Little-Endian Unicode should have the padding NULs after + * this significant byte. + */ + while( (*p == '\0') && utf_skip-- && count-- ) + ++p; + if( (utf_skip > 0) || (*p == '\0') ) + { + /* Diagnose and bail out, if the number of padding NULs + * wasn't what we expected. + */ + dfputc(( '\n', stderr )); + fprintf( errmsg( MSG_UTF_FRAME_ERROR ), input, linenum, UTF_TYPE( 'L' )); + return mc_discard( head, messages ); + } + } } *************** *** 461,464 **** --- 636,640 ---- if( strcmp( codeset, id ) != 0 ) { + dfputc(( '\n', stderr )); fprintf( errmsg( MSG_CODESET_CLASH ), input, linenum, id ); fprintf( errmsg( MSG_HAD_CODESET ), CODESET_DECLARED, codeset ); *************** *** 466,470 **** free( id ); } ! dfprintf(( stderr, "; declare %s", keyword )); } } --- 642,646 ---- free( id ); } ! dfprintf(( stderr, "\n%s:%u:declare %s", input, linenum, keyword )); } } Index: configure.ac =================================================================== RCS file: /cvsroot/mingw/catgets/configure.ac,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure.ac 6 Apr 2007 22:34:52 -0000 1.1.1.1 --- configure.ac 18 Jun 2007 22:36:07 -0000 1.2 *************** *** 66,72 **** MINGW_AC_HOST_CONFIG_DLL([__MINGW_AC_PACKAGE_DLL_VERSION__]) ! # We need to identify the appropriate PATH separator character, ! # to be used in the default NLSPATH definition. # MINGW_AC_HOST_PATH_SEPARATOR([NLSPATH]) --- 66,73 ---- MINGW_AC_HOST_CONFIG_DLL([__MINGW_AC_PACKAGE_DLL_VERSION__]) ! # We need to identify the canonical path prefix, and the appropriate ! # PATH separator character, to be used in the default NLSPATH definition. # + MINGW_AC_HOST_CANONICAL_PREFIX MINGW_AC_HOST_PATH_SEPARATOR([NLSPATH]) *************** *** 109,112 **** --- 110,114 ---- GENCAT_AC_OBJECTS_ADD([mcsource]) GENCAT_AC_OBJECTS_ADD([mcmerge]) + GENCAT_AC_OBJECTS_ADD([mcutfsig]) # We also require `iconv', always expecting it to be pre-installed; we Index: aclocal.m4 =================================================================== RCS file: /cvsroot/mingw/catgets/aclocal.m4,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** aclocal.m4 6 Apr 2007 22:34:52 -0000 1.1.1.1 --- aclocal.m4 18 Jun 2007 22:36:06 -0000 1.2 *************** *** 16,19 **** --- 16,55 ---- ])# MINGW_AC_WIN32_NATIVE_HOST + # MINGW_AC_HOST_CANONICAL_PREFIX + # ------------------------------ + # Set the AC_SUBST variable `canonical_prefix' to the canonical form + # of `prefix', as applicable for a mingw32 host. + # + AC_DEFUN([MINGW_AC_HOST_CANONICAL_PREFIX], + [AC_SUBST([canonical_prefix])dnl + ac_val=$prefix; test "x$ac_val" = xNONE && ac_val=$ac_default_prefix + MSYS_AC_CANONICAL_PATH([canonical_prefix],[$ac_val])dnl + ])# MINGW_AC_HOST_CANONICAL_PREFIX + + # MSYS_AC_CANONICAL_PATH( VAR, PATHNAME ) + # --------------------------------------- + # Set VAR to the canonically resolved absolute equivalent of PATHNAME, + # (which may be a relative path, and need not refer to any existing entity). + # + # On Win32-MSYS build hosts, the returned path is resolved to its true + # native Win32 path name, (but with slashes, not backslashes). + # + # On any other system, it is simply the result which would be obtained + # if PATHNAME represented an existing directory, and the pwd command was + # executed in that directory. + # + AC_DEFUN([MSYS_AC_CANONICAL_PATH], + [ac_dir="$2" + pwd -W >/dev/null 2>&1 && ac_pwd_w="pwd -W" || ac_pwd_w=pwd + until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w` + do + ac_dir=`AS_DIRNAME(["$ac_dir"])` + done + ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'` + ac_val=`echo "$ac_val" | sed 's?/*$[]??'` + $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"' + s?/*$[]??'`dnl + ])# MSYS_AC_CANONICAL_PATH + # MINGW_AC_CHECK_HEADER( LISTVAR, HEADER ) # ---------------------------------------- *************** *** 153,154 **** --- 189,192 ---- [Define numerically to the catgets $2 version number])dnl ])# CATGETS_AC_CONFIG_VERSION_DEFINE + + # $RCSfile$Revision$: end of file --- NEW FILE: mcutfsig.c --- /* * mcutfsig.c * * $Id: mcutfsig.c,v 1.1 2007/06/18 22:36:07 keithmarshall Exp $ * * Copyright (C) 2007, Keith Marshall * * This file implements the `mc_utf_signature' function, which is used * by `gencat', to identify message definition source files which appear * to exhibit any recognisable standard of Unicode encoding. * * Written by Keith Marshall <kei...@us...> * Last Revision: 22-May-2007 * * * This is free software. It is provided AS IS, in the hope that it may * be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY * of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. * * Permission is granted to redistribute this software, either "as is" or * in modified form, under the terms of the GNU General Public License, as * published by the Free Software Foundation; either version 2, or (at your * option) any later version. * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to the * Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, * MA 02110-1301, USA. * */ #include <mcutfsig.h> unsigned short mc_utf_signature( unsigned char *stream ) { /* Inspect the first few bytes of the specified data stream; * attempt to identify a potential Unicode encoding signature, * defaulting to non-specific single byte encoding units. */ unsigned short signature = 1; /* * The first character in the input stream must not be NUL, * and must be a member of the POSIX Portable Character Set; * if it isn't, then it may indicate a Unicode stream. */ if( *stream == 0 ) { /* An initial NUL byte anticipates a big-endian Unicode stream; * one such byte implies UTF-16, without a Byte Order Mark, while * two such followed by the big-endian form of the BOM, or three * without a BOM, indicates UTF-32. */ int count = 4; while( count-- && (*stream++ == '\0') ) ++signature; signature += UTF_BIG_ENDIAN; } if( (*stream & 0xfe) == 0xfe ) { /* This looks like it might be a Unicode Byte Order Mark; * identify the UTF encoding standard, if any, which it represents. */ unsigned bom = *stream++ << 8; bom |= *stream++; switch( bom ) { case 0xfffe: /* * This is the BOM signature for a little-endian Unicode stream; * the first byte has already been included in the initial size * assigned for the encoding unit; adjust this to accommodate the * second byte, and incorporate the little-endian flag. */ signature += UTF_WITH_BYTE_ORDER_MARK + UTF_LITTLE_ENDIAN + 1; if( *stream == '\0' ) { int count = 4; while( count-- && (*stream++ == '\0') ) ++signature; } break; case 0xfeff: /* * This is the BOM signature for a big-endian Unicode stream; * if preceded by two NULs, (already counted), then it is UTF-32, * else it is UTF-16. In either case, adding an additional one * to the accumulated size of the encoding unit yields the * desired result, since the first byte of the BOM, and * any leading NULs, have already been counted. */ signature += UTF_WITH_BYTE_ORDER_MARK + UTF_BIG_ENDIAN + 1; break; case 0xffbb: /* * Provided it's followed by one further `0xbf' byte, this is the * BOM used as a signature for a UTF-8 encoded stream; it becomes * invalid, if there were any leading NUL bytes. */ if( (signature == 1) && (*stream++ == (unsigned char)('\xbf')) ) signature |= UTF_WITH_BYTE_ORDER_MARK; } } else if( (signature == 1) && (*++stream == 0) ) { /* NUL as the second byte in the input stream indicates a probable * little-endian Unicode input stream, although this is not indicated * by a Byte Order Mark; count the trailing NULs, to determine if we * should interpret it as UTF-16LE, or as UTF-32LE. */ int count = 4; while( count-- && (*stream++ == '\0') ) ++signature; signature += UTF_LITTLE_ENDIAN; } return signature; } /* $RCSfile: mcutfsig.c,v $Revision: 1.1 $: end of file */ |
|
From: Keith M. <kei...@us...> - 2007-06-14 16:23:04
|
Update of /cvsroot/mingw/htdocs In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv5300 Modified Files: Tag: DVLPR-BRANCH ChangeLog download.shtml Log Message: Merge Fredric Johansson's 2007-06-03 changes into DVLPR-BRANCH Index: download.shtml =================================================================== RCS file: /cvsroot/mingw/htdocs/download.shtml,v retrieving revision 1.29.2.1 retrieving revision 1.29.2.2 diff -C2 -d -r1.29.2.1 -r1.29.2.2 *** download.shtml 11 Apr 2006 07:40:13 -0000 1.29.2.1 --- download.shtml 14 Jun 2007 16:22:59 -0000 1.29.2.2 *************** *** 25,29 **** <ul> <li><a href="#hdr1">MinGW and MSYS Distributions</a></li> ! <li><a href="#hdr2">File List</a></li> <li><a href="#hdr3">Mirror Sites</a></li> <li><a href="#hdr4">Understanding MinGW Packaging</a></li> --- 25,29 ---- <ul> <li><a href="#hdr1">MinGW and MSYS Distributions</a></li> ! <li><a href="#hdr2">Downloads</a></li> <li><a href="#hdr3">Mirror Sites</a></li> <li><a href="#hdr4">Understanding MinGW Packaging</a></li> *************** *** 103,135 **** distribution but provides challenges for the project that provides an all-in-one type of package with updates ! distributed individually. We have therefore provided ! for a dynamically updated release page of our own. We ! use the FRS provided by SourceForge to load the files ! to one of five categories, Candidate, Current, Previous, ! Proposed and Snapshot. These categories are given at the FRS package level. The FRS release name is used to ! give the package name and the files themselves are what ! identify the release. The script that creates the data ! below is currently being perfected. You may see the ! below layout change as we perfect it. However, we ! suggest that you visit this page often for the status ! of updates. ! </p> <hr /> <h2><a href="#Contents" name="hdr2"> ! File List </a></h2> ! ! <p>The automated creation of ssi/release.html that displays ! the table below is currently functioning. The dynamic data ! on from the SF site is refreshed on an hourly basis to the ! www.mingw.org site. For the most up to date view of the ! data you need to the ! <a href="http://sf.net/project/showfiles.php?group_id=2435"> ! SF File Release</a> pages. </p> - <!--#include file="ssi/release.html"--> <hr /> --- 103,124 ---- distribution but provides challenges for the project that provides an all-in-one type of package with updates ! distributed individually. ! We use the FRS provided by SourceForge to load the files ! to one of five categories, Candidate, Contributed, Current, ! Previous and Snapshot. These categories are defined at the FRS package level. The FRS release name is used to ! specify the package name and the files themselves are what ! identify the release. </p> <hr /> <h2><a href="#Contents" name="hdr2"> ! Downloads </a></h2> ! <p>The files are currently available on the <a target="_nw" href="http://sf.net/project/showfiles.php?group_id=2435"> ! Sourceforge File Release</a> page. The easiest way to install ! MinGW is through the mingw-installer found in the Current ! package set, Current->MinGW </p> <hr /> *************** *** 137,140 **** --- 126,130 ---- Mirror Sites </a></h2> + <p>These sites host (possibly) older releases of MinGW files:</p> <ul> <li> *************** *** 220,224 **** to install MSYS as well. If you are an IDE wizard and have a configurable IDE then you need to determine if the ! IDE distributors provide MinGW for you need to download from MinGW are updates to the individual packages. You can if you want even use MinGW from the %COMSPEC% shell --- 210,215 ---- to install MSYS as well. If you are an IDE wizard and have a configurable IDE then you need to determine if the ! IDE distributors provide MinGW for you. If it does then ! the only thing you need to download from MinGW are updates to the individual packages. You can if you want even use MinGW from the %COMSPEC% shell *************** *** 241,245 **** you will need the mingw-runtime, w32api, binutils and gcc tarball packages. You can find the current versions of ! these in the "Current" section above. These will allow you to create your win32 native packages from the command line or configurable IDE. Other packages that you might --- 232,238 ---- you will need the mingw-runtime, w32api, binutils and gcc tarball packages. You can find the current versions of ! these in the "Current" category on the <a target="_nw" ! href="http://sf.net/project/showfiles.php?group_id=2435"> ! Download page</a>. These will allow you to create your win32 native packages from the command line or configurable IDE. Other packages that you might Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/htdocs/ChangeLog,v retrieving revision 1.156 retrieving revision 1.156.2.1 diff -C2 -d -r1.156 -r1.156.2.1 *** ChangeLog 2 Aug 2005 14:27:35 -0000 1.156 --- ChangeLog 14 Jun 2007 16:22:58 -0000 1.156.2.1 *************** *** 1,2 **** --- 1,22 ---- + 2007-06-14 Keith Marshall <kei...@us...> + + * download.shtml [DVLPR-BRANCH]: Merge Fredric Johansson's changes, + dated 2007-06-03, from HEAD. + + 2007-06-03 Fredric Johansson <joh...@ho...> + + * download.shtml: Remove references to obsolete file downloads; + direct visitors to SF download page instead. + + 2007-06-03 Keith Marshall <kei...@us...> + + * download.shtml (Proposed): Remove reference to package. + (Contributed): Add this, reflecting new naming convention. + + 2005-12-20 Keith Marshall <kei...@us...> + + * All files (DVLPR-BRANCH): Tag added; initiate branch for site + enhancements, not yet ready for pushing to live web server. + 2005-08-02 Earnie Boyd <ea...@us...> |
|
From: Keith M. <kei...@us...> - 2007-06-03 15:35:43
|
Update of /cvsroot/mingw/htdocs In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv21975 Modified Files: ChangeLog download.shtml Log Message: * download.shtml: Remove references to obsolete file downloads; direct visitors to SF download page instead. (Proposed): Remove reference to package. (Contributed): Add this, reflecting new naming convention. Index: download.shtml =================================================================== RCS file: /cvsroot/mingw/htdocs/download.shtml,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** download.shtml 20 Jun 2005 03:05:26 -0000 1.29 --- download.shtml 3 Jun 2007 15:35:39 -0000 1.30 *************** *** 25,29 **** <ul> <li><a href="#hdr1">MinGW and MSYS Distributions</a></li> ! <li><a href="#hdr2">File List</a></li> <li><a href="#hdr3">Mirror Sites</a></li> <li><a href="#hdr4">Understanding MinGW Packaging</a></li> --- 25,29 ---- <ul> <li><a href="#hdr1">MinGW and MSYS Distributions</a></li> ! <li><a href="#hdr2">Downloads</a></li> <li><a href="#hdr3">Mirror Sites</a></li> <li><a href="#hdr4">Understanding MinGW Packaging</a></li> *************** *** 103,135 **** distribution but provides challenges for the project that provides an all-in-one type of package with updates ! distributed individually. We have therefore provided ! for a dynamically updated release page of our own. We ! use the FRS provided by SourceForge to load the files ! to one of five categories, Candidate, Current, Previous, ! Proposed and Snapshot. These categories are given at the FRS package level. The FRS release name is used to ! give the package name and the files themselves are what ! identify the release. The script that creates the data ! below is currently being perfected. You may see the ! below layout change as we perfect it. However, we ! suggest that you visit this page often for the status ! of updates. ! </p> <hr> <h2><a href="#Contents" name="hdr2"> ! File List </a></h2> ! ! <p>The automated creation of ssi/release.html that displays ! the table below is currently functioning. The dynamic data ! on from the SF site is refreshed on an hourly basis to the ! www.mingw.org site. For the most up to date view of the ! data you need to the ! <a target="_nw" href="http://sf.net/project/showfiles.php?group_id=2435"> ! SF File Release</a> pages. </p> - <!--#include file="ssi/release.html"--> <hr> --- 103,124 ---- distribution but provides challenges for the project that provides an all-in-one type of package with updates ! distributed individually. ! We use the FRS provided by SourceForge to load the files ! to one of five categories, Candidate, Contributed, Current, ! Previous and Snapshot. These categories are defined at the FRS package level. The FRS release name is used to ! specify the package name and the files themselves are what ! identify the release. </p> <hr> <h2><a href="#Contents" name="hdr2"> ! Downloads </a></h2> ! <p>The files are currently available on the <a target="_nw" href="http://sf.net/project/showfiles.php?group_id=2435"> ! Sourceforge File Release</a> page. The easiest way to install ! MinGW is through the mingw-installer found in the Current ! package set, Current->MinGW </p> <hr> *************** *** 137,140 **** --- 126,130 ---- Mirror Sites </a></h2> + <p>These sites host (possibly) older releases of MinGW files:</p> <ul> <li> *************** *** 220,224 **** to install MSYS as well. If you are an IDE wizard and have a configurable IDE then you need to determine if the ! IDE distributors provide MinGW for you need to download from MinGW are updates to the individual packages. You can if you want even use MinGW from the %COMSPEC% shell --- 210,215 ---- to install MSYS as well. If you are an IDE wizard and have a configurable IDE then you need to determine if the ! IDE distributors provide MinGW for you. If it does then ! the only thing you need to download from MinGW are updates to the individual packages. You can if you want even use MinGW from the %COMSPEC% shell *************** *** 241,245 **** you will need the mingw-runtime, w32api, binutils and gcc tarball packages. You can find the current versions of ! these in the "Current" section above. These will allow you to create your win32 native packages from the command line or configurable IDE. Other packages that you might --- 232,238 ---- you will need the mingw-runtime, w32api, binutils and gcc tarball packages. You can find the current versions of ! these in the "Current" category on the <a target="_nw" ! href="http://sf.net/project/showfiles.php?group_id=2435"> ! Download page</a>. These will allow you to create your win32 native packages from the command line or configurable IDE. Other packages that you might Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/htdocs/ChangeLog,v retrieving revision 1.157 retrieving revision 1.158 diff -C2 -d -r1.157 -r1.158 *** ChangeLog 20 Dec 2005 00:54:24 -0000 1.157 --- ChangeLog 3 Jun 2007 15:35:38 -0000 1.158 *************** *** 1,2 **** --- 1,12 ---- + 2007-06-03 Fredric Johansson <joh...@ho...> + + * download.shtml: Remove references to obsolete file downloads; + direct visitors to SF download page instead. + + 2007-06-03 Keith Marshall <kei...@us...> + + * download.shtml (Proposed): Remove reference to package. + (Contributed): Add this, reflecting new naming convention. + 2005-12-20 Keith Marshall <kei...@us...> |
|
From: Keith M. <kei...@us...> - 2007-06-01 20:34:02
|
Update of /cvsroot/mingw/catgets/repl/include In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv15232/repl/include Modified Files: langinfo.h Log Message: * repl/include/langinfo.h (LC_CTYPE): Include locale.h, to define. Index: langinfo.h =================================================================== RCS file: /cvsroot/mingw/catgets/repl/include/langinfo.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** langinfo.h 6 Apr 2007 22:34:56 -0000 1.1.1.1 --- langinfo.h 1 Jun 2007 20:33:57 -0000 1.2 *************** *** 28,35 **** #define _LANGINFO_H_ ! /* All the headers include this file. */ ! #include <_mingw.h> ! #include <nl_types.h> #define __NL_ITEM( CATEGORY, INDEX ) ((CATEGORY << 16) | INDEX) --- 28,35 ---- #define _LANGINFO_H_ ! #include <_mingw.h> /* All MinGW headers include this. */ ! #include <locale.h> /* Need this for LC_CTYPE and friends... */ ! #include <nl_types.h> /* and this for nl_item */ #define __NL_ITEM( CATEGORY, INDEX ) ((CATEGORY << 16) | INDEX) |
|
From: Keith M. <kei...@us...> - 2007-06-01 20:34:02
|
Update of /cvsroot/mingw/catgets In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv15232 Modified Files: ChangeLog Log Message: * repl/include/langinfo.h (LC_CTYPE): Include locale.h, to define. Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/catgets/ChangeLog,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ChangeLog 21 May 2007 04:13:20 -0000 1.12 --- ChangeLog 1 Jun 2007 20:33:57 -0000 1.13 *************** *** 1,2 **** --- 1,6 ---- + 2007-06-01 Keith Marshall <kei...@us...> + + * repl/include/langinfo.h (LC_CTYPE): Include locale.h, to define. + 2007-05-20 Keith Marshall <kei...@us...> |