コード例 #1
0
ファイル: dtd_util.c プロジェクト: Distrotech/lynx
int main(int argc, char *argv[])
{
    const SGML_dtd *the_dtd = &HTML_dtd;
    int ch;
    int dtd_version = 0;
    int c_option = FALSE;
    int h_option = FALSE;
    int l_option = FALSE;
    FILE *input = stdin;
    FILE *output = stdout;

    while ((ch = getopt(argc, argv, GETOPT)) != -1) {
	switch (ch) {
	case 'c':
	    c_option = TRUE;
	    break;
	case 'h':
	    h_option = TRUE;
	    break;
	case 'l':
	    l_option = TRUE;
	    input = fopen(optarg, "r");
	    if (input == 0)
		failed(optarg);
	    break;
	case 'o':
	    output = fopen(optarg, "w");
	    if (output == 0)
		failed(optarg);
	    break;
	case 't':
	    dtd_version = 1;
	    break;
	case 's':
	    dtd_version = 0;
	    break;
	default:
	    usage();
	}
    }

    HTSwitchDTD(dtd_version);
    if (l_option)
	the_dtd = load_flatfile(input);

    if (the_dtd != 0) {
	if (c_option)
	    dump_source(output, the_dtd, dtd_version);
	if (h_option)
	    dump_header(output, the_dtd);
	if (!c_option && !h_option)
	    dump_flatfile(output, the_dtd);
    }

    return EXIT_SUCCESS;
}
コード例 #2
0
static void
dump_group (ESourceGroup *group)
{
	GSList *sources, *p;

	g_print ("Group %s\n", e_source_group_peek_uid (group));
	g_print ("\tname: %s\n", e_source_group_peek_name (group));
	g_print ("\tbase_uri: %s\n", e_source_group_peek_base_uri (group));

	sources = e_source_group_peek_sources (group);
	for (p = sources; p != NULL; p = p->next) {
		ESource *source = E_SOURCE (p->data);

		dump_source (source);

		if (e_source_peek_group (source) != group)
			g_warning ("\t\t** ERROR ** parent pointer is %p, should be %p",
				   (gpointer) e_source_peek_group (source),
				   (gpointer) group);
	}
}
コード例 #3
0
ファイル: debugger.c プロジェクト: Openwide-Ingenierie/haka
static bool list_source(struct luadebug_debugger *session, const char *option)
{
	if (option) {
		if (strcmp(option, "-") == 0) {
			session->list_line -= 2*LIST_DEFAULT_LINE + 1;
		}
		else if (strcmp(option, "+") == 0) {
		}
		else {
			const int line = atoi(option);
			session->list_line = line - LIST_DEFAULT_LINE/2;
		}
	}

	if (session->list_line < 0) {
		session->list_line = 0;
	}

	dump_source(session, &session->frame, session->list_line, session->list_line + LIST_DEFAULT_LINE);
	session->list_line += LIST_DEFAULT_LINE+1;
	return false;
}
コード例 #4
0
ファイル: next.c プロジェクト: DavidFeng/ci
void next() {
  char *pp;
  while ((tk = *p)) {
    ++p;
    if (tk == '\n') {
      dump_source();
    } else if (tk == '#') {
      while (*p != 0 && *p != '\n') ++p;
    } else if ((tk >= 'a' && tk <= 'z') || (tk >= 'A' && tk <= 'Z') || tk == '_') {
      pp = p - 1;

      while ( (*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z') ||
          (*p >= '0' && *p <= '9') || *p == '_')
        tk = tk * 147 + *p++;
      tk = (tk << 6) + (p - pp);
      id = sym;
      while (id[Tk]) {
        if (tk == id[Hash] && !memcmp((char *)id[Name], pp, p - pp)) {
          tk = id[Tk];
          return;
        }
        id = id + Idsz;
      }
      id[Name] = (int)pp;
      id[Hash] = tk;
      tk = id[Tk] = Id;
      return;
    } else if (tk >= '0' && tk <= '9') {
      ival = tk - '0';
      if (*p == 'x' || *p == 'X') {
        p++;
        while (1) {
          int v;
          v = *p;
          if (v >= '0' && v <= '9') {
          } else if (v >= 'A' && v <= 'F') {
            v -= 7; // 'A' - ('9' + 1) = 7
          } else if (v >= 'a' && v <= 'f') {
            v -= 39; // 'a' - ('9' + 1) = 39
          } else {
            break;
          }
          ival = ival * 16 + v - '0';
          p++;
        }
      } else {
        while (*p >= '0' && *p <= '9') {
          ival = ival * 10 + *p++ - '0';
        }
      }
      tk = Num;
      return;
    } else if (tk == '/') {
      if (*p == '/') {
        ++p;
        while (*p != 0 && *p != '\n') ++p;
      } else {
        tk = Div;
        return;
      }
    } else if (tk == '\'' || tk == '"') {
      pp = data;
      while (*p != 0 && *p != tk) {
        if ((ival = *p++) == '\\') {
          if ((ival = *p++) == 'n') ival = '\n';
        }
        if (tk == '"') *data++ = ival;
      }
      ++p;
      if (tk == '"') {
        ival = (int)(pp - bd);
      } else {
        tk = Num;
      }
      return;
    } else if (tk == '=') {
      if (*p == '=') {
        ++p; tk = Eq;
      } else {
        tk = Assign;
      }
      return;
    } else if (tk == '+') {
      if (*p == '+') { ++p; tk = Inc; } else tk = Add;
      return;
    } else if (tk == '-') {
      if (*p == '-') { ++p; tk = Dec; } else tk = Sub;
      return;
    } else if (tk == '!') {
      if (*p == '=') {
        ++p;
        tk = Ne;
      }
      return;
    } else if (tk == '<') {
      if (*p == '=') {
        ++p;
        tk = Le;
      } else if (*p == '<') {
        ++p; tk = Shl;
      } else {
        tk = Lt;
      }
      return;
    } else if (tk == '>') {
      if (*p == '=') {
        ++p;
        tk = Ge;
      } else if (*p == '>') {
        ++p;
        tk = Shr;
      } else {
        tk = Gt;
      }
      return;
    } else if (tk == '|') {
      if (*p == '|') {
        ++p;
        tk = Lor;
      } else {
        tk = Or;
      }
      return;
    } else if (tk == '&') {
      if (*p == '&') {
        ++p;
        tk = Lan;
      } else {
        tk = And;
      }
      return;
    } else if (tk == '^') {
      tk = Xor;
      return;
    } else if (tk == '%') {
      tk = Mod;
      return;
    } else if (tk == '*') {
      tk = Mul;
      return;
    } else if (tk == '[') {
      tk = Brak;
      return;
    } else if (tk == '?') {
      tk = Cond;
      return;
    }
    else if (tk == '~' || tk == ';' || tk == '{' || tk == '}'
        || tk == '(' || tk == ')' || tk == ']' || tk == ','
        || tk == ':') {
      return;
    }
  }
}