summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib/atol.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/stdlib/atol.c')
-rw-r--r--lib/libc/stdlib/atol.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/libc/stdlib/atol.c b/lib/libc/stdlib/atol.c
index 31bcaa6..b85b8b2 100644
--- a/lib/libc/stdlib/atol.c
+++ b/lib/libc/stdlib/atol.c
@@ -29,18 +29,26 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
+ *
+ * $FreeBSD$
*/
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)atol.c 8.1 (Berkeley) 6/4/93";
#endif /* LIBC_SCCS and not lint */
-#include <stddef.h>
+#include <errno.h>
#include <stdlib.h>
long
atol(str)
const char *str;
{
- return(strtol(str, (char **)NULL, 10));
+ long r;
+ int saverr;
+
+ saverr = errno;
+ r = strtol(str, (char **)NULL, 10);
+ errno = saverr;
+ return r;
}
OpenPOWER on IntegriCloud