gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r430 - in Extractor: . src/include src/main src/plugins


From: durner
Subject: [GNUnet-SVN] r430 - in Extractor: . src/include src/main src/plugins
Date: Sat, 12 Mar 2005 14:09:40 -0800 (PST)

Author: durner
Date: 2005-03-12 14:09:39 -0800 (Sat, 12 Mar 2005)
New Revision: 430

Modified:
   Extractor/configure.ac
   Extractor/src/include/platform.h
   Extractor/src/include/winproc.h
   Extractor/src/main/extract.c
   Extractor/src/main/extractor.c
   Extractor/src/main/winproc.c
   Extractor/src/plugins/Makefile.am
   Extractor/src/plugins/filenameextractor.c
   Extractor/src/plugins/tarextractor.c
Log:
nl_langinfo for Windows

Modified: Extractor/configure.ac
===================================================================
--- Extractor/configure.ac      2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/configure.ac      2005-03-12 22:09:39 UTC (rev 430)
@@ -101,6 +101,8 @@
 # but: only use for the PDF extractor and NOT for everything else!
 XTRA_CPPLIBS=$LIBS $XTRA_CPPLIBS
 
+AC_CHECK_HEADER(langinfo.h)
+
 LIBS=$LIBSOLD
 # FIXME: allow --with-oggvorbis=PFX
 

Modified: Extractor/src/include/platform.h
===================================================================
--- Extractor/src/include/platform.h    2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/include/platform.h    2005-03-12 22:09:39 UTC (rev 430)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001 - 2005 Christian Grothoff (and other contributing authors)
+     (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other 
contributing authors)
 
      libextractor is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -54,6 +54,7 @@
 #else
  #include <winsock2.h>
  #include <pthread.h>
+ #include <locale.h>
 #endif
 
 #ifndef MINGW
@@ -116,4 +117,141 @@
  #define socklen_t unsigned int
 #endif
 
+#ifndef HAVE_LANGINFO_H
+/* Modified version of glibc's langinfo.h */
+
+/* Enumeration of locale items that can be queried with `nl_langinfo'. */
+enum
+{
+  /* LC_TIME category: date and time formatting.  */
+
+  /* Abbreviated days of the week. */
+  ABDAY_1, /* Sun */
+#define ABDAY_1     ABDAY_1
+  ABDAY_2,
+#define ABDAY_2     ABDAY_2
+  ABDAY_3,
+#define ABDAY_3     ABDAY_3
+  ABDAY_4,
+#define ABDAY_4     ABDAY_4
+  ABDAY_5,
+#define ABDAY_5     ABDAY_5
+  ABDAY_6,
+#define ABDAY_6     ABDAY_6
+  ABDAY_7,
+#define ABDAY_7     ABDAY_7
+
+  /* Long-named days of the week. */
+  DAY_1,      /* Sunday */
+#define DAY_1     DAY_1
+  DAY_2,      /* Monday */
+#define DAY_2     DAY_2
+  DAY_3,      /* Tuesday */
+#define DAY_3     DAY_3
+  DAY_4,      /* Wednesday */
+#define DAY_4     DAY_4
+  DAY_5,      /* Thursday */
+#define DAY_5     DAY_5
+  DAY_6,      /* Friday */
+#define DAY_6     DAY_6
+  DAY_7,      /* Saturday */
+#define DAY_7     DAY_7
+
+  /* Abbreviated month names.  */
+  ABMON_1,      /* Jan */
+#define ABMON_1     ABMON_1
+  ABMON_2,
+#define ABMON_2     ABMON_2
+  ABMON_3,
+#define ABMON_3     ABMON_3
+  ABMON_4,
+#define ABMON_4     ABMON_4
+  ABMON_5,
+#define ABMON_5     ABMON_5
+  ABMON_6,
+#define ABMON_6     ABMON_6
+  ABMON_7,
+#define ABMON_7     ABMON_7
+  ABMON_8,
+#define ABMON_8     ABMON_8
+  ABMON_9,
+#define ABMON_9     ABMON_9
+  ABMON_10,
+#define ABMON_10    ABMON_10
+  ABMON_11,
+#define ABMON_11    ABMON_11
+  ABMON_12,
+#define ABMON_12    ABMON_12
+
+  /* Long month names.  */
+  MON_1,      /* January */
+#define MON_1     MON_1
+  MON_2,
+#define MON_2     MON_2
+  MON_3,
+#define MON_3     MON_3
+  MON_4,
+#define MON_4     MON_4
+  MON_5,
+#define MON_5     MON_5
+  MON_6,
+#define MON_6     MON_6
+  MON_7,
+#define MON_7     MON_7
+  MON_8,
+#define MON_8     MON_8
+  MON_9,
+#define MON_9     MON_9
+  MON_10,
+#define MON_10      MON_10
+  MON_11,
+#define MON_11      MON_11
+  MON_12,
+#define MON_12      MON_12
+
+  AM_STR,     /* Ante meridian string.  */
+#define AM_STR      AM_STR
+  PM_STR,     /* Post meridian string.  */
+#define PM_STR      PM_STR
+
+  D_T_FMT,      /* Date and time format for strftime.  */
+#define D_T_FMT     D_T_FMT
+  D_FMT,      /* Date format for strftime.  */
+#define D_FMT     D_FMT
+  T_FMT,      /* Time format for strftime.  */
+#define T_FMT     T_FMT
+  T_FMT_AMPM,     /* 12-hour time format for strftime.  */
+#define T_FMT_AMPM    T_FMT_AMPM
+
+  ERA,        /* Alternate era.  */
+#define ERA     ERA
+  ERA_D_FMT,      /* Date in alternate era format.  */
+#define ERA_D_FMT   ERA_D_FMT
+  ALT_DIGITS,     /* Alternate symbols for digits.  */
+#define ALT_DIGITS    ALT_DIGITS
+  ERA_D_T_FMT,      /* Date and time in alternate era format.  */
+#define ERA_D_T_FMT   ERA_D_T_FMT
+  ERA_T_FMT,      /* Time in alternate era format.  */
+#define ERA_T_FMT   ERA_T_FMT
+  _DATE_FMT,    /* strftime format for date.  */
+#define _DATE_FMT _DATE_FMT
+  CODESET,
+#define CODESET     CODESET
+  CRNCYSTR,
+#define CRNCYSTR     CRNCYSTR
+  RADIXCHAR,
+#define RADIXCHAR   RADIXCHAR
+  THOUSEP,
+#define THOUSEP     THOUSEP
+  YESEXPR,
+#define YESEXPR     YESEXPR
+  NOEXPR,     /* Regex matching ``no'' input.  */
+#define NOEXPR      NOEXPR
+  /* This marks the highest value used.  */
+  _NL_NUM
+};
+#else
+ #include <langinfo.h>
+#endif /* #ifndef HAVE_LANGINFO_H */
+
 #endif

Modified: Extractor/src/include/winproc.h
===================================================================
--- Extractor/src/include/winproc.h     2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/include/winproc.h     2005-03-12 22:09:39 UTC (rev 430)
@@ -34,11 +34,13 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/timeb.h>
+#include <time.h>
 #include <dirent.h>
 #include <windows.h>
 #include <winsock.h>
 #include <winerror.h>
 #include <iphlpapi.h>
+#include "platform.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -338,6 +340,9 @@
                 unsigned long long offset);
 int _win_munmap(void *start, size_t length);
 char *_win_strerror(int errnum);
+#ifndef HAVE_LANGINFO_H
+char *nl_langinfo(int item);
+#endif
 
 #if !HAVE_STRNDUP
 char *strndup (const char *s, size_t n);

Modified: Extractor/src/main/extract.c
===================================================================
--- Extractor/src/main/extract.c        2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/main/extract.c        2005-03-12 22:09:39 UTC (rev 430)
@@ -189,11 +189,7 @@
   char * buf;
 
   cd = iconv_open(
-#ifdef MINGW
-    "char"
-#else
     nl_langinfo(CODESET)
-#endif
     , "UTF-8");
   while (keywords != NULL) {
     buf = NULL;

Modified: Extractor/src/main/extractor.c
===================================================================
--- Extractor/src/main/extractor.c      2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/main/extractor.c      2005-03-12 22:09:39 UTC (rev 430)
@@ -720,11 +720,7 @@
   char * buf;
 
   cd = iconv_open(
-#ifdef MINGW
-    ""
-#else
     nl_langinfo(CODESET)
-#endif
     , "UTF-8");
   while (keywords != NULL)
     {

Modified: Extractor/src/main/winproc.c
===================================================================
--- Extractor/src/main/winproc.c        2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/main/winproc.c        2005-03-12 22:09:39 UTC (rev 430)
@@ -1,6 +1,6 @@
 /*
      This file is part of libextractor.
-     (C) 2004 - 2005 Christian Grothoff (and other contributing authors)
+     (C) 2004, 2005 Christian Grothoff (and other contributing authors)
 
      libextractor is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -50,6 +50,7 @@
 static OSVERSIONINFO theWinVersion;
 unsigned int uiSockCount = 0;
 Winsock *pSocks;
+static char __langinfo[251];
 
 static HINSTANCE hNTDLL, hIphlpapi;
 TNtQuerySystemInformation GNNtQuerySystemInformation;
@@ -466,6 +467,7 @@
   /* Use ANSI codepage for console IO */
   SetConsoleCP(CP_ACP);
   SetConsoleOutputCP(CP_ACP);
+  setlocale( LC_ALL, ".OCP" );
 }
 
 /**
@@ -2131,6 +2133,196 @@
 }
 #endif
 
+/**
+ * language information
+ */
+#ifndef HAVE_LANGINFO_H
+char *nl_langinfo(int item)
+{
+  unsigned int loc;
+  
+  loc = GetThreadLocale();
+  
+  switch(item)
+  {
+    case CODESET:
+      {
+        unsigned int cp = GetACP();
+        
+        if (cp)
+          sprintf(__langinfo, "CP%u", cp);
+        else
+          strcpy(__langinfo, "UTF-8"); /* ? */
+        return __langinfo;
+      }
+    case D_T_FMT:
+    case T_FMT_AMPM:
+    case ERA_D_T_FMT:
+      strcpy(__langinfo, "%c");
+      return __langinfo;
+    case D_FMT:
+    case ERA_D_FMT:
+      strcpy(__langinfo, "%x");
+      return __langinfo;
+    case T_FMT:
+    case ERA_T_FMT:
+      strcpy(__langinfo, "%X");
+      return __langinfo;
+    case AM_STR:
+      GetLocaleInfo(loc, LOCALE_S1159, __langinfo, 251);
+      return __langinfo;
+    case PM_STR:
+      GetLocaleInfo(loc, LOCALE_S2359, __langinfo, 251);
+      return __langinfo;
+    case DAY_1:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME1, __langinfo, 251);
+      return __langinfo;
+    case DAY_2:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME2, __langinfo, 251);
+      return __langinfo;
+    case DAY_3:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME3, __langinfo, 251);
+      return __langinfo;
+    case DAY_4:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME4, __langinfo, 251);
+      return __langinfo;
+    case DAY_5:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME5, __langinfo, 251);
+      return __langinfo;
+    case DAY_6:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME6, __langinfo, 251);
+      return __langinfo;
+    case DAY_7:
+      GetLocaleInfo(loc, LOCALE_SDAYNAME7, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_1:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME1, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_2:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME2, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_3:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME3, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_4:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME4, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_5:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME5, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_6:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME6, __langinfo, 251);
+      return __langinfo;
+    case ABDAY_7:
+      GetLocaleInfo(loc, LOCALE_SABBREVDAYNAME7, __langinfo, 251);
+      return __langinfo;
+    case MON_1:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME1, __langinfo, 251);
+      return __langinfo;
+    case MON_2:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME2, __langinfo, 251);
+      return __langinfo;
+    case MON_3:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME3, __langinfo, 251);
+      return __langinfo;
+    case MON_4:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME4, __langinfo, 251);
+      return __langinfo;
+    case MON_5:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME5, __langinfo, 251);
+      return __langinfo;
+    case MON_6:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME6, __langinfo, 251);
+      return __langinfo;
+    case MON_7:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME7, __langinfo, 251);
+      return __langinfo;
+    case MON_8:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME8, __langinfo, 251);
+      return __langinfo;
+    case MON_9:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME9, __langinfo, 251);
+      return __langinfo;
+    case MON_10:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME10, __langinfo, 251);
+      return __langinfo;
+    case MON_11:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME11, __langinfo, 251);
+      return __langinfo;
+    case MON_12:
+      GetLocaleInfo(loc, LOCALE_SMONTHNAME12, __langinfo, 251);
+      return __langinfo;
+    case ABMON_1:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME1, __langinfo, 251);
+      return __langinfo;
+    case ABMON_2:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME2, __langinfo, 251);
+      return __langinfo;
+    case ABMON_3:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME3, __langinfo, 251);
+      return __langinfo;
+    case ABMON_4:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME4, __langinfo, 251);
+      return __langinfo;
+    case ABMON_5:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME5, __langinfo, 251);
+      return __langinfo;
+    case ABMON_6:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME6, __langinfo, 251);
+      return __langinfo;
+    case ABMON_7:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME7, __langinfo, 251);
+      return __langinfo;
+    case ABMON_8:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME8, __langinfo, 251);
+      return __langinfo;
+    case ABMON_9:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME9, __langinfo, 251);
+      return __langinfo;
+    case ABMON_10:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME10, __langinfo, 251);
+      return __langinfo;
+    case ABMON_11:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME11, __langinfo, 251);
+      return __langinfo;
+    case ABMON_12:
+      GetLocaleInfo(loc, LOCALE_SABBREVMONTHNAME12, __langinfo, 251);
+      return __langinfo;
+    case ERA:
+      /* Not implemented */
+      __langinfo[0] = 0;
+      return __langinfo;
+    case ALT_DIGITS:
+      GetLocaleInfo(loc, LOCALE_SNATIVEDIGITS, __langinfo, 251);
+      return __langinfo;
+    case RADIXCHAR:
+      GetLocaleInfo(loc, LOCALE_SDECIMAL, __langinfo, 251);
+      return __langinfo;      
+    case THOUSEP:
+      GetLocaleInfo(loc, LOCALE_STHOUSAND, __langinfo, 251);
+      return __langinfo;
+    case YESEXPR:
+      /* Not localized */
+      strcpy(__langinfo, "^[yY]");
+      return __langinfo;
+    case NOEXPR:
+      /* Not localized */
+      strcpy(__langinfo, "^[nN]");
+      return __langinfo;
+    case CRNCYSTR:
+      GetLocaleInfo(loc, LOCALE_STHOUSAND, __langinfo, 251);
+      if (__langinfo[0] == '0' || __langinfo[0] == '2')
+        __langinfo[0] = '-';
+      else
+        __langinfo[0] = '+';
+      GetLocaleInfo(loc, LOCALE_SCURRENCY, __langinfo + 1, 251);
+    default:
+      __langinfo[0] = 0;
+      return __langinfo;
+  }
+}
+#endif
+
 #ifdef __cplusplus
 }
 #endif

Modified: Extractor/src/plugins/Makefile.am
===================================================================
--- Extractor/src/plugins/Makefile.am   2005-03-12 21:27:01 UTC (rev 429)
+++ Extractor/src/plugins/Makefile.am   2005-03-12 22:09:39 UTC (rev 430)
@@ -128,7 +128,8 @@
 libextractor_tar_la_SOURCES = \
   tarextractor.c 
 libextractor_tar_la_LDFLAGS = \
-  $(PLUGINFLAGS) -lz
+  $(PLUGINFLAGS) -lz \
+  $(top_builddir)/src/main/libextractor.la
 
 libextractor_lower_la_SOURCES = \
   lowerextractor.c
@@ -228,7 +229,8 @@
 libextractor_filename_la_SOURCES = \
   filenameextractor.c 
 libextractor_filename_la_LDFLAGS = \
-  $(PLUGINFLAGS)
+  $(PLUGINFLAGS) \
+  $(top_builddir)/src/main/libextractor.la
 libextractor_filename_la_LIBADD = \
   libconvert.la
 

Modified: Extractor/src/plugins/filenameextractor.c
===================================================================
--- Extractor/src/plugins/filenameextractor.c   2005-03-12 21:27:01 UTC (rev 
429)
+++ Extractor/src/plugins/filenameextractor.c   2005-03-12 22:09:39 UTC (rev 
430)
@@ -44,11 +44,7 @@
   keyword->next = prev;    
   keyword->keyword = convertToUtf8(filenameRoot,
                                   strlen(filenameRoot),
-#ifndef MINGW
                                   nl_langinfo(CODESET)
-#else
-           ""
-#endif
            );
   keyword->keywordType = EXTRACTOR_FILENAME;
   return keyword;

Modified: Extractor/src/plugins/tarextractor.c
===================================================================
--- Extractor/src/plugins/tarextractor.c        2005-03-12 21:27:01 UTC (rev 
429)
+++ Extractor/src/plugins/tarextractor.c        2005-03-12 22:09:39 UTC (rev 
430)
@@ -166,11 +166,7 @@
 
       ctm = *gmtime(&ctime);
       if (strftime(tmbuf, sizeof(tmbuf),
-#ifndef MINGW      
        nl_langinfo(D_FMT),
-#else
-       "%x",
-#endif
        &ctm))
         prev = addKeyword(EXTRACTOR_CREATION_DATE, strdup(tmbuf), prev);
     }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]