scanf supports %lld since C++11, C99

This commit is contained in:
Richard Cohen 2023-03-02 12:32:44 +00:00
parent 7f1ce2b5e5
commit 80e9d9c35d
5 changed files with 3 additions and 36 deletions

View File

@ -692,14 +692,6 @@ install(FILES ${gnucash_DOCS} DESTINATION ${CMAKE_INSTALL_DOCDIR})
# Create config.h
if (WIN32)
if (MINGW)
set (HAVE_SCANF_LLD 1)
else ()
set (HAVE_SCANF_I64D 1)
endif()
endif()
check_include_files (dirent.h HAVE_DIRENT_H)
check_include_files (dlfcn.h HAVE_DLFCN_H)
check_include_files (glob.h HAVE_GLOB_H)
@ -764,7 +756,6 @@ set (HAVE_LINK 1)
set (HAVE_LOCALTIME_R 1)
set (HAVE_PTHREAD_MUTEX_INIT 1)
set (HAVE_PTHREAD_PRIO_INHERIT 1)
set (HAVE_SCANF_LLD 1)
set (HAVE_SETENV 1)
set (HAVE_STPCPY 1)
set (HAVE_STRPTIME 1)

View File

@ -153,15 +153,6 @@
/* If available, contains the Python version number currently in use. */
#cmakedefine HAVE_PYTHON 1
/* Define if scanf supports %I64d conversions. */
#cmakedefine HAVE_SCANF_I64D 1
/* Define if scanf supports %lld conversions. */
#cmakedefine HAVE_SCANF_LLD 1
/* Define if scanf supports %qd conversions. */
#cmakedefine HAVE_SCANF_QD 1
/* Define to 1 if you have the `setenv' function. */
#cmakedefine HAVE_SETENV 1

View File

@ -1935,7 +1935,7 @@ xaccParseAmountInternal (const char * in_str, gboolean monetary,
{
*out = '\0';
if (*out_str && sscanf(out_str, QOF_SCANF_LLD, &numer) < 1)
if (*out_str && sscanf(out_str, "%lld", &numer) < 1)
next_state = NO_NUM_ST;
else if (next_state == FRAC_ST)
{
@ -1977,7 +1977,7 @@ xaccParseAmountInternal (const char * in_str, gboolean monetary,
}
long long int fraction;
if (sscanf (out_str, QOF_SCANF_LLD, &fraction) < 1)
if (sscanf (out_str, "%lld", &fraction) < 1)
{
g_free(out_str);
return FALSE;

View File

@ -171,7 +171,7 @@ string_to_gint64 (const gchar* str, gint64* v)
g_return_val_if_fail (str, FALSE);
/* must use "<" here because %n's effects aren't well defined */
if (sscanf (str, " " QOF_SCANF_LLD "%n", &v_in, &num_read) < 1)
if (sscanf (str, " %lld%n", &v_in, &num_read) < 1)
{
return (FALSE);
}

View File

@ -45,21 +45,6 @@ extern "C"
{
#endif
/** Do not use these for printf, only scanf */
#if HAVE_SCANF_LLD
# define QOF_SCANF_LLD "%lld"
#else
# if HAVE_SCANF_QD
# define QOF_SCANF_LLD "%qd"
# else
# if HAVE_SCANF_I64D
# define QOF_SCANF_LLD "%I64d"
# else
# error "No scanf format string is known for LLD. Fix your ./configure so that the correct one is detected!"
# endif
# endif
#endif
#define QOF_MOD_UTIL "qof.utilities"
/** \name typedef enum as string macros