summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--include/m_string.h3
-rw-r--r--strings/strto.c8
-rw-r--r--strings/strtol.c9
-rw-r--r--strings/strtoll.c13
-rw-r--r--strings/strtoul.c9
-rw-r--r--strings/strtoull.c13
7 files changed, 49 insertions, 7 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index 76a72fc9b4a..0eb4289c1d5 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -80,6 +80,7 @@ jcole@mugatu.jcole.us
jcole@mugatu.spaceapes.com
jcole@sarvik.tfr.cafe.ee
jcole@tetra.spaceapes.com
+joerg@mysql.com
joreland@mysql.com
jorge@linux.jorge.mysql.com
jplindst@t41.(none)
diff --git a/include/m_string.h b/include/m_string.h
index 0709dbaffb4..97d34421537 100644
--- a/include/m_string.h
+++ b/include/m_string.h
@@ -238,6 +238,9 @@ longlong my_strtoll10(const char *nptr, char **endptr, int *error);
#ifndef HAVE_STRTOULL
#define HAVE_STRTOULL
#endif
+#ifndef HAVE_STRTOLL
+#define HAVE_STRTOLL
+#endif
#else
#ifdef HAVE_LONG_LONG
extern char *longlong2str(longlong val,char *dst,int radix);
diff --git a/strings/strto.c b/strings/strto.c
index 52efec6e087..9e10b935834 100644
--- a/strings/strto.c
+++ b/strings/strto.c
@@ -35,8 +35,12 @@
it can be compiled with the UNSIGNED and/or LONGLONG flag set
*/
-#include <my_global.h>
-#include "m_string.h"
+
+#if !defined(_global_h) || !defined(_m_string_h)
+# error Calling file must include 'my_global.h' and 'm_string.h'
+ /* see 'strtoll.c' and 'strtoull.c' for the reasons */
+#endif
+
#include "m_ctype.h"
#include "my_sys.h" /* defines errno */
#include <errno.h>
diff --git a/strings/strtol.c b/strings/strtol.c
index 10d7f8f9da6..ed4ca86c846 100644
--- a/strings/strtol.c
+++ b/strings/strtol.c
@@ -14,9 +14,16 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* This defines strtol() if neaded */
+/* This implements strtol() if needed */
+/*
+ These includes are mandatory because they check for type sizes and
+ functions, especially they handle tricks for Tru64 where 'long' is
+ 64 bit already and our 'longlong' is just a 'long'.
+ */
#include <my_global.h>
+#include <m_string.h>
+
#if !defined(MSDOS) && !defined(HAVE_STRTOL) && !defined(__WIN__)
#include "strto.c"
#endif
diff --git a/strings/strtoll.c b/strings/strtoll.c
index b0b4ef328fc..45352ffd360 100644
--- a/strings/strtoll.c
+++ b/strings/strtoll.c
@@ -14,11 +14,20 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* This is defines strtoll() if neaded */
+/* This implements strtoll() if needed */
-#define strtoll glob_strtoll /* Fix for True64 */
+/*
+ These includes are mandatory because they check for type sizes and
+ functions, especially they handle tricks for Tru64 where 'long' is
+ 64 bit already and our 'longlong' is just a 'long'.
+ This solves a problem on Tru64 where the C99 compiler has a prototype
+ for 'strtoll()' but no implementation, see "6.1 New C99 library functions"
+ in file '/usr/share/doclib/cc.dtk/release_notes.txt'.
+ */
#include <my_global.h>
+#include <m_string.h>
+
#if !defined(HAVE_STRTOLL) && defined(HAVE_LONG_LONG)
#define USE_LONGLONG
#include "strto.c"
diff --git a/strings/strtoul.c b/strings/strtoul.c
index 00e1f820942..32a7bc62298 100644
--- a/strings/strtoul.c
+++ b/strings/strtoul.c
@@ -14,9 +14,16 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* This is defines strtoul() if neaded */
+/* This implements strtol() if needed */
+/*
+ These includes are mandatory because they check for type sizes and
+ functions, especially they handle tricks for Tru64 where 'long' is
+ 64 bit already and our 'longlong' is just a 'long'.
+ */
#include <my_global.h>
+#include <m_string.h>
+
#if !defined(MSDOS) && !defined(HAVE_STRTOUL)
#define USE_UNSIGNED
#include "strto.c"
diff --git a/strings/strtoull.c b/strings/strtoull.c
index f4f3ce19bf7..0c2788bc188 100644
--- a/strings/strtoull.c
+++ b/strings/strtoull.c
@@ -14,9 +14,20 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* This is defines strtoull() */
+/* This implements strtoull() if needed */
+
+/*
+ These includes are mandatory because they check for type sizes and
+ functions, especially they handle tricks for Tru64 where 'long' is
+ 64 bit already and our 'longlong' is just a 'long'.
+ This solves a problem on Tru64 where the C99 compiler has a prototype
+ for 'strtoull()' but no implementation, see "6.1 New C99 library functions"
+ in file '/usr/share/doclib/cc.dtk/release_notes.txt'.
+ */
#include <my_global.h>
+#include <m_string.h>
+
#if !defined(HAVE_STRTOULL) && defined(HAVE_LONG_LONG)
#define USE_UNSIGNED
#define USE_LONGLONG