Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source libSC G2++ g2++lib g2util.c
Document Actions

g2util.c

by Michael L Powell last modified 2007-01-26 03:23

Click here to get the file

Size 1.8 kB - File type text/plain

File contents

/*ident	"@(#)G2++:g2++lib/g2util.c	3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T.  All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc.  The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/

//  Utility functions for G2

#include <g2ctype.h>
#include <g2debug.h>
#include <g2io.h>
#include <stream.h>

int g2sync_ATTLC(

//  Sync file to next g2 record boundary.
//
//  A 'g2 record boundry' is either: 
//
//      (1) the position just after two
//          consecutive newlines, or 
//      (2) the position just after a newline
//          and just before a alphabetic or 
//          underscore character.

    istream& is
){
    return _g2sync_ATTLC(0,is);
}

int _g2sync_ATTLC(

//  _g2sync is used by getrec_ATTLC & getbuf_ATTLC

    int      c, 
    istream& is
){
    DEBUG(cerr << "enter _g2sync\n";)
    int	lastc = c;

    do{
	c = getchar_G2_ATTLC(is);

	if( 
	    lastc == '\n' 
	){
	    if(
		c == '\n'
	    ){
		break;
	    }
	    if(
		isname1_ATTLC(c)
	    ){
		is.putback(c);
		break;
	    }
	}
	lastc = c;
    }while (
	c != BS_EOF
    );
    DEBUG(
	cerr 
	    << "ready to return with c = ASCII " 
	    << c 
	    << " ("
	    << char(c)
	    << ")"
	    << "\n"
	;
    )
    return c != BS_EOF;
}
int _g2otoi_ATTLC(

//  Ascii octal string to int conversion

    const char* s
){

    int	rval = 0;

    while( 
	isdigit_ATTLC(*s) 
    ){
	rval = (rval<<3) + *s++ - '0';
    }
    return rval;
}
« May 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: