这篇教程C++ to_number函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中to_number函数的典型用法代码示例。如果您正苦于以下问题:C++ to_number函数的具体用法?C++ to_number怎么用?C++ to_number使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了to_number函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: to_uint32/* ECMA-262 3rd Edition 9.6 */HRESULT to_uint32(script_ctx_t *ctx, jsval_t val, DWORD *ret){ double n; HRESULT hres; hres = to_number(ctx, val, &n); if(FAILED(hres)) return hres; *ret = isnan(n) || isinf(n) ? 0 : n; return S_OK;}
开发者ID:bfg-repo-cleaner-demos,项目名称:wine-original,代码行数:13,
示例2: do_geom/* print disk drive geometry information for a particular drive */static void do_geom(char *bios){ int dr; struct disk_geom geom;#if 0 dr = my_atoi(bios);#endif dr = to_number(bios); if (get_geom(dr, &geom)==0) print_geom(dr, geom); else printf("Unrecognized BIOS device code 0x%02x/n", dr); }
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:14,
示例3: error_constrstatic HRESULT error_constr(script_ctx_t *ctx, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r, jsdisp_t *constr) { jsdisp_t *err; UINT num = 0; jsstr_t *msg = NULL; HRESULT hres; if(argc) { double n; hres = to_number(ctx, argv[0], &n); if(FAILED(hres)) /* FIXME: really? */ n = NAN; if(isnan(n)) hres = to_string(ctx, argv[0], &msg); if(FAILED(hres)) return hres; num = n; } if(!msg) { if(argc > 1) { hres = to_string(ctx, argv[1], &msg); if(FAILED(hres)) return hres; }else { msg = jsstr_empty(); } } switch(flags) { case INVOKE_FUNC: case DISPATCH_CONSTRUCT: hres = create_error(ctx, constr, num, msg, &err); jsstr_release(msg); if(FAILED(hres)) return hres; if(r) *r = jsval_obj(err); else jsdisp_release(err); return S_OK; default: if(msg) jsstr_release(msg); FIXME("unimplemented flags %x/n", flags); return E_NOTIMPL; }}
开发者ID:RareHare,项目名称:reactos,代码行数:51,
示例4: sort_cmpstatic HRESULT sort_cmp(script_ctx_t *ctx, jsdisp_t *cmp_func, jsval_t v1, jsval_t v2, INT *cmp){ HRESULT hres; if(cmp_func) { jsval_t args[2] = {v1, v2}; jsval_t res; double n; hres = jsdisp_call_value(cmp_func, NULL, DISPATCH_METHOD, 2, args, &res); if(FAILED(hres)) return hres; hres = to_number(ctx, res, &n); jsval_release(res); if(FAILED(hres)) return hres; if(n == 0) *cmp = 0; *cmp = n > 0.0 ? 1 : -1; }else if(is_undefined(v1)) { *cmp = is_undefined(v2) ? 0 : 1; }else if(is_undefined(v2)) { *cmp = -1; }else if(is_number(v1) && is_number(v2)) { double d = get_number(v1)-get_number(v2); if(d > 0.0) *cmp = 1; else *cmp = d < -0.0 ? -1 : 0; }else { jsstr_t *x, *y; hres = to_string(ctx, v1, &x); if(FAILED(hres)) return hres; hres = to_string(ctx, v2, &y); if(SUCCEEDED(hres)) { *cmp = jsstr_cmp(x, y); jsstr_release(y); } jsstr_release(x); if(FAILED(hres)) return hres; } return S_OK;}
开发者ID:Barrell,项目名称:wine,代码行数:50,
示例5: index_from_valstatic INT index_from_val(script_ctx_t *ctx, jsval_t v){ double n; HRESULT hres; hres = to_number(ctx, v, &n); if(FAILED(hres)) { clear_ei(ctx); /* FIXME: Move ignoring exceptions to to_primitive */ return 0; } n = floor(n); return is_int32(n) ? n : 0;}
开发者ID:RareHare,项目名称:reactos,代码行数:14,
示例6: to_integer/* ECMA-262 3rd Edition 9.4 */HRESULT to_integer(script_ctx_t *ctx, jsval_t v, double *ret){ double n; HRESULT hres; hres = to_number(ctx, v, &n); if(FAILED(hres)) return hres; if(isnan(n)) *ret = 0; else *ret = n >= 0.0 ? floor(n) : -floor(-n); return S_OK;}
开发者ID:bfg-repo-cleaner-demos,项目名称:wine-original,代码行数:16,
示例7: Math_atan2static HRESULT Math_atan2(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei){ double x, y; HRESULT hres; TRACE("/n"); if(arg_cnt(dp)<2) { if(retv) num_set_nan(retv); return S_OK; } hres = to_number(ctx, get_arg(dp, 0), ei, &y); if(FAILED(hres)) return hres; hres = to_number(ctx, get_arg(dp, 1), ei, &x); if(FAILED(hres)) return hres; if(retv) num_set_val(retv, atan2(y, x)); return S_OK;}
开发者ID:AmesianX,项目名称:RosWine,代码行数:24,
示例8: to_int32/* ECMA-262 3rd Edition 9.5 */HRESULT to_int32(script_ctx_t *ctx, jsval_t v, INT *ret){ double n; HRESULT hres; const double p32 = (double)0xffffffff + 1; hres = to_number(ctx, v, &n); if(FAILED(hres)) return hres; if(is_finite(n)) n = n > 0 ? fmod(n, p32) : -fmod(-n, p32); else n = 0; *ret = (UINT32)n; return S_OK;}
开发者ID:ccpgames,项目名称:wine,代码行数:20,
示例9: mh_get_last_numstatic void mh_get_last_num(Folder *folder, FolderItem *item){ gchar *path; GDir *dp; const gchar *d; GError *error = NULL; gint max = 0; gint num; cm_return_if_fail(item != NULL); debug_print("mh_get_last_num(): Scanning %s .../n", item->path?item->path:"(null)"); path = folder_item_get_path(item); cm_return_if_fail(path != NULL); if (change_dir(path) < 0) { g_free(path); return; } g_free(path); if ((dp = g_dir_open(".", 0, &error)) == NULL) { g_message("Couldn't open current directory: %s (%d)./n", error->message, error->code); g_error_free(error); return; } while ((d = g_dir_read_name(dp)) != NULL) { if ((num = to_number(d)) > 0 && g_file_test(d, G_FILE_TEST_IS_REGULAR)) { if (max < num) max = num; } if (num % 2000 == 0) GTK_EVENTS_FLUSH(); } g_dir_close(dp); debug_print("Last number in dir %s = %d/n", item->path?item->path:"(null)", max); item->last_num = max;}
开发者ID:buzz,项目名称:claws,代码行数:42,
示例10: mh_get_num_listgint mh_get_num_list(Folder *folder, FolderItem *item, GSList **list, gboolean *old_uids_valid){ gchar *path; GDir *dp; const gchar *d; GError *error = NULL; gint num, nummsgs = 0; cm_return_val_if_fail(item != NULL, -1); debug_print("mh_get_num_list(): Scanning %s .../n", item->path?item->path:"(null)"); *old_uids_valid = TRUE; path = folder_item_get_path(item); cm_return_val_if_fail(path != NULL, -1); if (change_dir(path) < 0) { g_free(path); return -1; } g_free(path); if ((dp = g_dir_open(".", 0, &error)) == NULL) { g_message("Couldn't open current directory: %s (%d)./n", error->message, error->code); g_error_free(error); return -1; } while ((d = g_dir_read_name(dp)) != NULL) { if ((num = to_number(d)) > 0) { *list = g_slist_prepend(*list, GINT_TO_POINTER(num)); nummsgs++; } } g_dir_close(dp); mh_set_mtime(folder, item); return nummsgs;}
开发者ID:buzz,项目名称:claws,代码行数:41,
示例11: isValidSudoku bool isValidSudoku(vector<vector<char> > &board) { bool **rows; bool **cols; bool **blocks; rows = new bool*[9]; cols = new bool*[9]; blocks = new bool*[9]; for (int i = 0; i < 9; ++i) { rows[i] = new bool[9]; cols[i] = new bool[9]; blocks[i] = new bool[9]; } for (int i = 0; i < 9; ++i) { for (int j = 0; j < 9; ++j) { rows[i][j] = cols[i][j] = blocks[i][j] = false; } } for (int i = 0; i < 9; ++i) { for (int j = 0; j < 9; ++j) { int c = to_number(board[i][j]); if (c == -1) continue; if (rows[i][c] || cols[j][c] || blocks[i - i % 3 + j / 3][c]) return false; rows[i][c] = cols[j][c] = blocks[i - i % 3 + j / 3][c] = true; } } return true; }
开发者ID:jiamingkong,项目名称:Leetcode,代码行数:41,
示例12: Array_lengthstatic HRESULT Array_length(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei){ ArrayInstance *This = array_from_vdisp(jsthis); TRACE("%p %d/n", This, This->length); switch(flags) { case DISPATCH_PROPERTYGET: V_VT(retv) = VT_I4; V_I4(retv) = This->length; break; case DISPATCH_PROPERTYPUT: { DOUBLE len = -1; DWORD i; HRESULT hres; hres = to_number(ctx, get_arg(dp, 0), ei, &len); if(FAILED(hres)) return hres; len = floor(len); if(len!=(DWORD)len) return throw_range_error(ctx, ei, JS_E_INVALID_LENGTH, NULL); for(i=len; i<This->length; i++) { hres = jsdisp_delete_idx(&This->dispex, i); if(FAILED(hres)) return hres; } This->length = len; break; } default: FIXME("unimplemented flags %x/n", flags); return E_NOTIMPL; } return S_OK;}
开发者ID:AmesianX,项目名称:RosWine,代码行数:41,
示例13: Math_round/* ECMA-262 3rd Edition 15.8.2.15 */static HRESULT Math_round(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei){ double x; HRESULT hres; TRACE("/n"); if(!arg_cnt(dp)) { num_set_nan(retv); return S_OK; } hres = to_number(ctx, get_arg(dp, 0), ei, &x); if(FAILED(hres)) return hres; if(retv) num_set_val(retv, floor(x+0.5)); return S_OK;}
开发者ID:AmesianX,项目名称:RosWine,代码行数:22,
示例14: Array_lengthstatic HRESULT Array_length(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r){ ArrayInstance *This = array_from_vdisp(jsthis); TRACE("%p %d/n", This, This->length); switch(flags) { case DISPATCH_PROPERTYGET: *r = jsval_number(This->length); break; case DISPATCH_PROPERTYPUT: { DOUBLE len = -1; DWORD i; HRESULT hres; hres = to_number(ctx, argv[0], &len); if(FAILED(hres)) return hres; len = floor(len); if(len!=(DWORD)len) return throw_range_error(ctx, JS_E_INVALID_LENGTH, NULL); for(i=len; i<This->length; i++) { hres = jsdisp_delete_idx(&This->dispex, i); if(FAILED(hres)) return hres; } This->length = len; break; } default: FIXME("unimplemented flags %x/n", flags); return E_NOTIMPL; } return S_OK;}
开发者ID:RPG-7,项目名称:reactos,代码行数:40,
示例15: mh_get_last_numstatic void mh_get_last_num(Folder *folder, FolderItem *item){ gchar *path; DIR *dp; struct dirent *d; gint max = 0; gint num; cm_return_if_fail(item != NULL); debug_print("mh_get_last_num(): Scanning %s .../n", item->path?item->path:"(null)"); path = folder_item_get_path(item); cm_return_if_fail(path != NULL); if (change_dir(path) < 0) { g_free(path); return; } g_free(path); if ((dp = opendir(".")) == NULL) { FILE_OP_ERROR(item->path, "opendir"); return; } while ((d = readdir(dp)) != NULL) { if ((num = to_number(d->d_name)) > 0 && dirent_is_regular_file(d)) { if (max < num) max = num; } if (num % 2000 == 0) GTK_EVENTS_FLUSH(); } closedir(dp); debug_print("Last number in dir %s = %d/n", item->path?item->path:"(null)", max); item->last_num = max;}
开发者ID:ignatenkobrain,项目名称:claws,代码行数:39,
示例16: Math_abs/* ECMA-262 3rd Edition 15.8.2.12 */static HRESULT Math_abs(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r){ double d; HRESULT hres; TRACE("/n"); if(!argc) { if(r) *r = jsval_number(NAN); return S_OK; } hres = to_number(ctx, argv[0], &d); if(FAILED(hres)) return hres; if(r) *r = jsval_number(d < 0.0 ? -d : d); return S_OK;}
开发者ID:ccpgames,项目名称:wine,代码行数:23,
示例17: Math_acosstatic HRESULT Math_acos(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r){ double x; HRESULT hres; TRACE("/n"); if(!argc) { if(r) *r = jsval_number(NAN); return S_OK; } hres = to_number(ctx, argv[0], &x); if(FAILED(hres)) return hres; if(r) *r = jsval_number(x < -1.0 || x > 1.0 ? NAN : acos(x)); return S_OK;}
开发者ID:ccpgames,项目名称:wine,代码行数:22,
示例18: rssyl_update_format_move_contents/* Copy each item in a feed to the new directory */static void rssyl_update_format_move_contents(FolderItem *olditem, FolderItem *newitem){ gchar *oldpath, *newpath, *fname, *fpath, *nfpath; GDir *d = NULL; GError *error = NULL; oldpath = _old_rssyl_item_get_path(NULL, olditem); newpath = folder_item_get_path(newitem); if ((d = g_dir_open(oldpath, 0, &error)) == NULL) { debug_print("RSSyl: (FORMAT) couldn't open dir '%s': %s/n", oldpath, error->message); g_error_free(error); return; } debug_print("RSSyl: (FORMAT) moving contents of '%s' to '%s'/n", oldpath, newpath); while ((fname = (gchar *)g_dir_read_name(d)) != NULL) { gboolean migrate_file = to_number(fname) > 0 || strstr(fname, ".claws_") == fname; fpath = g_strconcat(oldpath, G_DIR_SEPARATOR_S, fname, NULL); if (migrate_file && g_file_test(fpath, G_FILE_TEST_IS_REGULAR)) { nfpath = g_strconcat(newpath, G_DIR_SEPARATOR_S, fname, NULL); move_file(fpath, nfpath, FALSE); g_free(nfpath); } g_remove(fpath); g_free(fpath); } g_dir_close(d); g_rmdir(oldpath); g_free(oldpath); g_free(newpath);}
开发者ID:Mortal,项目名称:claws,代码行数:39,
示例19: mh_get_num_listgint mh_get_num_list(Folder *folder, FolderItem *item, GSList **list, gboolean *old_uids_valid){ gchar *path; DIR *dp; struct dirent *d; gint num, nummsgs = 0; cm_return_val_if_fail(item != NULL, -1); debug_print("mh_get_num_list(): Scanning %s .../n", item->path?item->path:"(null)"); *old_uids_valid = TRUE; path = folder_item_get_path(item); cm_return_val_if_fail(path != NULL, -1); if (change_dir(path) < 0) { g_free(path); return -1; } g_free(path); if ((dp = opendir(".")) == NULL) { FILE_OP_ERROR(item->path, "opendir"); return -1; } while ((d = readdir(dp)) != NULL) { if ((num = to_number(d->d_name)) > 0) { *list = g_slist_prepend(*list, GINT_TO_POINTER(num)); nummsgs++; } } closedir(dp); mh_set_mtime(folder, item); return nummsgs;}
开发者ID:ignatenkobrain,项目名称:claws,代码行数:38,
示例20: permute_and_checkvoid permute_and_check(int start, int end){ int i, tmp; if (start == end-1) { if (check_prop()) sum += to_number(0, 9); return; } permute_and_check(start+1, end); for (i = start+1; i < end; i++) { tmp = digits[start]; digits[start] = digits[i]; digits[i] = tmp; permute_and_check(start+1, end); } tmp = digits[start]; for (i = start; i < end-1; i++) digits[i] = digits[i+1]; digits[end-1] = tmp;}
开发者ID:tna20141,项目名称:project-euler,代码行数:23,
示例21: to_number/* ECMA-262 3rd Edition 9.3 */HRESULT to_number(script_ctx_t *ctx, jsval_t val, double *ret){ switch(jsval_type(val)) { case JSV_UNDEFINED: *ret = NAN; return S_OK; case JSV_NULL: *ret = 0; return S_OK; case JSV_NUMBER: *ret = get_number(val); return S_OK; case JSV_STRING: return str_to_number(get_string(val), ret); case JSV_OBJECT: { jsval_t prim; HRESULT hres; hres = to_primitive(ctx, val, &prim, HINT_NUMBER); if(FAILED(hres)) return hres; hres = to_number(ctx, prim, ret); jsval_release(prim); return hres; } case JSV_BOOL: *ret = get_bool(val) ? 1 : 0; return S_OK; case JSV_VARIANT: FIXME("unimplemented for variant %s/n", debugstr_variant(get_variant(val))); return E_NOTIMPL; }; assert(0); return E_FAIL;}
开发者ID:bfg-repo-cleaner-demos,项目名称:wine-original,代码行数:38,
示例22: mh_scan_tree_recursive//.........这里部分代码省略......... if (#if !defined(G_OS_WIN32) && defined(HAVE_DIRENT_D_TYPE) d->d_type == DT_DIR || (d->d_type == DT_UNKNOWN &&#endif g_stat(entry, &s) == 0 && S_ISDIR(s.st_mode)#if !defined(G_OS_WIN32) && defined(HAVE_DIRENT_D_TYPE) )#endif ) { FolderItem *new_item = NULL; GNode *node; node = item->node; for (node = node->children; node != NULL; node = node->next) { FolderItem *cur_item = FOLDER_ITEM(node->data); gchar *curpath = mh_filename_from_utf8(cur_item->path); if (!strcmp2(curpath, entry)) { new_item = cur_item; g_free(curpath); break; } g_free(curpath); } if (!new_item) { debug_print("new folder '%s' found./n", entry); new_item = folder_item_new(folder, utf8name, utf8entry); folder_item_append(item, new_item); } if (!item->path) { if (!folder->inbox && !strcmp(dir_name, INBOX_DIR)) { new_item->stype = F_INBOX; folder->inbox = new_item; } else if (!folder->outbox && !strcmp(dir_name, OUTBOX_DIR)) { new_item->stype = F_OUTBOX; folder->outbox = new_item; } else if (!folder->draft && !strcmp(dir_name, DRAFT_DIR)) { new_item->stype = F_DRAFT; folder->draft = new_item; } else if (!folder->queue && !strcmp(dir_name, QUEUE_DIR)) { new_item->stype = F_QUEUE; folder->queue = new_item; } else if (!folder->trash && !strcmp(dir_name, TRASH_DIR)) { new_item->stype = F_TRASH; folder->trash = new_item; } } mh_scan_tree_recursive(new_item); } else if (to_number(dir_name) > 0) n_msg++; g_free(entry); g_free(utf8entry); g_free(utf8name); }#ifdef G_OS_WIN32 g_dir_close(dir);#else closedir(dp);#endif mh_set_mtime(folder, item);}static gboolean mh_rename_folder_func(GNode *node, gpointer data){ FolderItem *item = node->data; gchar **paths = data; const gchar *oldpath = paths[0]; const gchar *newpath = paths[1]; gchar *base; gchar *new_itempath; gint oldpathlen; oldpathlen = strlen(oldpath); if (strncmp(oldpath, item->path, oldpathlen) != 0) { g_warning("path doesn't match: %s, %s/n", oldpath, item->path); return TRUE; } base = item->path + oldpathlen; while (*base == G_DIR_SEPARATOR) base++; if (*base == '/0') new_itempath = g_strdup(newpath); else new_itempath = g_strconcat(newpath, G_DIR_SEPARATOR_S, base, NULL); g_free(item->path); item->path = new_itempath; return FALSE;}
开发者ID:ignatenkobrain,项目名称:claws,代码行数:101,
示例23: Array_slice/* ECMA-262 3rd Edition 15.4.4.10 */static HRESULT Array_slice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei){ jsdisp_t *arr, *jsthis; DOUBLE range; DWORD length, start, end, idx; HRESULT hres; TRACE("/n"); hres = get_length(ctx, vthis, ei, &jsthis, &length); if(FAILED(hres)) return hres; if(arg_cnt(dp)) { hres = to_number(ctx, get_arg(dp, 0), ei, &range); if(FAILED(hres)) return hres; range = floor(range); if(-range>length || isnan(range)) start = 0; else if(range < 0) start = range+length; else if(range <= length) start = range; else start = length; } else start = 0; if(arg_cnt(dp)>1) { hres = to_number(ctx, get_arg(dp, 1), ei, &range); if(FAILED(hres)) return hres; range = floor(range); if(-range>length) end = 0; else if(range < 0) end = range+length; else if(range <= length) end = range; else end = length; } else end = length; hres = create_array(ctx, (end>start)?end-start:0, &arr); if(FAILED(hres)) return hres; for(idx=start; idx<end; idx++) { VARIANT v; hres = jsdisp_get_idx(jsthis, idx, &v, ei); if(hres == DISP_E_UNKNOWNNAME) continue; if(SUCCEEDED(hres)) { hres = jsdisp_propput_idx(arr, idx-start, &v, ei); VariantClear(&v); } if(FAILED(hres)) { jsdisp_release(arr); return hres; } } if(retv) var_set_jsdisp(retv, arr); else jsdisp_release(arr); return S_OK;}
开发者ID:AmesianX,项目名称:RosWine,代码行数:70,
示例24: main//.........这里部分代码省略.........#if !__MSDOS__ case 's': cfg_set(cf_options,"backup",param,NULL); break; case 'S': cfg_set(cf_options,"force-backup",param,NULL); break; case 't': test = 1; break; case 'T': tell_param = param; break; case 'u': validate = 1; /* fall through */ case 'U': /* argument to -u or -U is optional */ uninstall = 1; if ((*argv)[2]) param = (*argv)+2; else if (argc && argv[1][0] != '-') { param = *++argv; argc--; } uninst_dev = param; break;#endif /* !__MSDOS__ */ case 'v': if ((*argv)[2]) param = (*argv)+2; else if (argc && argv[1][0]>='0' && argv[1][0]<='9') { param = *++argv; argc--; } if (param) verbose = to_number(param); else if (verbose<0) verbose = 1; else verbose++; if (verbose) errstd = stdout; break; case 'V': version = 1; break;#if !__MSDOS__ case 'w': cfg_set(cf_options,"nowarn",NULL,NULL); nowarn = 1; if ( (*argv)[2] == '+' ) nowarn = -1; break; case 'x': cfg_set(cf_options,RAID_EXTRA_BOOT,param,NULL); break;#endif /* !__MSDOS__ */ case 'X': configuration(); exit(0);#if !__MSDOS__ case 'z': zflag++; /* force zero of MBR 8-byte area */ break; case 'Z': cfg_set(cf_options,"bios-passes-dl",param,NULL); break;#endif /* !__MSDOS__ */ default: usage(name); }
开发者ID:x86-8,项目名称:lilo232,代码行数:67,
示例25: rssyl_update_commentsvoid rssyl_update_comments(RFolderItem *ritem){ FolderItem *item = &ritem->item; FeedItem *fi = NULL; RFetchCtx *ctx = NULL; GDir *dp; const gchar *d; GError *error = NULL; gint num; gchar *path, *msg, *fname; MainWindow *mainwin = mainwindow_get_mainwindow(); g_return_if_fail(ritem != NULL); if( ritem->fetch_comments == FALSE ) return; path = folder_item_get_path(item); g_return_if_fail(path != NULL); debug_print("RSSyl: starting to parse comments, path is '%s'/n", path); if( (dp = g_dir_open(path, 0, &error)) == NULL ) { debug_print("g_dir_open on /"%s/" failed with error %d (%s)/n", path, error->code, error->message); g_error_free(error); g_free(path); return; } ritem->fetching_comments = TRUE; while( (d = g_dir_read_name(dp)) != NULL ) { if (claws_is_exiting()) { g_dir_close(dp); g_free(path); debug_print("RSSyl: bailing out, app is exiting/n"); return; } if( (num = to_number(d)) > 0) { fname = g_strdup_printf("%s%c%s", path, G_DIR_SEPARATOR, d); if (!g_file_test(fname, G_FILE_TEST_IS_REGULAR)) continue; debug_print("RSSyl: starting to parse '%s'/n", d); if( (fi = rssyl_parse_folder_item_file(fname)) != NULL ) { if( feed_item_get_comments_url(fi) && feed_item_get_id(fi) && (ritem->fetch_comments_max_age == -1 || time(NULL) - feed_item_get_date_modified(fi) <= ritem->fetch_comments_max_age*86400)) { msg = g_strdup_printf(_("Updating comments for '%s'..."), feed_item_get_title(fi)); debug_print("RSSyl: updating comments for '%s' (%s)/n", feed_item_get_title(fi), feed_item_get_comments_url(fi)); STATUSBAR_PUSH(mainwin, msg); ctx = rssyl_prep_fetchctx_from_url(feed_item_get_comments_url(fi)); g_return_if_fail(ctx != NULL); feed_set_ssl_verify_peer(ctx->feed, ritem->ssl_verify_peer); rssyl_fetch_feed(ctx, FALSE); if( ctx->success && feed_n_items(ctx->feed) > 0 ) { g_free(ctx->feed->title); ctx->feed->title = g_strdup(ritem->official_title); feed_foreach_item(ctx->feed, rssyl_update_reference_func, feed_item_get_id(fi)); if( !rssyl_parse_feed(ritem, ctx->feed) ) { debug_print("RSSyl: Error processing comments feed/n"); log_error(LOG_PROTOCOL, RSSYL_LOG_ERROR_PROC, ctx->feed->url); } } } STATUSBAR_POP(mainwin); feed_item_free(fi); } g_free(fname); } } g_dir_close(dp); g_free(path); ritem->fetching_comments = FALSE; debug_print("RSSyl: rssyl_update_comments() is done/n");}
开发者ID:Mortal,项目名称:claws,代码行数:93,
示例26: cm_return_val_if_failstatic FolderItem *mh_create_folder(Folder *folder, FolderItem *parent, const gchar *name){ gchar *path, *real_name; gchar *fullpath; FolderItem *new_item; gchar *mh_sequences_filename; FILE *mh_sequences_file; cm_return_val_if_fail(folder != NULL, NULL); cm_return_val_if_fail(parent != NULL, NULL); cm_return_val_if_fail(name != NULL, NULL); path = folder_item_get_path(parent); if (!is_dir_exist(path)) if (make_dir_hier(path) != 0) return NULL; real_name = mh_filename_from_utf8(name); fullpath = g_strconcat(path, G_DIR_SEPARATOR_S, real_name, NULL); g_free(real_name); g_free(path); if (to_number(name) > 0) { MsgInfo *info = folder_item_get_msginfo(parent, to_number(name)); if (info != NULL) { gboolean ok = mh_renumber_msg(info); procmsg_msginfo_free(info); if (!ok) { g_free(fullpath); return NULL; } } } if (make_dir(fullpath) < 0) { g_free(fullpath); return NULL; } g_free(fullpath); if (parent->path) path = g_strconcat(parent->path, G_DIR_SEPARATOR_S, name, NULL); else path = g_strdup(name); new_item = folder_item_new(folder, name, path); folder_item_append(parent, new_item); g_free(path); path = folder_item_get_path(new_item); mh_sequences_filename = g_strconcat(path, G_DIR_SEPARATOR_S, ".mh_sequences", NULL); if ((mh_sequences_file = g_fopen(mh_sequences_filename, "a+b")) != NULL) { fclose(mh_sequences_file); } g_free(mh_sequences_filename); g_free(path); return new_item;}
开发者ID:buzz,项目名称:claws,代码行数:63,
示例27: main//.........这里部分代码省略......... strcpy(md_boot_name,cfg_get_strg(cf_options,"boot")); if (cfg_get_strg(cf_options,"map")) strcpy(md_boot_map,cfg_get_strg(cf_options,"map")); else strcpy(md_boot_map,MAP_FILE); md_disk.device = (MD_MAJOR << 8) | md_array_info.md_minor; md_disk.bios = 0x80; md_disk.next = disktab; disktab = &md_disk; } while( (pass == 0) || (do_md_install && (pass < md_array_info.nr_disks)) ) { if(do_md_install) { GEOMETRY geo; DEVICE dev; int device,disk_fd; char new_name[MAX_TOKEN+1]; if(pass > 0) { close(fd); cfg_init(cf_options); fd = cfg_open(config_file); more = cfg_parse(cf_options); } md_disk_info.number = pass; if (ioctl(md_fd,GET_DISK_INFO,&md_disk_info) < 0) die("main: GET_DISK_INFO: %s", strerror(errno)); device = (md_disk_info.major << 8) | md_disk_info.minor; disk_fd = dev_open(&dev,device,O_NOACCESS); if (md_disk_info.state == MD_DISK_FAULTY) { printf("disk %s marked as faulty, skipping/n",dev.name); pass++; continue; } geo_query_dev(&geo,device,1); disk = alloc_t(DT_ENTRY); disk->bios = 0x80; disk->device = device & 0xfff0; disk->sectors = geo.sectors; disk->heads = geo.heads; disk->cylinders = geo.cylinders; disk->start = geo.start; disk->next = disktab; disktab = disk; if (cfg_get_strg(cf_options,"boot")) cfg_unset(cf_options,"boot"); if (cfg_get_strg(cf_options,"map")) cfg_unset(cf_options,"map"); strncpy(new_name,dev.name,8); new_name[8] = '/0'; cfg_set(cf_options,"boot",new_name,NULL); snprintf(new_name,MAX_TOKEN,"%s.%04x",md_boot_map,device); cfg_set(cf_options,"map",new_name,NULL); printf("boot = %s, map = %s/n", cfg_get_strg(cf_options,"boot"), cfg_get_strg(cf_options,"map")); md_disk.sectors = geo.sectors; md_disk.heads = geo.heads; md_disk.cylinders = geo.cylinders; md_disk.start = geo.start; } pass++; if (uninstall) bsect_uninstall(uninst_dev ? uninst_dev : cfg_get_strg(cf_options, "boot"),cfg_get_strg(cf_options,"backup"),validate); compact = cfg_get_flag(cf_options,"compact"); linear = cfg_get_flag(cf_options,"linear"); nowarn = cfg_get_flag(cf_options,"nowarn"); if (cfg_get_strg(cf_options,"verbose")) verbose += to_number(cfg_get_strg(cf_options,"verbose")); if (reboot_arg) { map_patch_first(cfg_get_strg(cf_options,"map") ? cfg_get_strg( cf_options,"map") : MAP_FILE,reboot_arg); exit(0); } if (argc) usage(name); geo_init(cfg_get_strg(cf_options,"disktab")); if (query) show_images(!cfg_get_strg(cf_options,"map") ? MAP_FILE : cfg_get_strg(cf_options,"map")); bsect_open(cfg_get_strg(cf_options,"boot"),cfg_get_strg(cf_options,"map") ? cfg_get_strg(cf_options,"map") : MAP_FILE,cfg_get_strg(cf_options, "install"),cfg_get_strg(cf_options,"delay") ? to_number(cfg_get_strg( cf_options,"delay")) : 0,cfg_get_strg(cf_options,"timeout") ? to_number(cfg_get_strg(cf_options,"timeout")) : -1); if (more) { cfg_init(cf_top); if (cfg_parse(cf_top)) cfg_error("Syntax error"); } if (!bsect_number()) die("No images have been defined."); check_fallback(); if (!test) if (cfg_get_strg(cf_options,"force-backup")) bsect_update(cfg_get_strg(cf_options,"force-backup"),1); else bsect_update(cfg_get_strg(cf_options,"backup"),0); else { bsect_cancel(); fprintf(stderr,"The boot sector and the map file have *NOT* been " "altered./n"); } } return 0;}
开发者ID:iwamatsu,项目名称:sh-lilo,代码行数:101,
示例28: Array_slice/* ECMA-262 3rd Edition 15.4.4.10 */static HRESULT Array_slice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r){ jsdisp_t *arr, *jsthis; DOUBLE range; DWORD length, start, end, idx; HRESULT hres; TRACE("/n"); hres = get_length(ctx, vthis, &jsthis, &length); if(FAILED(hres)) return hres; if(argc) { hres = to_number(ctx, argv[0], &range); if(FAILED(hres)) return hres; range = floor(range); if(-range>length || isnan(range)) start = 0; else if(range < 0) start = range+length; else if(range <= length) start = range; else start = length; } else start = 0; if(argc > 1) { hres = to_number(ctx, argv[1], &range); if(FAILED(hres)) return hres; range = floor(range); if(-range>length) end = 0; else if(range < 0) end = range+length; else if(range <= length) end = range; else end = length; } else end = length; hres = create_array(ctx, (end>start)?end-start:0, &arr); if(FAILED(hres)) return hres; for(idx=start; idx<end; idx++) { jsval_t v; hres = jsdisp_get_idx(jsthis, idx, &v); if(hres == DISP_E_UNKNOWNNAME) continue; if(SUCCEEDED(hres)) { hres = jsdisp_propput_idx(arr, idx-start, v); jsval_release(v); } if(FAILED(hres)) { jsdisp_release(arr); return hres; } } if(r) *r = jsval_obj(arr); else jsdisp_release(arr); return S_OK;}
开发者ID:RPG-7,项目名称:reactos,代码行数:69,
注:本文中的to_number函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ to_of_device函数代码示例 C++ to_nouveau_context函数代码示例 |