1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 #pragma ident "%Z%%M% %I% %E% SMI" 23 24 /* 25 * Copyright (c) 1988 by Sun Microsystems, Inc. 26 */ 27 28 #include <ctype.h> 29 #include <stdio.h> 30 #ifndef PRE41 31 #include <locale.h> 32 #endif 33 #include "base_conversion.h" 34 35 void 36 string_to_decimal(ppc, nmax, fortran_conventions, pd, pform, pechar) 37 char **ppc; 38 int nmax; 39 int fortran_conventions; 40 decimal_record *pd; 41 enum decimal_string_form *pform; 42 char **pechar; 43 44 { 45 register char *cp = *ppc; 46 register int current; 47 register int nread = 1; /* Number of characters read so far. */ 48 char *cp0 = cp; 49 char *good = cp - 1; /* End of known good token. */ 50 51 current = *cp; 52 53 #define ATEOF 0 /* A string is never at EOF. */ 54 #define CURRENT current 55 #define NEXT \ 56 if (nread < nmax) \ 57 {cp++ ; current = *cp ; nread++ ;} \ 58 else \ 59 {current = NULL ; } ; /* Increment input character and cp. */ 60 61 #include "char_to_decimal.h" 62 #undef CURRENT 63 #undef NEXT 64 } 65