本文整理汇总了C++中copy_string函数的典型用法代码示例。如果您正苦于以下问题:C++ copy_string函数的具体用法?C++ copy_string怎么用?C++ copy_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了copy_string函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: de_Delete
int de_Delete() {
char * more;
char * rdn;
char * sure;
char name[LINESIZE];
int fillMostRmArg();
int noEntries;
int objectType;
int status;
noEntries = 0;
more = malloc(LINESIZE);
plp = (struct namelist *) malloc(sizeof(struct namelist));
sure = malloc(LINESIZE);
fillMostRmArg();
(void) sprintf(default_person, ""); /* Clear default value */
(void) sprintf(more, yes_string); /* Enter loop */
highNumber = 0;
while (!(strcmp(more, yes_string))) {
enterString(DELETE, person, plp);
if (!(strcmp(person, quit_String))) {
(void) sprintf(more, no_string);
if (noEntries > 0) {
freePRRs(&plp);
}
continue;
}
if (strlen(person) <= 0) {
(void) printf("%s %s %s", enter_entry_name, quit_String, to_quit);
continue;
}
(void) printf("\n");
if (noEntries > 0) {
freePRRs(&plp);
}
if (listPRRs(posdit, person, &plp) != OK) {
searchFail(person);
de_exit(-1);
}
noEntries = listlen(plp);
if (noEntries == 0) {
(void) printf(no_ent_found);
freePRRs(&plp);
} else if (noEntries == 1) {
rdn = copy_string(lastComponent(plp->name, PERSON));
status = get_objectClassPRR(plp, &objectType);
if (status != OK) {
(void) printf(no_p_rl_rm);
continue;
} else if (objectType == PERSON) {
if (listPRRs(posdit, rdn, &plp) != OK) {
searchFail(rdn);
}
} else if (objectType == ROLE) {
if (listPRRRl(posdit, rdn, &plp) != OK) {
searchFail(rdn);
}
} else if (objectType == ROOM) {
if (listPRRRm(posdit, rdn, &plp) != OK) {
searchFail(rdn);
}
}
pagerOn(NUMBER_NOT_ALLOWED);
printListPRRs(person, plp, COUNTRY, TRUE);
highNumber = 0;
de_prompt_yesno(sure_delete, sure, no_string);
if (!(strcmp(sure, yes_string))) {
/* Delete the entry */
(void) dm_Delete_entry();
freePRRs(&plp);
} else {
freePRRs(&plp);
}
} else {
/* more than 1, select from list */
pagerOn(NUMBER_ALLOWED);
printListPRRs(name, plp, COUNTRY, FALSE);
}
}
free(more);
free(rdn);
free(sure);
return OK;
}
开发者ID:Kampbell,项目名称:ISODE,代码行数:97,代码来源:delete.c
示例2: update_ssd_ui
void update_ssd_ui(SSDataUI *ui, Quark *q)
{
if (ui && q) {
int i, nc, nr, new_nc, new_nr, ncols, nrows, nfixed_cols;
int delta_nc, delta_nr;
int *maxlengths;
char **rowlabels, **collabels;
if (ui->q != q) {
TableDeselectAllCells(ui->mw);
}
ui->q = q;
ncols = ssd_get_ncols(q);
nrows = ssd_get_nrows(q);
new_nc = ncols + EXTRA_SS_COLS;
new_nr = nrows + EXTRA_SS_ROWS;
if (ssd_is_indexed(q)) {
nfixed_cols = 1;
} else {
nfixed_cols = 0;
}
nr = TableGetNrows(ui->mw);
nc = TableGetNcols(ui->mw);
delta_nr = new_nr - nr;
delta_nc = new_nc - nc;
if (delta_nr > 0) {
TableAddRows(ui->mw, delta_nr);
} else if (delta_nr < 0) {
TableDeleteRows(ui->mw, -delta_nr);
}
rowlabels = xmalloc(new_nr*sizeof(char *));
for (i = 0; i < new_nr; i++) {
char buf[32];
sprintf(buf, "%d", i + 1);
rowlabels[i] = copy_string(NULL, buf);
}
TableSetRowLabels(ui->mw, rowlabels);
for (i = 0; i < new_nr; i++) {
xfree(rowlabels[i]);
}
xfree(rowlabels);
maxlengths = xmalloc(new_nc*SIZEOF_INT);
collabels = xmalloc(new_nc*sizeof(char *));
for (i = 0; i < new_nc; i++) {
ss_column *col = ssd_get_col(q, i);
if (col && col->format == FFORMAT_STRING) {
maxlengths[i] = STRING_CELL_WIDTH;
} else {
maxlengths[i] = 2*CELL_WIDTH;
}
if (col && !string_is_empty(col->label)) {
collabels[i] = copy_string(NULL, col->label);
} else {
unsigned int coli;
char buf[32];
coli = i;
sprintf(buf, "%c", coli%26 + 'A');
while ((coli /= 26)) {
memmove(&buf[1], buf, strlen(buf) + 1);
buf[0] = coli%26 + 'A' - 1;
}
collabels[i] = copy_string(NULL, buf);
}
}
if (delta_nc > 0) {
TableAddCols(ui->mw, delta_nc);
} else if (delta_nc < 0) {
TableDeleteCols(ui->mw, -delta_nc);
}
TableSetColMaxlengths(ui->mw, maxlengths);
TableSetColLabels(ui->mw, collabels);
TableSetFixedCols(ui->mw, nfixed_cols);
TableUpdateVisibleRowsCols(ui->mw);
xfree(maxlengths);
for (i = 0; i < new_nc; i++) {
xfree(collabels[i]);
}
xfree(collabels);
UpdateColChoice(ui->col_sel, q);
}
}
开发者ID:astrotycoon,项目名称:grace,代码行数:97,代码来源:ssd_ui.c
示例3: tns_parse_end
static enum proto_parse_status tns_parse_end(struct sql_proto_info *info, struct cursor *cursor)
{
SLOG(LOG_DEBUG, "Parsing tns end packet");
enum proto_parse_status status;
uint_least64_t var[6];
for (unsigned i = 0; i < 6; i++) {
if (PROTO_OK != (status = cursor_read_variable_int(cursor, var + i))) return status;
}
uint_least64_t nb_rows;
uint_least64_t error_code;
// let's use the double 0x00 to guess the position of row number and error code
if (var[0] > 0 && var[4] == 0 && var[5] == 0) {
// var[0] is unknown?
// var[1] == sequence
// var[2] == rows
// var[3] == error code
SLOG(LOG_DEBUG, "Unknown bits after ttc code");
nb_rows = var[2];
error_code = var[3];
DROP_VAR(cursor);
} else if (var[3] == 0 && var[4] == 0) {
// var[0] == sequence
// var[1] == rows
// var[2] == error code
nb_rows = var[1];
error_code = var[2];
} else {
// var[0] == rows
// var[1] == error code
nb_rows = var[0];
error_code = var[1];
}
if (info->msg_type == SQL_QUERY) {
sql_set_row_count(info, nb_rows);
SLOG(LOG_DEBUG, "Nb rows %d", info->u.query.nb_rows);
}
SLOG(LOG_DEBUG, "Error code is %zu", error_code);
DROP_VARS(cursor, 1);
DROP_FIX(cursor, 2);
DROP_VARS(cursor, 2);
DROP_FIX(cursor, 2);
DROP_VARS(cursor, 2);
DROP_FIX(cursor, 1);
DROP_VARS(cursor, 3);
if (error_code != 0) {
SLOG(LOG_DEBUG, "Parsing error message");
char *error_msg = tempstr();
unsigned error_len;
// Drop an unknown number of bytes here
while(cursor->cap_len > 2 && (cursor_peek_u8(cursor, 0) == 0 || !is_print(cursor_peek_u8(cursor, 1)))){
DROP_FIX(cursor, 1);
}
SLOG(LOG_DEBUG, "First printable char is %c", cursor_peek_u8(cursor, 1));
status = cursor_read_variable_string(cursor, error_msg, TEMPSTR_SIZE, &error_len);
if (status != PROTO_OK) return status;
if (error_len < 12) return PROTO_PARSE_ERR;
// Split "ORA-XXXX: msg"
// Part before : is the error code
// Part after is the localized message
char *colon_pos = memchr(error_msg, ':', error_len);
sql_set_request_status(info, SQL_REQUEST_ERROR);
if (colon_pos) {
// We extract the error code
unsigned error_code_size = colon_pos - error_msg;
int size_err = MIN(error_code_size, sizeof(info->error_code));
memcpy(info->error_code, error_msg, size_err);
info->error_code[size_err] = '\0';
info->set_values |= SQL_ERROR_CODE;
if (0 == strcmp("ORA-01403", info->error_code))
info->request_status = SQL_REQUEST_COMPLETE;
// We skip ':' in errror message
char const *start_message = colon_pos + 1;
// We skip spaces before errror message
while (start_message < error_len + error_msg && *start_message == ' ')
start_message++;
copy_string(info->error_message, start_message, sizeof(info->error_message));
info->set_values |= SQL_ERROR_MESSAGE;
} else {
copy_string(info->error_message, error_msg, sizeof(info->error_message));
info->set_values |= SQL_ERROR_MESSAGE;
}
}
return PROTO_OK;
}
开发者ID:awesome-security,项目名称:junkie,代码行数:94,代码来源:tns.c
示例4: value
/**
result_next : 'result -> object?
<doc>
Return the next row if available. A row is represented
as an object, which fields have been converted to the
corresponding Neko value (int, float or string). For
Date and DateTime you can specify your own conversion
function using [result_set_conv_date]. By default they're
returned as plain strings. Additionally, the TINYINT(1) will
be converted to either true or false if equal to 0.
</doc>
**/
static value result_next( value o ) {
result *r;
unsigned long *lengths = NULL;
MYSQL_ROW row;
val_check_kind(o,k_result);
r = RESULT(o);
row = mysql_fetch_row(r->r);
if( row == NULL )
return val_null;
{
int i;
value cur = alloc_object(NULL);
r->current = row;
for(i=0;i<r->nfields;i++)
if( row[i] != NULL ) {
value v;
switch( r->fields_convs[i] ) {
case CONV_INT:
v = alloc_best_int(atoi(row[i]));
break;
case CONV_STRING:
v = alloc_string(row[i]);
if( r->conv_string != NULL )
v = val_call1(r->conv_string,v);
break;
case CONV_BOOL:
v = alloc_bool( *row[i] != '0' );
break;
case CONV_FLOAT:
v = alloc_float(atof(row[i]));
break;
case CONV_BINARY:
if( lengths == NULL ) {
lengths = mysql_fetch_lengths(r->r);
if( lengths == NULL )
val_throw(alloc_string("mysql_fetch_lengths"));
}
v = copy_string(row[i],lengths[i]);
if( r->conv_bytes != NULL )
v = val_call1(r->conv_bytes,v);
break;
case CONV_DATE:
if( r->conv_date == NULL )
v = alloc_string(row[i]);
else {
struct tm t;
sscanf(row[i],"%4d-%2d-%2d",&t.tm_year,&t.tm_mon,&t.tm_mday);
t.tm_hour = 0;
t.tm_min = 0;
t.tm_sec = 0;
t.tm_isdst = -1;
t.tm_year -= 1900;
t.tm_mon--;
v = val_call1(r->conv_date,alloc_int32((int)mktime(&t)));
}
break;
case CONV_DATETIME:
if( r->conv_date == NULL )
v = alloc_string(row[i]);
else {
struct tm t;
sscanf(row[i],"%4d-%2d-%2d %2d:%2d:%2d",&t.tm_year,&t.tm_mon,&t.tm_mday,&t.tm_hour,&t.tm_min,&t.tm_sec);
t.tm_isdst = -1;
t.tm_year -= 1900;
t.tm_mon--;
v = val_call1(r->conv_date,alloc_int32((int)mktime(&t)));
}
break;
default:
v = val_null;
break;
}
alloc_field(cur,r->fields_ids[i],v);
}
return cur;
}
}
开发者ID:bsmr-haxe,项目名称:neko,代码行数:89,代码来源:mysql.c
示例5: do_execve
int
do_execve(const char *filename, const char **argv, const char **envp) {
static_assert(EXEC_MAX_ARG_LEN >= FS_MAX_FPATH_LEN);
struct mm_struct *mm = current->mm;
char local_name[PROC_NAME_LEN + 1];
memset(local_name, 0, sizeof(local_name));
char *kargv[EXEC_MAX_ARG_NUM], *kenvp[EXEC_MAX_ENV_NUM];
const char *path;
int ret = -E_INVAL;
lock_mm(mm);
#if 0
if (name == NULL) {
snprintf(local_name, sizeof(local_name), "<null> %d", current->pid);
}
else {
if (!copy_string(mm, local_name, name, sizeof(local_name))) {
unlock_mm(mm);
return ret;
}
}
#endif
snprintf(local_name, sizeof(local_name), "<null> %d", current->pid);
int argc = 0, envc = 0;
if ((ret = copy_kargv(mm, kargv, argv, EXEC_MAX_ARG_NUM, &argc)) != 0) {
unlock_mm(mm);
return ret;
}
if ((ret = copy_kargv(mm, kenvp, envp, EXEC_MAX_ENV_NUM, &envc)) != 0) {
unlock_mm(mm);
put_kargv(argc, kargv);
return ret;
}
#if 0
int i;
kprintf("## fn %s\n", filename);
kprintf("## argc %d\n", argc);
for(i=0;i<argc;i++)
kprintf("## %08x %s\n", kargv[i], kargv[i]);
kprintf("## envc %d\n", envc);
for(i=0;i<envc;i++)
kprintf("## %08x %s\n", kenvp[i], kenvp[i]);
#endif
//path = argv[0];
//copy_from_user (mm, &path, argv, sizeof (char*), 0);
path = filename;
unlock_mm(mm);
/* linux never do this */
//fs_closeall(current->fs_struct);
/* sysfile_open will check the first argument path, thus we have to use a user-space pointer, and argv[0] may be incorrect */
int fd;
if ((ret = fd = sysfile_open(path, O_RDONLY)) < 0) {
goto execve_exit;
}
if (mm != NULL) {
mm->lapic = -1;
mp_set_mm_pagetable(NULL);
if (mm_count_dec(mm) == 0) {
exit_mmap(mm);
put_pgdir(mm);
bool intr_flag;
local_intr_save(intr_flag);
{
list_del(&(mm->proc_mm_link));
}
local_intr_restore(intr_flag);
mm_destroy(mm);
}
current->mm = NULL;
}
put_sem_queue(current);
ret = -E_NO_MEM;
/* init signal */
put_sighand(current);
if ((current->signal_info.sighand = sighand_create()) == NULL) {
goto execve_exit;
}
sighand_count_inc(current->signal_info.sighand);
put_signal(current);
if ((current->signal_info.signal = signal_create()) == NULL) {
goto execve_exit;
}
signal_count_inc(current->signal_info.signal);
if ((current->sem_queue = sem_queue_create()) == NULL) {
goto execve_exit;
}
sem_queue_count_inc(current->sem_queue);
//.........这里部分代码省略.........
开发者ID:chyyuu,项目名称:ucore-arch-arm,代码行数:101,代码来源:proc.c
示例6: unix_error_message
CAMLprim value unix_error_message(value err)
{
int errnum;
errnum = Is_block(err) ? Int_val(Field(err, 0)) : error_table[Int_val(err)];
return copy_string(strerror(errnum));
}
开发者ID:ArnaudParant,项目名称:install_script,代码行数:6,代码来源:errmsg.c
示例7: llvm_datalayout_as_string
/* DataLayout.t -> string */
CAMLprim value llvm_datalayout_as_string(value TD) {
char *StringRep = LLVMCopyStringRepOfTargetData(DataLayout_val(TD));
value Copy = copy_string(StringRep);
LLVMDisposeMessage(StringRep);
return Copy;
}
开发者ID:Aspirisha,项目名称:llvm,代码行数:7,代码来源:target_ocaml.c
示例8: unix_gethostname
CAMLprim value unix_gethostname(value unit)
{
struct utsname un;
uname(&un);
return copy_string(un.nodename);
}
开发者ID:Chris00,项目名称:ocaml,代码行数:6,代码来源:gethostname.c
示例9: parse_multipart_data
/**
parse_multipart_data : onpart:function:2 -> ondata:function:3 -> void
<doc>
Incrementally parse the multipart data. call [onpart(name,filename)] for each part
found and [ondata(buf,pos,len)] when some data is available
</doc>
**/
static value parse_multipart_data( value onpart, value ondata ) {
value buf;
int len = 0;
mcontext *c = CONTEXT();
const char *ctype = ap_table_get(c->r->headers_in,"Content-Type");
value boundstr;
val_check_function(onpart,2);
val_check_function(ondata,3);
buf = alloc_empty_string(BUFSIZE);
if( !ctype || strstr(ctype,"multipart/form-data") == NULL )
return val_null;
// extract boundary value
{
const char *boundary, *bend;
if( (boundary = strstr(ctype,"boundary=")) == NULL )
neko_error();
boundary += 9;
PARSE_HEADER(boundary,bend);
len = (int)(bend - boundary);
boundstr = alloc_empty_string(len+2);
if( val_strlen(boundstr) > BUFSIZE / 2 )
neko_error();
val_string(boundstr)[0] = '-';
val_string(boundstr)[1] = '-';
memcpy(val_string(boundstr)+2,boundary,len);
}
len = 0;
if( !ap_should_client_block(c->r) )
neko_error();
while( true ) {
char *name, *end_name, *filename, *end_file_name, *data;
int pos;
// refill buffer
// we assume here that the the whole multipart header can fit in the buffer
fill_buffer(c,buf,&len);
// is boundary at the beginning of buffer ?
if( len < val_strlen(boundstr) || memcmp(val_string(buf),val_string(boundstr),val_strlen(boundstr)) != 0 )
return discard_body(c);
name = memfind(val_string(buf),len,"Content-Disposition:");
if( name == NULL )
break;
name = memfind(name,len - (int)(name - val_string(buf)),"name=");
if( name == NULL )
return discard_body(c);
name += 5;
PARSE_HEADER(name,end_name);
data = memfind(end_name,len - (int)(end_name - val_string(buf)),"\r\n\r\n");
if( data == NULL )
return discard_body(c);
filename = memfind(name,(int)(data - name),"filename=");
if( filename != NULL ) {
filename += 9;
PARSE_HEADER(filename,end_file_name);
}
data += 4;
pos = (int)(data - val_string(buf));
// send part name
val_call2(onpart,copy_string(name,(int)(end_name - name)),filename?copy_string(filename,(int)(end_file_name - filename)):val_null);
// read data
while( true ) {
const char *boundary;
// recall buffer
memmove(val_string(buf),val_string(buf)+pos,len - pos);
len -= pos;
pos = 0;
fill_buffer(c,buf,&len);
// lookup bounds
boundary = memfind(val_string(buf),len,val_string(boundstr));
if( boundary == NULL ) {
if( len == 0 )
return discard_body(c);
// send as much buffer as possible to client
if( len < BUFSIZE )
pos = len;
else
pos = len - val_strlen(boundstr) + 1;
val_call3(ondata,buf,alloc_int(0),alloc_int(pos));
} else {
// send remaining data
pos = (int)(boundary - val_string(buf));
val_call3(ondata,buf,alloc_int(0),alloc_int(pos-2));
// recall
memmove(val_string(buf),val_string(buf)+pos,len - pos);
len -= pos;
break;
}
}
}
return val_null;
}
开发者ID:HaxeFoundation,项目名称:neko,代码行数:97,代码来源:cgi.c
示例10: string
static void string()
{
emit_constant(OBJ_VAL(copy_string(parser.previous.start + 1, parser.previous.length - 2)));
}
开发者ID:lerno,项目名称:coil,代码行数:4,代码来源:compiler.c
示例11: SetTo
bool
nsTextFragment::Append(const char16_t* aBuffer, uint32_t aLength, bool aUpdateBidi)
{
// This is a common case because some callsites create a textnode
// with a value by creating the node and then calling AppendData.
if (mState.mLength == 0) {
return SetTo(aBuffer, aLength, aUpdateBidi);
}
// Should we optimize for aData.Length() == 0?
if (mState.mIs2b) {
// Already a 2-byte string so the result will be too
char16_t* buff = (char16_t*)realloc(m2b, (mState.mLength + aLength) * sizeof(char16_t));
if (!buff) {
return false;
}
memcpy(buff + mState.mLength, aBuffer, aLength * sizeof(char16_t));
mState.mLength += aLength;
m2b = buff;
if (aUpdateBidi) {
UpdateBidiFlag(aBuffer, aLength);
}
return true;
}
// Current string is a 1-byte string, check if the new data fits in one byte too.
int32_t first16bit = FirstNon8Bit(aBuffer, aBuffer + aLength);
if (first16bit != -1) { // aBuffer contains no non-8bit character
// The old data was 1-byte, but the new is not so we have to expand it
// all to 2-byte
char16_t* buff =
(char16_t*)malloc((mState.mLength + aLength) * sizeof(char16_t));
if (!buff) {
return false;
}
// Copy data into buff
LossyConvertEncoding8to16 converter(buff);
copy_string(m1b, m1b+mState.mLength, converter);
memcpy(buff + mState.mLength, aBuffer, aLength * sizeof(char16_t));
mState.mLength += aLength;
mState.mIs2b = true;
if (mState.mInHeap) {
free(m2b);
}
m2b = buff;
mState.mInHeap = true;
if (aUpdateBidi) {
UpdateBidiFlag(aBuffer + first16bit, aLength - first16bit);
}
return true;
}
// The new and the old data is all 1-byte
char* buff;
if (mState.mInHeap) {
buff = (char*)realloc(const_cast<char*>(m1b),
(mState.mLength + aLength) * sizeof(char));
if (!buff) {
return false;
}
}
else {
buff = (char*)malloc((mState.mLength + aLength) * sizeof(char));
if (!buff) {
return false;
}
memcpy(buff, m1b, mState.mLength);
mState.mInHeap = true;
}
// Copy aBuffer into buff.
LossyConvertEncoding16to8 converter(buff + mState.mLength);
copy_string(aBuffer, aBuffer + aLength, converter);
m1b = buff;
mState.mLength += aLength;
return true;
}
开发者ID:AtulKumar2,项目名称:gecko-dev,代码行数:91,代码来源:nsTextFragment.cpp
示例12: parse_args
/*
* parse_args()
*
* In: argc - number of command-line arguments.
* argv - string array containing command-line arguments.
*
* Returns: an index into argv where we stopped parsing arguments.
*
* Abstract: Parses command-line arguments. In some cases, it will
* set the appropriate global variables and return. Otherwise,
* it performs the appropriate action and exits.
*
* Assumptions: Currently, we check to make sure that there are no arguments
* other than the defined options, so the return value is
* pretty useless and should be ignored.
*/
int parse_args(int argc, char **argv)
{
int c;
int gotdomain = 0;
progname = strrchr(argv[0], '/');
if (!progname) progname = argv[0];
while(1) {
#if defined(__GNU_LIBRARY__)
c = getopt_long(argc, argv, short_options, long_options, 0);
#else
c = getopt(argc, argv, short_options);
#endif
if (c == -1) break;
switch(c) {
case 'a': {
if (!inet_aton(optarg, &recv_addr.sin_addr)) {
log_msg(LOG_ERR, "%s: Bad ip address \"%s\"\n",
progname, optarg);
exit(-1);
}
break;
}
case 'c': {
#ifdef ENABLE_CACHE
copy_string(cache_param, optarg, sizeof(cache_param));
#endif
break;
}
case 'd': {
opt_debug++;
break;
}
case 'h': {
give_help();
exit(0);
break;
}
case 'k': {
if (!kill_current()) {
printf("No %s daemon found. Exiting.\n", progname);
}
exit(0);
break;
}
case 'l': {
gotterminal = 0;
break;
}
case 'm': {
#ifdef ENABLE_CACHE
copy_string(master_param, optarg, sizeof(master_param));
#endif
break;
}
case 's': {
char *sep = strchr(optarg, (int)':');
if (serv_cnt >= MAX_SERV) {
log_msg(LOG_ERR, "%s: Max. %d DNS servers allowed\n",
progname, MAX_SERV);
exit(-1);
}
if (gotdomain == -1) {
log_msg(LOG_ERR, "%s: When giving server arguments with "
"domain names,\nonly the last one is permitted to "
"not have a domain name.\n", progname);
exit(-1);
}
if (sep) {
dns_srv[serv_cnt].domain = make_cname(sep + 1);
if (gotdomain == -1) {
log_msg(LOG_ERR, "%s: Server arguments with domain "
"names must appear before\n"
"those without domain names.\n", progname);
exit(-1);
}
gotdomain = 1;
*sep = 0;
}
else if (gotdomain != 0) {
gotdomain = -1;
}
if (!inet_aton(optarg, &dns_srv[serv_cnt].addr.sin_addr)) {
//.........这里部分代码省略.........
开发者ID:aYosukeAkatsuka,项目名称:edimax-br-6528n,代码行数:101,代码来源:args.c
示例13: ml_string_of_ptr
PREFIX value ml_string_of_ptr(value v_ptr)
{
const char* ptr = (const char*) v_ptr;
if(ptr == NULL) caml_failwith("string_of_ptr");
return copy_string(ptr);
}
开发者ID:PawelMarc,项目名称:ocaml-efl,代码行数:6,代码来源:evas_wrap.c
示例14: sourceAddr
Token* Scanner::read_name(fint c) {
Token::TokenType t;
fint l = line;
fint col = column - 1;
const char* ss = sourceAddr() - 1;
fint len;
if (c == ':') {
t = Token::ARG;
len = 0;
} else {
t = c == '_' ? Token::PRIMNAME : Token::NAME;
len = 1;
buffer[0] = char(c);
}
while (c = get_char(), is_id_char(c)) {
buffer[len++] = char(c);
}
if (c == ':' && (t == Token::NAME || t == Token::PRIMNAME)) {
buffer[len++] = char(c);
if (is_upper((fint)*buffer)) t = Token::CAPKEYWORD;
else
t = c == '_' ? Token::PRIMKEYWORD : Token::KEYWORD;
}
else {
push_char(c);
}
buffer[len] = '\0';
if (t == Token::ARG && len == 0) {
t = as_TokenType(':');
} else if (t == Token::NAME || t == Token::PRIMNAME) {
c = get_char();
if (c == '.') {
c = get_char();
push_char(c);
if (is_id_alpha(c) || is_punct(c)) {
t = Token::DELEGATE;
} else {
push_char('.');
}
} else {
push_char(c);
}
}
if (strcmp(buffer, "self") == 0) {
if (t == Token::NAME) {
t = Token::SELF_TOKEN;
} else {
return TokenizingError(
"using \"self\" as a parent name for a directed resend");
}
} else if (strcmp(buffer, "resend") == 0) {
if (t == Token::DELEGATE) {
t = Token::RESEND_TOKEN;
} else {
return TokenizingError("not using \"resend\" in a resend");
}
}
String* s;
if (t == Token::NAME || t == Token::PRIMNAME || t == Token::ARG || t == Token::DELEGATE ||
t == Token::KEYWORD || t == Token::PRIMKEYWORD || t == Token::CAPKEYWORD) {
s = new String(copy_string(buffer));
} else {
s = NULL;
}
return new Token(t, s, l, col, ss);
}
开发者ID:russellallen,项目名称:self,代码行数:66,代码来源:scanner.cpp
示例15: set_editor
void set_editor(GraceApp *gapp, const char *cmd)
{
gapp->rt->gapp_editor = copy_string(gapp->rt->gapp_editor, cmd);
}
开发者ID:armando-2011,项目名称:grace,代码行数:4,代码来源:utils.c
示例16: load_module
int load_module(char *fname, char *dl_function, char *dl_key, int dl_type)
{
#if defined(HAVE_DL)
int dlflag;
void *handle;
char *error;
symtab_entry newkey;
int retval;
if ((dl_type < 0) || (dl_key == NULL) || (dl_function == NULL)) {
errmsg("Improper call to load_module()");
return RETURN_FAILURE;
}
#if defined(HAVE_DLOPEN)
# if defined(HAVE_RTLD_NOW)
if (dl_load_fast == TRUE) {
dlflag = RTLD_LAZY;
} else {
dlflag = RTLD_NOW;
}
# else
dlflag = 1;
# endif
handle = (void *) dlopen (fname, dlflag);
if (!handle) {
errmsg ((char *) dlerror());
return RETURN_FAILURE;
}
newkey.data = dlsym(handle, dl_function);
if ((error = (char *) dlerror()) != NULL) {
errmsg(error);
dlclose(handle);
return RETURN_FAILURE;
}
#endif /* end dlopen interface */
#if defined(HAVE_SHL_LOAD)
if (dl_load_fast == TRUE) {
dlflag = BIND_DEFERRED;
} else {
dlflag = BIND_IMMEDIATE;
}
handle = (void *) shl_load (fname, dlflag, 0L);
if (!handle) {
#if defined(HAVE_STRERROR)
errmsg(strerror(errno));
#else
# if defined(HAVE_SYS_ERRLIST_DECL)
errmsg(sys_errlist[errno]);
# else
errmsg("DL module initialization failed");
# endif
#endif
return RETURN_FAILURE;
}
if (shl_findsym(handle, dl_function, TYPE_UNDEFINED, &newkey.data) != NULL) {
#if defined(HAVE_STRERROR)
errmsg(strerror(errno));
#else
# if defined(HAVE_SYS_ERRLIST_DECL)
errmsg(sys_errlist[errno]);
# else
errmsg("Error while resolving symbol");
# endif
#endif
shl_unload(handle);
return RETURN_FAILURE;
}
#endif /* end shl_load interface */
newkey.type = dl_type;
newkey.s = copy_string(NULL, dl_key);
retval = addto_symtab(newkey);
xfree(newkey.s);
return retval;
#else /* no support for DL */
errmsg("No support for DL modules on your OS");
return RETURN_FAILURE;
#endif
}
开发者ID:armando-2011,项目名称:grace,代码行数:91,代码来源:dlmodule.c
示例17: set_help_viewer
void set_help_viewer(GraceApp *gapp, const char *dir)
{
gapp->rt->help_viewer = copy_string(gapp->rt->help_viewer, dir);
}
开发者ID:armando-2011,项目名称:grace,代码行数:4,代码来源:utils.c
示例18: process_argument
/* Process the argument character and its associated value.
* This function processes arguments from the command line and
* from an argument file associated with the -A argument.
*
* An argument -ofile.pgn would be passed in as:
* 'o' and "file.pgn".
* A zero-length string for associated_value is not necessarily
* an error, e.g. -e has an optional following filename.
* NB: If the associated_value is to be used beyond this function,
* it must be copied.
*/
void
process_argument(char arg_letter,const char *associated_value)
{ /* Provide an alias for associated_value because it will
* often represent a file name.
*/
const char *filename = skip_leading_spaces(associated_value);
switch(arg_letter){
case WRITE_TO_OUTPUT_FILE_ARGUMENT:
case APPEND_TO_OUTPUT_FILE_ARGUMENT:
if(GlobalState.ECO_level > 0){
fprintf(GlobalState.logfile,"-%c conflicts with -E\n",
arg_letter);
}
else if(GlobalState.games_per_file > 0){
fprintf(GlobalState.logfile,"-%c conflicts with -#\n",
arg_letter);
}
else if(GlobalState.output_filename != NULL){
fprintf(GlobalState.logfile,
"-%c: File %s has already been selected for output.\n",
arg_letter,GlobalState.output_filename);
exit(1);
}
else if(*filename == '\0'){
fprintf(GlobalState.logfile,"Usage: -%cfilename.\n",arg_letter);
exit(1);
}
else{
if(GlobalState.outputfile != NULL){
(void) fclose(GlobalState.outputfile);
}
if(arg_letter == WRITE_TO_OUTPUT_FILE_ARGUMENT){
GlobalState.outputfile = must_open_file(filename,"w");
}
else{
GlobalState.outputfile = must_open_file(filename,"a");
}
GlobalState.output_filename = filename;
}
break;
case WRITE_TO_LOG_FILE_ARGUMENT:
case APPEND_TO_LOG_FILE_ARGUMENT:
/* Take precautions against multiple log files. */
if((GlobalState.logfile != stderr) && (GlobalState.logfile != NULL)){
(void) fclose(GlobalState.logfile);
}
if(arg_letter == WRITE_TO_LOG_FILE_ARGUMENT){
GlobalState.logfile = fopen(filename,"w");
}
else{
GlobalState.logfile = fopen(filename,"a");
}
if(GlobalState.logfile == NULL){
fprintf(stderr,"Unable to open %s for writing.\n",filename);
GlobalState.logfile = stderr;
}
break;
case DUPLICATES_FILE_ARGUMENT:
if(*filename == '\0'){
fprintf(GlobalState.logfile,"Usage: -%cfilename.\n",arg_letter);
exit(1);
}
else if(GlobalState.suppress_duplicates){
fprintf(GlobalState.logfile,
"-%c clashes with the -%c flag.\n",arg_letter,
DONT_KEEP_DUPLICATES_ARGUMENT);
exit(1);
}
else{
GlobalState.duplicate_file = must_open_file(filename,"w");
}
break;
case USE_ECO_FILE_ARGUMENT:
GlobalState.add_ECO = TRUE;
if(*filename != '\0'){
GlobalState.eco_file = copy_string(filename);
}
else if((filename = getenv("ECO_FILE")) != NULL){
GlobalState.eco_file = filename;
}
else{
/* Use the default which is already set up. */
}
initEcoTable();
break;
case ECO_OUTPUT_LEVEL_ARGUMENT:
{ unsigned level;
//.........这里部分代码省略.........
开发者ID:lgbarn,项目名称:pgn-extract,代码行数:101,代码来源:argsfile.c
示例19: initializeBondTable
void
initializeBondTable(void)
{
struct stat statBuf;
char *home;
char *rest;
int len;
int reloadSystemOverlay = 0;
int reloadUserOverlay = 0;
if (UseAMBER) {
if (AmberNonbondedParametersFileName != NULL) {
read_amber_itp_file(AmberNonbondedParametersFileName);
}
if (AmberBondedParametersFileName != NULL) {
read_amber_itp_file(AmberBondedParametersFileName);
}
}
if (bondStretchHashtable == NULL) {
reloadSystemOverlay = 1;
reloadUserOverlay = 1;
}
if (SystemParametersFileName != NULL) {
if (systemBondTableOverlayFileName == NULL ||
strcmp(systemBondTableOverlayFileName, SystemParametersFileName)) {
if (systemBondTableOverlayFileName != NULL) {
free(systemBondTableOverlayFileName);
}
systemBondTableOverlayFileName = copy_string(SystemParametersFileName);
systemBondTableOverlayModificationTime = 0;
}
if (!stat(SystemParametersFileName, &statBuf)) {
if (systemBondTableOverlayModificationTime < statBuf.st_mtime) {
reloadSystemOverlay = 1;
systemBondTableOverlayModificationTime = statBuf.st_mtime;
}
}
}
if (userBondTableOverlayFileName == NULL) {
home = getenv("HOME");
if (home == NULL) {
home = getenv("USERPROFILE"); // windows
}
if (home == NULL) {
home = "";
}
rest = "/Nanorex/sim-params.txt";
len = strlen(home) + strlen(rest) + 1;
userBondTableOverlayFileName = (char *)allocate(len);
strcpy(userBondTableOverlayFileName, home);
strcat(userBondTableOverlayFileName, rest);
UserParametersFileName = userBondTableOverlayFileName;
}
if (!stat(userBondTableOverlayFileName, &statBuf)) {
if (userBondTableOverlayModificationTime < statBuf.st_mtime) {
reloadUserOverlay = 1;
userBondTableOverlayModificationTime = statBuf.st_mtime;
}
}
if (reloadSystemOverlay || reloadUserOverlay) {
initializeStaticBondTable();
numStruts = 0;
LoadedSystemParameters =
readBondTableOverlay(systemBondTableOverlayFileName);
LoadedUserParameters =
readBondTableOverlay(userBondTableOverlayFileName);
}
}
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:70,代码来源:newtables.c
示例20: process_long_form_argument
/* The argument has been expressed in a long-form, i.e. prefixed
* by --
* Decode and act on the argument.
* The associated_value will only be required by some arguments.
* Return whether one or both were required.
*/
int
process_long_form_argument(const char *argument, const char *associated_value)
{
if(stringcompare(argument, "addhashcode") == 0) {
GlobalState.add_hashcode_tag = TRUE;
return 1;
}
else if(stringcompare(argument, "append") == 0) {
process_argument(APPEND_TO_OUTPUT_FILE_ARGUMENT, associated_value);
return 2;
}
else if(stringcompare(argument, "checkfile") == 0) {
process_argument(CHECK_FILE_ARGUMENT, associated_value);
return 2;
}
else if(stringcompare(argument, "checkmate") == 0) {
process_argument(MATCH_CHECKMATE_ARGUMENT, "");
return 1;
}
else if(stringcompare(argument, "duplicates") == 0) {
process_argument(DUPLICATES_FILE_ARGUMENT, associated_value);
return 2;
}
else if(stringcompare(argument, "evaluation") == 0) {
/* Output an evaluation is required with each move. */
GlobalState.output_evaluation = TRUE;
return 1;
}
else if(stringcompare(argument, "fencomments") == 0) {
/* Output an evaluation is required with each move. */
GlobalState.add_FEN_comments = TRUE;
/* Turn off any separate setting of output_FEN_comment. */
GlobalState.output_FEN_string = FALSE;
return 1;
}
else if(stringcompare(argument, "fuzzydepth") == 0) {
/* Extract the depth. */
int depth = 0;
if(sscanf(associated_value, "%d",&depth) == 1){
if(depth >= 0) {
GlobalState.fuzzy_match_duplicates = TRUE;
GlobalState.fuzzy_match_depth = depth;
}
else {
fprintf(GlobalState.logfile,
"--%s requires a number greater than or equal to zero.\n", argument);
exit(1);
}
}
else {
fprintf(GlobalState.logfile,
"--%s requires a number following it.\n", argument);
exit(1);
}
return 2;
}
else if(stringcompare(argument, "help") == 0) {
process_argument(HELP_ARGUMENT, "");
return 1;
}
else if(stringcompare(argument, "keepbroken") == 0) {
GlobalState.keep_broken_games = TRUE;
return 1;
}
else if(stringcompare(argument, "linelength") == 0) {
process_argument(LINE_WIDTH_ARGUMENT,
associated_value);
return 2;
}
else if(stringcompare(argument, "markmatches") == 0) {
if(*associated_value != '\0') {
GlobalState.add_position_match_comments = TRUE;
GlobalState.position_match_comment = copy_string(associated_value);
}
else {
fprintf(GlobalState.logfile,
"--markmatches requires a comment string following it.\n");
exit(1);
|
请发表评论