tlibc_error_code_t tlibc_read_vector_end(tlibc_abstract_reader_t *self, const char* vec_name) { tlibc_error_code_t ret; ret = del_name(self, vec_name); if(ret != E_TLIBC_NOERROR) { return ret; } if(self->read_vector_end == NULL) { return E_TLIBC_NOERROR; } return self->read_vector_end(self, vec_name); }
/* * End a transaction */ void dlz_closeversion(const char *zone, isc_boolean_t commit, void *dbdata, void **versionp) { struct dlz_example_data *state = (struct dlz_example_data *)dbdata; if (!state->transaction_started) { state->log(ISC_LOG_INFO, "dlz_example: transaction not started for zone %s", zone); *versionp = NULL; return; } state->transaction_started = ISC_FALSE; *versionp = NULL; if (commit) { int i; state->log(ISC_LOG_INFO, "dlz_example: committing transaction on zone %s", zone); for (i = 0; i < MAX_RECORDS; i++) { if (strlen(state->adds[i].name) > 0U) { add_name(state, &state->current[0], state->adds[i].name, state->adds[i].type, state->adds[i].ttl, state->adds[i].data); } } for (i = 0; i < MAX_RECORDS; i++) { if (strlen(state->deletes[i].name) > 0U) { del_name(state, &state->current[0], state->deletes[i].name, state->deletes[i].type, state->deletes[i].ttl, state->deletes[i].data); } } } else { state->log(ISC_LOG_INFO, "dlz_example: cancelling transaction on zone %s", zone); } memset(state->adds, 0, sizeof(state->adds)); memset(state->deletes, 0, sizeof(state->deletes)); }
tlibc_error_code_t tlibc_read_field_end(tlibc_abstract_reader_t *self, const char *var_name) { tlibc_error_code_t ret = E_TLIBC_NOERROR; if(self->read_field_end != NULL) { ret = self->read_field_end(self, var_name); if(ret != E_TLIBC_NOERROR) { return ret; } } ret = del_name(self, var_name); return ret; }
void expurgate(void) { char option; char sign; system("cls"); switch(language) { case '1' : { printf(" 学生成绩管理系统\n"); printf(" 来自:Dack"); printf("================================================================================\n"); printf("1.按照学生序号删除.\n"); printf("2.按照学生学号来删除.\n"); printf("3.按照学生姓名来删除.\n"); printf("4.返回上一层菜单.\n"); printf("5.返回主菜单.\n\n"); } break; case '2' : { printf(" Student achievement management system\n"); printf(" By Dack"); printf("================================================================================\n"); printf("1.According to the serial number to delete.\n"); printf("2.According to the student ID deleted.\n"); printf("3.According to the name to delete.\n"); printf("4.Back to a layer of menu.\n"); printf("5.Back to the main menu.\n\n"); } break; case '3' : { printf(" 生徒の成績管理システム\n"); printf(" 出自:dack"); printf("================================================================================\n"); printf("1.入力してください削除する学生の番号にしなければならない.\n"); printf("2.入力してください削除しなければならない」とした学生の学籍番号だった.\n"); printf("3.入力してください削除しなければならない学生の名前だ.\n"); printf("4.戻ってきてに一层のメニュー.\n"); printf("5.メインメニューに戻る.\n\n"); } break; } do { switch(language) { case '1' : { printf("请输入序号 : "); } break; case '2' : { printf("Please enter the serial number : "); } break; case '3' : { printf("番号を入力してください : "); } break; } fflush(stdin); scanf("%1c",&option); fflush(stdin); if(option<'1'||option>'5'){ switch(language) { case '1' : { printf("错误!你想结束程序吗 ?\n"); printf("请输入 Y 或者 N : "); } break; case '2' : { printf("Error! Do you want finish the program?\n"); printf("Please enter the Y or N : "); } break; case '3' : { printf("誤ったもので、あなたは终わりにプログラムだったのだろうか?\n"); printf("Y あるいは Nで入力してください : "); } break; } scanf("%c",&sign); if(toupper(sign)!='N') exit(0); } }while(option<'1'||option>'5'); fflush(stdin); switch(option) { case '1' : del_sequence(); break; case '2' : del_id(); break; case '3' : del_name(); break; case '4' : main_menu(); break; case '5' : main_menu(); break; } switch(language) { case '1' : { printf("你想返回主菜单吗 ?\n"); printf("请输入 Y 或者 N "); } break; case '2' : { printf("Do you want back to main menu ?\n"); printf("Please enter the Y or N "); } break; case '3' : { printf("あなたに戻りたいメインメニューだったのだろうか ?\n"); printf("Y あるいは N で入力してください "); } break; } scanf("%c",&sign); fflush(stdin); if(toupper(sign)!='N'){ system("cls"); main_menu(); } else expurgate(); }