本文整理汇总了C++中NewString函数的典型用法代码示例。如果您正苦于以下问题:C++ NewString函数的具体用法?C++ NewString怎么用?C++ NewString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewString函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: List_set
static int List_set(DOH *lo, int n, DOH *val) {
List *l = (List *) ObjData(lo);
if (!val)
return -1;
assert(!((n < 0) || (n >= l->nitems)));
if (!DohCheck(val)) {
val = NewString(val);
Decref(val);
}
Delete(l->items[n]);
l->items[n] = val;
Incref(val);
Delete(val);
return 0;
}
示例2: Char
String *Swig_scopename_last(const String *s) {
char *tmp = Char(s);
char *c = tmp;
char *cc = c;
char *co = 0;
if (!strstr(c, "::"))
return NewString(s);
co = strstr(cc, "operator ");
if (co) {
return NewString(co);
}
while (*c) {
if ((*c == ':') && (*(c + 1) == ':')) {
cc = c;
c += 2;
} else {
if (*c == '<') {
int level = 1;
c++;
while (*c && level) {
if (*c == '<')
level++;
if (*c == '>')
level--;
c++;
}
} else {
c++;
}
}
}
return NewString(cc + 2);
}
示例3: Swig_cmethod_call
String *
Swig_cmethod_call(String_or_char *name, ParmList *parms, String_or_char *self) {
String *func, *nname;
int i = 0;
Parm *p = parms;
SwigType *pt;
int comma = 0;
if (!self) self = (char *) "(this)->";
func = NewString("");
nname = SwigType_namestr(name);
if (!p) return func;
Append(func,self);
pt = Getattr(p,"type");
/* If the method is invoked through a dereferenced pointer, we don't add any casts
(needed for smart pointers). Otherwise, we cast to the appropriate type */
if (Strstr(func,"*this")) {
Replaceall(func,"this", Swig_cparm_name(p,0));
} else {
Replaceall(func,"this", SwigType_rcaststr(pt, Swig_cparm_name(p,0)));
}
if (SwigType_istemplate(name)) {
Printf(func,"template %s(", nname);
} else {
Printf(func,"%s(", nname);
}
i++;
p = nextSibling(p);
while (p) {
String *pname;
pt = Getattr(p,"type");
if ((SwigType_type(pt) != T_VOID)) {
if (comma) Printf(func,",");
pname = Swig_cparm_name(p,i);
Printf(func,"%s", SwigType_rcaststr(pt, pname));
comma = 1;
i++;
}
p = nextSibling(p);
}
Printf(func,")");
Delete(nname);
return func;
}
示例4: Swig_cparse_replace_descriptor
void Swig_cparse_replace_descriptor(String *s) {
char tmp[512];
String *arg = 0;
SwigType *t;
char *c = 0;
while ((c = strstr(Char(s), "$descriptor("))) {
char *d = tmp;
int level = 0;
while (*c) {
if (*c == '(')
level++;
if (*c == ')') {
level--;
if (level == 0) {
break;
}
}
*d = *c;
d++;
c++;
}
*d = 0;
arg = NewString(tmp + 12);
t = Swig_cparse_type(arg);
Delete(arg);
arg = 0;
if (t) {
String *mangle;
String *descriptor;
mangle = SwigType_manglestr(t);
descriptor = NewStringf("SWIGTYPE%s", mangle);
SwigType_remember(t);
*d = ')';
d++;
*d = 0;
Replace(s, tmp, descriptor, DOH_REPLACE_ANY);
Delete(mangle);
Delete(descriptor);
Delete(t);
} else {
Swig_error(Getfile(s), Getline(s), "Bad $descriptor() macro.\n");
break;
}
}
}
示例5: NewString
String* String::NewString(const char* str, const int64_t len){
if(!str) return NewString();
String* o =SafeNew<String>();
if(len >= 0){
o->m_length =len;
}
else{
o->m_length =strlen(str);
}
o->m_data =reinterpret_cast< char* >(ALLOCATE(o->m_length + 1));
if(o->m_length > 0){
memcpy(o->m_data, str, (size_t)o->m_length);
}
o->m_data[o->m_length] =0;
return o;
}
示例6: NewSwigScanner
SwigScanner *
NewSwigScanner() {
SwigScanner *s;
s = (SwigScanner *) malloc(sizeof(SwigScanner));
s->line = 1;
s->file = 0;
s->nexttoken = -1;
s->start_line = 1;
s->string_start = 0;
s->yylen = 0;
s->idstart = "";
s->scanobjs = NewList();
s->text = NewString("");
s->str = 0;
return s;
}
示例7: Insert
/* Returns the function type, t, constructed from the parameters, parms */
SwigType *SwigType_add_function(SwigType *t, ParmList *parms) {
String *pstr;
Parm *p;
Insert(t, 0, ").");
pstr = NewString("f(");
p = parms;
for (p = parms; p; p = nextSibling(p)) {
if (p != parms)
Putc(',', pstr);
Append(pstr, Getattr(p, "type"));
}
Insert(t, 0, pstr);
Delete(pstr);
return t;
}
示例8: toggle_screenTrace
/*
* Turn screen tracing on or off.
*
* If turning it on, screentrace_how contains TSS_FILE or TSS_PRINTER,
* and screentrace_name is NULL (use the default) or the name of a
* file, printer command (Unix) or printer (Windows).
*/
static void
toggle_screenTrace(toggle_index_t ix _is_unused, enum toggle_type tt)
{
char *tracefile_buf = NULL;
char *tracefile;
if (toggled(SCREEN_TRACE)) {
/* Turn it on. */
status_screentrace((screentrace_count = 0));
if (onetime_screentrace_name != NULL) {
tracefile = tracefile_buf = onetime_screentrace_name;
onetime_screentrace_name = NULL;
} else if (screentrace_how == TSS_FILE &&
appres.screentrace_file != NULL) {
tracefile = appres.screentrace_file;
} else {
if (screentrace_how == TSS_FILE) {
tracefile = tracefile_buf =
screentrace_default_file(screentrace_ptype);
} else {
tracefile = tracefile_buf = screentrace_default_printer();
}
}
if (!screentrace_cb(screentrace_how, screentrace_ptype,
NewString(tracefile))) {
set_toggle(SCREEN_TRACE, false);
status_screentrace((screentrace_count = -1));
}
} else {
/* Turn it off. */
if (ctlr_any_data() && !trace_skipping) {
do_screentrace(false);
}
end_screentrace(tt == TT_FINAL);
screentrace_last_how = screentrace_how;
screentrace_how = TSS_FILE; /* back to the default */
screentrace_ptype = P_TEXT; /* back to the default */
status_screentrace((screentrace_count = -1));
}
if (tracefile_buf != NULL) {
Free(tracefile_buf);
}
trace_gui_toggle();
}
示例9: Callback
/**
Password may be stored as encrypted by Configuration Driver. When change a
password, user will be challenged with old password. To validate user input old
password, we will send the clear text to Configuration Driver via Callback().
Configuration driver is responsible to check the passed in password and return
the validation result. If validation pass, state machine in password Callback()
will transit from BROWSER_STATE_VALIDATE_PASSWORD to BROWSER_STATE_SET_PASSWORD.
After user type in new password twice, Callback() will be invoked to send the
new password to Configuration Driver.
@param Selection Pointer to UI_MENU_SELECTION.
@param MenuOption The MenuOption for this password Question.
@param String The clear text of password.
@retval EFI_NOT_AVAILABLE_YET Callback() request to terminate password input.
@return In state of BROWSER_STATE_VALIDATE_PASSWORD:
@retval EFI_SUCCESS Password correct, Browser will prompt for new
password.
@retval EFI_NOT_READY Password incorrect, Browser will show error
message.
@retval Other Browser will do nothing.
@return In state of BROWSER_STATE_SET_PASSWORD:
@retval EFI_SUCCESS Set password success.
@retval Other Set password failed.
**/
EFI_STATUS
PasswordCallback (
IN UI_MENU_SELECTION *Selection,
IN UI_MENU_OPTION *MenuOption,
IN CHAR16 *String
)
{
EFI_STATUS Status;
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
EFI_BROWSER_ACTION_REQUEST ActionRequest;
EFI_IFR_TYPE_VALUE IfrTypeValue;
ConfigAccess = Selection->FormSet->ConfigAccess;
if (ConfigAccess == NULL) {
return EFI_UNSUPPORTED;
}
//
// Prepare password string in HII database
//
if (String != NULL) {
IfrTypeValue.string = NewString (String, Selection->FormSet->HiiHandle);
} else {
IfrTypeValue.string = 0;
}
//
// Send password to Configuration Driver for validation
//
Status = ConfigAccess->Callback (
ConfigAccess,
EFI_BROWSER_ACTION_CHANGING,
MenuOption->ThisTag->QuestionId,
MenuOption->ThisTag->HiiValue.Type,
&IfrTypeValue,
&ActionRequest
);
//
// Remove password string from HII database
//
if (String != NULL) {
DeleteString (IfrTypeValue.string, Selection->FormSet->HiiHandle);
}
return Status;
}
示例10: Char
String *SwigType_prefix(const SwigType *t) {
char *c, *d;
String *r = 0;
c = Char(t);
d = c + strlen(c);
/* Check for a type constructor */
if ((d > c) && (*(d - 1) == '.'))
d--;
while (d > c) {
d--;
if (*d == '>') {
int nest = 1;
d--;
while ((d > c) && (nest)) {
if (*d == '>')
nest++;
if (*d == '<')
nest--;
d--;
}
}
if (*d == ')') {
/* Skip over params */
int nparen = 1;
d--;
while ((d > c) && (nparen)) {
if (*d == ')')
nparen++;
if (*d == '(')
nparen--;
d--;
}
}
if (*d == '.') {
char t = *(d + 1);
*(d + 1) = 0;
r = NewString(c);
*(d + 1) = t;
return r;
}
}
return NewStringEmpty();
}
示例11: start_inline
void start_inline(char *text, int line) {
InFile *in;
/* Save current state */
in_head->line_number = cparse_line;
in_head->in_file = cparse_file;
in = (InFile *) malloc(sizeof(InFile));
in->f = NewString(text);
Seek(in->f,0,SEEK_SET);
in->in_file = Swig_copy_string(cparse_file);
in->line_number = line;
in->prev = in_head;
in_head = in;
LEX_in = in->f;
cparse_line = line;
}
示例12: popup_an_errno
/* Pop up an error dialog, based on an error number. */
void
popup_an_errno(int errn, const char *fmt, ...)
{
va_list args;
char *s;
va_start(args, fmt);
(void) vsnprintf(vmsgbuf, sizeof(vmsgbuf), fmt, args);
va_end(args);
s = NewString(vmsgbuf);
if (errn > 0)
popup_an_error("%s: %s", s, strerror(errn));
else
popup_an_error("%s", s);
Free(s);
}
示例13: strip_whitespace
/*
* Whitespace stripper.
*/
char *
strip_whitespace(const char *s)
{
char *t = NewString(s);
while (*t && my_isspace(*t)) {
t++;
}
if (*t) {
char *u = t + strlen(t) - 1;
while (my_isspace(*u)) {
*u-- = '\0';
}
}
return t;
}
示例14: wrapJSObject
jobject wrapJSObject(JNIEnv *pEnv, v8::Handle<v8::Value> value)
{
v8::HandleScope handle_scope;
if (value.IsEmpty() || value->IsNull() || value->IsUndefined()) return NULL;
if (value->IsTrue()) return NewBoolean(pEnv, JNI_TRUE);
if (value->IsFalse()) return NewBoolean(pEnv, JNI_FALSE);
if (value->IsInt32()) return NewInt(pEnv, value->Int32Value());
if (value->IsUint32()) return NewLong(pEnv, value->IntegerValue());
if (value->IsString()) return NewString(pEnv, v8::Handle<v8::String>::Cast(value));
if (value->IsDate()) return NewDate(pEnv, v8::Handle<v8::Date>::Cast(value));
if (value->IsNumber()) return NewDouble(pEnv, value->NumberValue());
// return wrap(value->ToObject());
return NULL;
}
示例15: Swig_name_object_set
void
Swig_name_object_set(Hash *namehash, String *name, SwigType *decl, DOH *object) {
DOH *n;
/* Printf(stdout,"name: '%s', '%s'\n", name, decl);*/
n = Getattr(namehash,name);
if (!n) {
n = NewHash();
Setattr(namehash,name,n);
}
/* Add an object based on the declarator value */
if (!decl) {
Setattr(n,NewString("*"),object);
} else {
Setattr(n,Copy(decl),object);
}
}