static Folder* S_init_folder(Obj *index, bool_t create) { Folder *folder = NULL; // Validate or acquire a Folder. if (Obj_Is_A(index, FOLDER)) { folder = (Folder*)INCREF(index); } else if (Obj_Is_A(index, CHARBUF)) { folder = (Folder*)FSFolder_new((CharBuf*)index); } else { THROW(ERR, "Invalid type for 'index': %o", Obj_Get_Class_Name(index)); } // Validate or create the index directory. if (create) { Folder_Initialize(folder); } else { if (!Folder_Check(folder)) { THROW(ERR, "Folder '%o' failed check", Folder_Get_Path(folder)); } } return folder; }
static Folder* S_init_folder(Obj *index, bool create) { Folder *folder = NULL; // Validate or acquire a Folder. if (Obj_is_a(index, FOLDER)) { folder = (Folder*)INCREF(index); } else if (Obj_is_a(index, STRING)) { folder = (Folder*)FSFolder_new((String*)index); } else { THROW(ERR, "Invalid type for 'index': %o", Obj_get_class_name(index)); } // Validate or create the index directory. if (create) { Folder_Initialize(folder); } else { if (!Folder_Check(folder)) { THROW(ERR, "Folder '%o' failed check", Folder_Get_Path(folder)); } } return folder; }