pike.git / src / cpp.cmod

version» Context lines:

pike.git/src/cpp.cmod:219:    struct string_builder s;    struct array *parts = THIS->parts;    INT32 i;    INT_TYPE flags = flags_sval?flags_sval->u.integer:0;       init_string_builder(&s, 0);    if(d->magic)    {    struct pike_string *a = NULL;    -  if (d->args > 0) { +  if (arguments && (d->args > 0)) {    a = ITEM(arguments)[0].u.string;    }    d->magic(context_obj, d, a, &s);       /* NB: The variable 'a' does not holdany refs. */       if (d->magic == insert_callback_define ||    d->magic == insert_callback_define_no_args ||    d->magic == insert_pragma) {    goto keep_new_lines;
pike.git/src/cpp.cmod:290:    while(len && wide_isspace(INDEX_PCHARP(a, len-1))) {    len--;    }    }    string_builder_append(&s, a, len);    } else {    /* NB: Evaluate the argument before insertion. */    int save_flags = d->flags;    d->flags |= CPP_MACRO_IN_USE;    +  if (context_obj) {    ref_push_string(str);    push_int(flags & ~(CPP_EXPECT_ENDIF | CPP_EXPECT_ELSE));    safe_apply(context_obj, "cpp", 2);    string_builder_shared_strcat(&s, Pike_sp[-1].u.string);    pop_stack(); -  +  } else { +  string_builder_shared_strcat(&s, str); +  }       d->flags = save_flags;       }    }    if (!(raw_arg & DEF_ARG_NOPOSTSPACE)) {    string_builder_putchar(&s, ' ');    }    }    break;