// boolean NameSpace.load(String path); static KMETHOD NameSpace_loadScript(KonohaContext *kctx, KonohaStack *sfp) { char pathbuf[512]; const char *path = PLATAPI formatTransparentPath(pathbuf, sizeof(pathbuf), FileId_t(sfp[K_RTNIDX].calledFileLine), S_text(sfp[1].asString)); KMakeTrace(trace, sfp); kNameSpace_LoadScript(kctx, sfp[0].asNameSpace, path, trace); }
static int bvfs_result_handler(void *ctx, int fields, char **row) { UAContext *ua = (UAContext *)ctx; char *fileid=row[BVFS_FileId]; char *lstat=row[BVFS_LStat]; char *jobid=row[BVFS_JobId]; char empty[] = "A A A A A A A A A A A A A A"; char zero[] = "0"; /* We need to deal with non existant path */ if (!fileid || !is_a_number(fileid)) { lstat = empty; jobid = zero; fileid = zero; } Dmsg1(100, "type=%s\n", row[0]); if (bvfs_is_dir(row)) { char *path = bvfs_basename_dir(row[BVFS_Name]); ua->send->object_start(row[BVFS_Name]); ua->send->object_key_value("Type", row[BVFS_Type]); ua->send->object_key_value("PathId", str_to_uint64(row[BVFS_PathId]), "%lld\t"); ua->send->object_key_value("FilenameId", FileId_t(0), "%lld\t"); ua->send->object_key_value("FileId", str_to_uint64(fileid), "%lld\t"); ua->send->object_key_value("JobId", str_to_uint64(jobid), "%lld\t"); ua->send->object_key_value("lstat", lstat, "%s\t"); ua->send->object_key_value("Name", path, "%s\n"); ua->send->object_key_value("Fullpath", row[BVFS_Name]); bvfs_stat(ua, lstat); ua->send->object_end(row[BVFS_Name]); } else if (bvfs_is_version(row)) { ua->send->object_start(row[BVFS_Name]); ua->send->object_key_value("Type", row[BVFS_Type]); ua->send->object_key_value("PathId", str_to_uint64(row[BVFS_PathId]), "%lld\t"); ua->send->object_key_value("FilenameId", str_to_uint64(row[BVFS_FilenameId]), "%lld\t"); ua->send->object_key_value("FileId", str_to_uint64(fileid), "%lld\t"); ua->send->object_key_value("JobId", str_to_uint64(jobid), "%lld\t"); ua->send->object_key_value("lstat", lstat, "%s\t"); ua->send->object_key_value("MD5", row[BVFS_Md5], "%s\t"); ua->send->object_key_value("VolumeName", row[BVFS_VolName], "%s\t"); ua->send->object_key_value("VolumeInChanger", str_to_uint64(row[BVFS_VolInchanger]), "%lld\n"); ua->send->object_end(row[BVFS_Name]); } else if (bvfs_is_file(row)) { ua->send->object_start(row[BVFS_Name]); ua->send->object_key_value("Type", row[BVFS_Type]); ua->send->object_key_value("PathId", str_to_uint64(row[BVFS_PathId]), "%lld\t"); ua->send->object_key_value("FilenameId", str_to_uint64(row[BVFS_FilenameId]), "%lld\t"); ua->send->object_key_value("FileId", str_to_uint64(fileid), "%lld\t"); ua->send->object_key_value("JobId", str_to_uint64(jobid), "%lld\t"); ua->send->object_key_value("lstat", lstat, "%s\t"); ua->send->object_key_value("Name", row[BVFS_Name], "%s\n"); bvfs_stat(ua, lstat); ua->send->object_end(row[BVFS_Name]); } return 0; }
static void kException_addStackTrace(KonohaContext *kctx, KonohaStack *sfp, kException *e) { kMethod *mtd = sfp[K_MTDIDX].mtdNC; KUtilsWriteBuffer wb; KLIB Kwb_init(&kctx->stack->cwb, &wb); kfileline_t uline = sfp[K_RTNIDX].uline; if(uline > 0) { const char *file = FileId_t(uline); KLIB Kwb_printf(kctx, &wb, "(%s:%d) %s.%s%s" , PLATAPI shortFilePath(file), (kushort_t)uline, Method_t(mtd)); } // int i = 0, psize = Method_paramsize(mtd); // kParam *pa = Method_param(mtd); // KonohaClass *thisClass = O_cid(sfp[0]); // for(i = 0; i < psize; i++) { // pa->paramtypeItems[0].ty; // if(i > 0) { // knh_putc(ctx, cwb->w, ','); // } // knh_write_fn(ctx, cwb->w, p->fn); // knh_putc(ctx, cwb->w, '='); // knh_write_sfp(ctx, cwb->w, type, &sfp[i+1], FMT_line); // } const char *msg = KLIB Kwb_top(kctx, &wb, 1); KLIB kArray_add(kctx, e->stackTraceList, KLIB new_kString(kctx, msg, strlen(msg), 0)); // if((mtd)->mn != MN_LAMBDA) { // knh_uline_t uline = knh_stack_uline(ctx, sfp); // knh_write_uline(ctx, cwb->w, uline); // knh_write_type(ctx, cwb->w, (mtd)->cid); // knh_putc(ctx, cwb->w, '.'); // knh_write_mn(ctx, cwb->w, (mtd)->mn); // knh_putc(ctx, cwb->w, '('); // knh_putc(ctx, cwb->w, ')'); // if(DP(e)->tracesNULL == NULL) { // KNH_INITv(DP(e)->tracesNULL, new_Array(ctx, CLASS_String, 0)); // } // knh_Array_add(ctx, DP(e)->tracesNULL, knh_cwb_newString(ctx, cwb)); // } }