view netinstall/inilex.l @ 5104:868a5349acee

add documentation to frame.c, rearrange some functions to consolidate in related areas -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-03-05 Ben Wing <ben@xemacs.org> * frame.c: * frame.c (frame_live_p): * frame.c (Fframep): * frame.c (Fdisable_frame): * frame.c (Fenable_frame): * frame.c (Fraise_frame): * frame.c (Fframe_name): * frame.c (Fset_frame_height): * frame.c (internal_set_frame_size): * frame.c (adjust_frame_size): Add documentation on the different types of units used to measure frame size. Add section headers to the various sections. Rearrange the location of some functions in the file to keep related functions together. This especially goes for frame-sizing functions (internal_set_frame_size() and adjust_frame_size()), which have been moved so that they form a group with change_frame_size() and change_frame_size_1(). No functionality should change.
author Ben Wing <ben@xemacs.org>
date Fri, 05 Mar 2010 22:50:27 -0600
parents 3078fd1074e8
children
line wrap: on
line source

%{
/*
 * Copyright (c) 2000, Red Hat, Inc.
 *
 *     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.
 *
 *     A copy of the GNU General Public License can be found at
 *     http://www.gnu.org/
 *
 * Written by DJ Delorie <dj@cygnus.com>
 *
 */

/* tokenize the setup.ini files.  We parse a string which we've
   previously downloaded.  The program must call ini_init() to specify
   that string. */

#include "win32.h"
#include <string.h>
#include <stdlib.h>

#include "ini.h"
#include "iniparse.h"

#define YY_INPUT(buf,result,max_size) { result = ini_getchar(buf, max_size); }

static int ini_getchar(char *buf, int max_size);
static void ignore_line ();

%}

/*%option debug */
%option noyywrap
%option yylineno
%option never-interactive

STR	[a-zA-Z0-9_./-]+

%%

\"[^"]*\"		{ yylval = strdup (yytext+1);
			  yylval[strlen (yylval)-1] = 0;
			  return STRING; }

"setup-timestamp:"	return SETUP_TIMESTAMP;
"setup-version:"	return SETUP_VERSION;
"version:"		return VERSION;
"install:"		return INSTALL;
"type:"			return TYPE;
"source:"		return SOURCE;
"sdesc:"		return SDESC;
"ldesc:"		return LDESC;

^{STR}":"		ignore_line ();

"[curr]"		return T_CURR;
"[test]"		return T_TEST;
"[exp]"			return T_TEST;
"[prev]"		return T_PREV;
"["{STR}"]"		return T_UNKNOWN;

{STR}			{ yylval = strdup (yytext);
			  return STRING; }

[ \t\r]+		/* do nothing */

"#".*\n			/* ignore comments */

\n			{ return yytext[0]; }
.			{ return yytext[0]; }

%%

static char *input_string = 0;
static char *end_input_string;

void
ini_init(char *string)
{
  input_string = string;
  end_input_string = input_string + strlen(input_string);
}

static int
ini_getchar(char *buf, int max_size)
{
  if (input_string)
    {
      int avail = end_input_string - input_string;
      if (avail == 0)
	{
	  input_string = end_input_string = 0;
	  return 0;
	}
      if (avail > max_size)
	avail = max_size;
      memcpy(buf, input_string, avail);
      input_string += avail;
      return avail;
    }
  else
    return 0;
}

static void
ignore_line ()
{
  char c;
  while (c = input ())
    {
      if (c == EOF)
	return;
      if (c == '\n')
	return;
    }
}