summaryrefslogtreecommitdiffstats
path: root/private/crt32/iostream/istrdbl.cxx
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/crt32/iostream/istrdbl.cxx
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/crt32/iostream/istrdbl.cxx')
-rw-r--r--private/crt32/iostream/istrdbl.cxx46
1 files changed, 46 insertions, 0 deletions
diff --git a/private/crt32/iostream/istrdbl.cxx b/private/crt32/iostream/istrdbl.cxx
new file mode 100644
index 000000000..a129d4d20
--- /dev/null
+++ b/private/crt32/iostream/istrdbl.cxx
@@ -0,0 +1,46 @@
+/***
+* istrdbl.cxx - definition for operator>>(double) member funct for istream class
+*
+* Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* Definition of operator>>(double) member function for istream class.
+* [AT&T C++]
+*
+*Revision History:
+* 09-26-91 KRS Created. Split off from istream.cxx for granularity.
+* 12-30-92 KRS Fix indirection problem with **endptr.
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <internal.h>
+#include <stdlib.h>
+#include <iostream.h>
+#pragma hdrstop
+
+#pragma check_stack(on) // large buffer(s)
+
+// CONSIDER: validate this maximum length
+#define MAXDBLSIZ 28
+
+istream& istream::operator>>(double& n)
+{
+_WINSTATIC char ibuffer[MAXDBLSIZ];
+ char ** endptr = (char**)NULL;
+ if (ipfx(0))
+ {
+ if (getdouble(ibuffer, MAXDBLSIZ)>0)
+ {
+ n = strtod(ibuffer, endptr);
+#if 0
+ if (**endptr)
+ {
+ //UNDONE: put back any unread characters, if possible
+ }
+#endif
+ }
+ isfx();
+ }
+return *this;
+}