AcePerl
view release on metacpan or search on metacpan
acelib/freesubs.c view on Meta::CPAN
/* File: freesubs.c
* Author: Richard Durbin (rd@mrc-lmb.cam.ac.uk)
* Copyright (C) J Thierry-Mieg and R Durbin, 1991
*-------------------------------------------------------------------
* This file is part of the ACEDB genome database package, written by
* Richard Durbin (MRC LMB, UK) rd@mrc-lmb.cam.ac.uk, and
* Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.cnrs-mop.fr
*
* Description: free format input - record based
* Exported functions: lots - see regular.h
* HISTORY:
* Last edited: Dec 4 11:20 1998 (fw)
* * Dec 3 14:46 1998 (edgrif): Insert version macros for libfree.
* freecard ignores "\r" and "\n" under WIN32
* * Sep 30 14:19 1998 (edgrif)
* * Nov 27 12:30 1995 (mieg): freecard no longer stips \, freeword does
* also i added freeunprotect
* Created: Sun Oct 27 18:16:01 1991 (rd)
*-------------------------------------------------------------------
*/
/* $Id: freesubs.c,v 1.1 2002/11/14 20:00:06 lstein Exp $ */
#include "regular.h"
#include "version.h"
#include <ctype.h>
/* free package version and copyright string. */
/* */
#define FREE_TITLE "Free library"
#define FREE_DESC "Sanger Centre Informatics utilities library."
#define FREE_VERSION 1
#define FREE_RELEASE 1
#define FREE_UPDATE 1
#define FREE_VERSION_NUMBER UT_MAKE_VERSION_NUMBER(FREE_VERSION, FREE_RELEASE, FREE_UPDATE)
UT_COPYRIGHT_STRING(FREE_TITLE, FREE_VERSION, FREE_RELEASE, FREE_UPDATE, FREE_DESC)
int isInteractive = TRUE ; /* can set FALSE, i.e. in tace */
#define MAXSTREAM 80
#define MAXNPAR 80
typedef struct
{ FILE *fil ;
char *text ;
char special[24] ;
int npar ;
int parMark[MAXNPAR] ;
int line ;
BOOL isPipe ;
} STREAM ;
static STREAM stream[MAXSTREAM] ;
static int streamlevel ;
static FILE *currfil ; /* either currfil or currtext is 0 */
static char *currtext ; /* the other is the current source */
static Stack parStack ;
static int maxcard = 1024 ;
static unsigned char *card, *word, *cardEnd, *pos ;
static Associator filAss ;
#define _losewhite while (*pos == ' '|| *pos == '\t') ++pos
#define _stepover(x) (*pos == x && ++pos)
#define _FREECHAR (currfil ? getc (currfil) : *currtext++)
/************************************/
void freeinit (void)
{ static BOOL isInitialised = FALSE ;
if (!isInitialised)
( run in 0.677 second using v1.01-cache-2.11-cpan-39bf76dae61 )