Exemple #1
0
OOP
_gst_re_search (OOP srcOOP, OOP patternOOP, int from, int to)
{
  int res = 0;
  const char *src;
  struct pre_pattern_buffer *regex;
  struct pre_registers *regs;
  RegexCaching caching;
  OOP resultOOP;

  if (!regexClassOOP)
    init_re ();

  caching = lookupRegex (patternOOP, &regex);
  if (caching != REGEX_CACHE_HIT && compileRegex (patternOOP, regex) != NULL)
    return NULL;

  /* now search */
  src = &STRING_OOP_AT (OOP_TO_OBJ (srcOOP), 1);
  regs = (struct pre_registers *) calloc (1, sizeof (struct pre_registers));
  res = pre_search (regex, src, to, from - 1, to - from + 1, regs);

  if (caching == REGEX_NOT_CACHED)
    pre_free_pattern (regex);

  resultOOP = make_re_results (srcOOP, regs);
  pre_free_registers(regs);
  free(regs);
  return resultOOP;
}
Exemple #2
0
// DO NOT CALL THIS FUNCTION DIRECTLY
// call pre_skip_backward instead
// NOTE : this function handles skipping for real laserdisc players that don't support it
bool ldp::skip_backward(Uint16 frames_to_skip, Uint16 target_frame)
{
	bool result = false;
	
	char frame[6] = {0};
	sprintf(frame, "%05d", target_frame);

	result = pre_search(frame, true);
	pre_play();

	return(result);
}
Exemple #3
0
int main(void) {
    Node *n8 = create_node(1000,NULL,NULL);
    Node *n1 = create_node(55,NULL,n8);
    Node *n2 = create_node(100,NULL,NULL);
    Node *n3 = create_node(1,n1,n2);
    Node *n4 = create_node(2,NULL,NULL);
    Node *n5 = create_node(3,NULL,NULL);
    Node *n6 = create_node(4,n4,n5);
    Node *n7 = create_node(5,n3,n6);

    root r = init_bitree(n7);
    pre_search(r);
    printf("\n");
    mid_search(r);
    printf("\n");
    last_search(r);
    printf("\n");
    destroy_bitree(r);
    return 0;
}