/* @(#)dclist.c 17.1.1.1 (ES0-DMD) 01/25/02 17:39:08 */ /*=========================================================================== Copyright (C) 1995 European Southern Observatory (ESO) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Massachusetss Ave, Cambridge, MA 02139, USA. Corresponding concerning ESO-MIDAS should be addressed as follows: Internet e-mail: midas@eso.org Postal address: European Southern Observatory Data Management Division Karl-Schwarzschild-Strasse 2 D 85748 Garching bei Muenchen GERMANY ===========================================================================*/ /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .COPYRIGHT (c) 1988 European Southern Observatory .IDENT cdlist.c .LANGUAGE C .AUTHOR Preben Grosbol, ESO/IPG .KEYWORDS decoding, list of numbers .COMMENT Routines for decoding and accessing list of numbers given as a MIDAS 'list'. .VERSION 1.0 1988-Oct-11 : Creation, PJG ------------------------------------------------------------------------*/ #define MXLIST 64 /* max. no. of entries in list */ static int lno = -1; /* no. to current list range */ static struct { /* structure with list of no's */ int first; /* first no. in range */ int last; /* last no. of in range */ } list[MXLIST]; int deflist(plist) /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .PURPOSE decode string with MIDAS 'list' specification and initiate internal list structure. .RETURN status, 0: OK, -1:invalid list, 1: list too long ------------------------------------------------------------------------*/ char *plist; /* pointer to list specification */ { char c; int l,ldig,n; lno = -1; for (n=0; n