/*  OPTION.H     Copyright (C)   DUL-Soft       14/04/93

    Обработка опций командной строки.
*/


/*  Управляющая структура.  */

typedef struct
{
   int  * flag ;
   char   symbol ;
   int    value ;
}  OPTION ;

/* Где :
   flag   - адрес флага.
   symbol - символ,  при встрече которого  в строке происхо-
	    дит изменение значение флага.
   value  - если symbol встретился в строке,  то значение по
	    по адресу flag изменится на это значение.
*/


#define   ON   1
#define   OFF  0


/*  Функция, обрабатывающая элемент командной строки.  */

int option ( OPTION * o, char * line ) ;

/* Параметры :
   o    - массив управляющих структур. Конец массива опреде-
	  ляется по NULL в поле flag.  Он задает режим обра-
	  ботки строки  т.е. на какие символы нужно реагиро-
	  вать.
   line - элемент командной строки, содержащий опции.

   Коды воэврата :
     -2 - неверные входные параметры.
     -1 - входная строка не является строкой опций.  Предпо-
	  логается,  что первым символом входной строки дол-
	  жен быть  символ  SIGN.   Именно по этому признаку
	  определяется заданы ли опции  или входной параметр
	  имеет другой  значение.  Полезно знать данный код,
	  когда опции могут быть опушены.
      0 - флаги установлены.  Если входная строка опций сос-
	  тоит из одного  символа  SIGN,  или в ней встречен
	  неизвестный символ, то никакой ошибки не выдается.
	  Такие символы просто игнорируются.

   Конкретное значение символа SIGN определено в файле OPTION.C
   Там же находится реализация функции option.
*/
