pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:3798:    case '0': case '1': case '2': case '3': case '4':    case '5': case '6': case '7': case '8': case '9':    {    int marker = remap_marker(remap, t->type, flags);    if (!marker) {    /* FIXME: Improved error handling here. */    push_type(T_MIXED);    } else {    push_type(marker);    } +  if (flags & PT_FLAG_BOTH_MARKERS) { +  marker = remap_marker(remap, t->type ^ 0x10, flags); +  if (!marker) { +  /* FIXME: Improved error handling here. */ +  push_type(T_MIXED); +  } else { +  push_type(marker); +  } +  switch(flags & PT_FLAG_BOTH_MARKERS_MASK) { +  case PT_FLAG_BOTH_MARKERS_AND: +  push_type(T_AND);    break; -  +  case PT_FLAG_BOTH_MARKERS_OR: +  push_type(T_OR); +  break; +  default: +  Pike_fatal("Unsupported marker joining method.\n"); +  break;    } -  +  } +  break; +  }       case PIKE_T_NAME:    push_remap_markers(t->cdr, remap, flags);    push_type_name((struct pike_string *)(t->car));    break;       case PIKE_T_ATTRIBUTE:    push_remap_markers(t->cdr, remap, flags);    push_type_attribute((struct pike_string *)(t->car));    break;