symbian-qemu-0.9.1-12/python-2.6.1/Python/atof.c
author Gareth Stockwell <gareth.stockwell@accenture.com>
Tue, 14 Sep 2010 17:21:05 +0100
branchgraphics-phase-3
changeset 109 ae83407e7b6a
parent 1 2fb8b9db1c86
permissions -rw-r--r--
Added Makefile for building syborg-graphicswrapper using GCC At present the build fails due to the following missing headers: KhronosAPIWrapper.h VirtualVideoInterfaceConstants.h platformthreading.h protocol_MGraphicsVHWCallback.h


/* Just in case you haven't got an atof() around...
   This one doesn't check for bad syntax or overflow,
   and is slow and inaccurate.
   But it's good enough for the occasional string literal... */

#include "pyconfig.h"

#include <ctype.h>

double atof(char *s)
{
	double a = 0.0;
	int e = 0;
	int c;
	while ((c = *s++) != '\0' && isdigit(c)) {
		a = a*10.0 + (c - '0');
	}
	if (c == '.') {
		while ((c = *s++) != '\0' && isdigit(c)) {
			a = a*10.0 + (c - '0');
			e = e-1;
		}
	}
	if (c == 'e' || c == 'E') {
		int sign = 1;
		int i = 0;
		c = *s++;
		if (c == '+')
			c = *s++;
		else if (c == '-') {
			c = *s++;
			sign = -1;
		}
		while (isdigit(c)) {
			i = i*10 + (c - '0');
			c = *s++;
		}
		e += i*sign;
	}
	while (e > 0) {
		a *= 10.0;
		e--;
	}
	while (e < 0) {
		a *= 0.1;
		e++;
	}
	return a;
}