Attempt to make 'localeconv()' part of the configuration process. VC6 works, but I'll need feedback for all other platforms... . Trying OS X in a few minutes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4454 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
65c23f81ff
commit
458d1dc75d
@ -85,6 +85,7 @@ CHECK_INCLUDE_FILE_CONCAT("OpenGL/glu.h" HAVE_OPENGL_GLU_H)
|
|||||||
CHECK_INCLUDE_FILE_CONCAT("dirent.h" HAVE_DIRENT_H)
|
CHECK_INCLUDE_FILE_CONCAT("dirent.h" HAVE_DIRENT_H)
|
||||||
CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H)
|
CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H)
|
||||||
CHECK_INCLUDE_FILE_CONCAT("strings.h" HAVE_STRINGS_H)
|
CHECK_INCLUDE_FILE_CONCAT("strings.h" HAVE_STRINGS_H)
|
||||||
|
CHECK_INCLUDE_FILE_CONCAT("locale.h" HAVE_LOCALE_H)
|
||||||
CHECK_INCLUDE_FILE_CONCAT("sys/dir.h" HAVE_SYS_DIR_H)
|
CHECK_INCLUDE_FILE_CONCAT("sys/dir.h" HAVE_SYS_DIR_H)
|
||||||
CHECK_INCLUDE_FILE_CONCAT("sys/ndir.h" HAVE_SYS_NDIR_H)
|
CHECK_INCLUDE_FILE_CONCAT("sys/ndir.h" HAVE_SYS_NDIR_H)
|
||||||
CHECK_INCLUDE_FILE_CONCAT("sys/select.h" HAVE_SYS_SELECT_H)
|
CHECK_INCLUDE_FILE_CONCAT("sys/select.h" HAVE_SYS_SELECT_H)
|
||||||
@ -105,6 +106,7 @@ CHECK_SYMBOL_EXISTS(strlcpy "${PROJECT_INCLUDES}" HAVE_STRLCPY)
|
|||||||
CHECK_SYMBOL_EXISTS(vsnprintf "${PROJECT_INCLUDES}" HAVE_VSNPRINTF)
|
CHECK_SYMBOL_EXISTS(vsnprintf "${PROJECT_INCLUDES}" HAVE_VSNPRINTF)
|
||||||
CHECK_SYMBOL_EXISTS(snprintf "${PROJECT_INCLUDES}" HAVE_SNPRINTF)
|
CHECK_SYMBOL_EXISTS(snprintf "${PROJECT_INCLUDES}" HAVE_SNPRINTF)
|
||||||
CHECK_SYMBOL_EXISTS(scandir "${PROJECT_INCLUDES}" HAVE_SCANDIR)
|
CHECK_SYMBOL_EXISTS(scandir "${PROJECT_INCLUDES}" HAVE_SCANDIR)
|
||||||
|
CHECK_SYMBOL_EXISTS(localeconv "${PROJECT_INCLUDES}" HAVE_LOCALECONV)
|
||||||
|
|
||||||
INCLUDE(CheckTypeSize)
|
INCLUDE(CheckTypeSize)
|
||||||
|
|
||||||
|
@ -162,6 +162,13 @@
|
|||||||
/* #undef HAVE_STRLCAT */
|
/* #undef HAVE_STRLCAT */
|
||||||
/* #undef HAVE_STRLCPY */
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
@ -189,6 +189,13 @@
|
|||||||
#cmakedefine HAVE_STRLCAT @HAVE_STRLCAT@
|
#cmakedefine HAVE_STRLCAT @HAVE_STRLCAT@
|
||||||
#cmakedefine HAVE_STRLCPY @HAVE_STRLCPY@
|
#cmakedefine HAVE_STRLCPY @HAVE_STRLCPY@
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 'locale' functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#cmakedefine HAVE_LOCALE_H @HAVE_LOCALE_H@
|
||||||
|
#cmakedefine HAVE_LOCALECONV @HAVE_LOCALECONV@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
@ -189,6 +189,13 @@
|
|||||||
#undef HAVE_STRLCAT
|
#undef HAVE_STRLCAT
|
||||||
#undef HAVE_STRLCPY
|
#undef HAVE_STRLCPY
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef HAVE_LOCALE_H
|
||||||
|
#undef HAVE_LOCALECONV
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
@ -369,6 +369,9 @@ AC_CHECK_FUNC(snprintf,[
|
|||||||
AC_CHECK_HEADER(strings.h, AC_DEFINE(HAVE_STRINGS_H))
|
AC_CHECK_HEADER(strings.h, AC_DEFINE(HAVE_STRINGS_H))
|
||||||
AC_CHECK_FUNCS(strcasecmp strlcat strlcpy)
|
AC_CHECK_FUNCS(strcasecmp strlcat strlcpy)
|
||||||
|
|
||||||
|
AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H))
|
||||||
|
AC_CHECK_FUNCS(localeconv)
|
||||||
|
|
||||||
dnl FLTK library uses math library functions...
|
dnl FLTK library uses math library functions...
|
||||||
AC_SEARCH_LIBS(pow, m)
|
AC_SEARCH_LIBS(pow, m)
|
||||||
|
|
||||||
|
@ -168,6 +168,13 @@
|
|||||||
/* #undef HAVE_STRLCAT */
|
/* #undef HAVE_STRLCAT */
|
||||||
/* #undef HAVE_STRLCPY */
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
@ -165,6 +165,13 @@
|
|||||||
/* #undef HAVE_STRLCAT*/
|
/* #undef HAVE_STRLCAT*/
|
||||||
/* #undef HAVE_STRLCPY*/
|
/* #undef HAVE_STRLCPY*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
@ -33,13 +33,17 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <locale.h>
|
|
||||||
#include <FL/Fl.H>
|
#include <FL/Fl.H>
|
||||||
#include <FL/Fl_Input.H>
|
#include <FL/Fl_Input.H>
|
||||||
#include <FL/fl_draw.H>
|
#include <FL/fl_draw.H>
|
||||||
#include <FL/fl_ask.H>
|
#include <FL/fl_ask.H>
|
||||||
#include "flstring.h"
|
#include "flstring.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_LOCALE_H
|
||||||
|
# include <locale.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void Fl_Input::draw() {
|
void Fl_Input::draw() {
|
||||||
if (input_type() == FL_HIDDEN_INPUT) return;
|
if (input_type() == FL_HIDDEN_INPUT) return;
|
||||||
Fl_Boxtype b = box();
|
Fl_Boxtype b = box();
|
||||||
@ -69,8 +73,12 @@ int Fl_Input::shift_up_down_position(int p) {
|
|||||||
// into account (for example, continental Europe uses a comma instead
|
// into account (for example, continental Europe uses a comma instead
|
||||||
// of a decimal point). For back compatibility reasons, we always
|
// of a decimal point). For back compatibility reasons, we always
|
||||||
// allow the decimal point.
|
// allow the decimal point.
|
||||||
|
#ifdef HAVE_LOCALECONV
|
||||||
static char *standard_fp_chars = ".eE+-";
|
static char *standard_fp_chars = ".eE+-";
|
||||||
static char *legal_fp_chars = 0L;
|
static char *legal_fp_chars = 0L;
|
||||||
|
#else
|
||||||
|
static char *legal_fp_chars = ".eE+-";
|
||||||
|
#endif
|
||||||
|
|
||||||
int Fl_Input::handle_key() {
|
int Fl_Input::handle_key() {
|
||||||
|
|
||||||
@ -86,6 +94,7 @@ int Fl_Input::handle_key() {
|
|||||||
Fl::compose_reset(); // ignore any foreign letters...
|
Fl::compose_reset(); // ignore any foreign letters...
|
||||||
|
|
||||||
// initialize the list of legal characters inside a floating point number
|
// initialize the list of legal characters inside a floating point number
|
||||||
|
#ifdef HAVE_LOCALECONV
|
||||||
if (!legal_fp_chars) {
|
if (!legal_fp_chars) {
|
||||||
int len = strlen(standard_fp_chars);
|
int len = strlen(standard_fp_chars);
|
||||||
struct lconv *lc = localeconv();
|
struct lconv *lc = localeconv();
|
||||||
@ -106,6 +115,7 @@ int Fl_Input::handle_key() {
|
|||||||
if (lc->negative_sign) strcat(legal_fp_chars, lc->negative_sign);
|
if (lc->negative_sign) strcat(legal_fp_chars, lc->negative_sign);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// This is complex to allow "0xff12" hex to be typed:
|
// This is complex to allow "0xff12" hex to be typed:
|
||||||
if (!position() && (ascii == '+' || ascii == '-') ||
|
if (!position() && (ascii == '+' || ascii == '-') ||
|
||||||
|
@ -152,6 +152,13 @@
|
|||||||
/*#undef HAVE_STRLCAT*/
|
/*#undef HAVE_STRLCAT*/
|
||||||
/*#undef HAVE_STRLCPY*/
|
/*#undef HAVE_STRLCPY*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_POLL:
|
* HAVE_POLL:
|
||||||
*
|
*
|
||||||
|
@ -152,6 +152,13 @@
|
|||||||
/*#undef HAVE_STRLCAT*/
|
/*#undef HAVE_STRLCAT*/
|
||||||
/*#undef HAVE_STRLCPY*/
|
/*#undef HAVE_STRLCPY*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_POLL:
|
* HAVE_POLL:
|
||||||
*
|
*
|
||||||
|
@ -162,6 +162,13 @@
|
|||||||
/* #undef HAVE_STRLCAT */
|
/* #undef HAVE_STRLCAT */
|
||||||
/* #undef HAVE_STRLCPY */
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do we have POSIX locale support?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
#define HAVE_LOCALECONV 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAVE_SYS_SELECT_H:
|
* HAVE_SYS_SELECT_H:
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user