void DebugDisable(cngplpData *data, int id) { PPDOptions *ppd_opt = data->ppd_opt; int i = 0; UIItemsList *list; UIOptionList *opt; char *except = IDtoPPDOption(id - 1); if(except == NULL) return; UI_DEBUG("[%s]:%d\n", except, id); list = ppd_opt->items_list; while(1){ opt = list->opt_lists; while(1){ i++; if(except != NULL && strcmp(except, list->name) == 0) UI_DEBUG("[%3d] item:[%18s] opt:[%10s] disable[%d] def:[%3s]\n", i, except, opt->name, opt->disable, (strcmp(list->current_option->name, opt->name) == 0) ? "Yes" : "NO"); if(opt->next == NULL) break; opt = opt->next; } if(list->next == NULL) break; list = list->next; } UI_DEBUG("\n"); }
void SaveTopWidgetData(const char *dlg_name) { const int top_widget_num = g_list_length(g_topwidget_list); int i = 0; TopWidget* top_widget = NULL, *found = NULL; char *option = NULL; UIItemsList *tmp; const PPDOptions *ppd_opt = NULL; if(g_cngplp_data != NULL){ ppd_opt = g_cngplp_data->ppd_opt; } for(; i < top_widget_num; i++){ top_widget = (TopWidget*)g_list_nth_data(g_topwidget_list, i); if(top_widget != NULL){ if(!strcmp(dlg_name, top_widget->name)){ found = top_widget; break; } } } i = 0; if(found != NULL){ const int len = g_list_length(found->save_data); TopWidgetSaveData* data = NULL; char *value; for(; i < len; i++){ data = g_list_nth_data(found->save_data, i); if((data != NULL) && (data->key_value != NULL)){ free(data->key_value); data->key_value = NULL; } if(data != NULL){ option = IDtoPPDOption(data->id - 1); } if(NULL == option){ if((ID_NUMBER_UP == data->id) || (ID_JOB_SHEETS_START == data->id) || (ID_JOB_SHEETS_END == data->id) || (ID_BOOKLET_DLG == data->id)){ value = GetCurrOpt(g_cngplp_data, data->id, NULL); }else{ value = GetOptionList(g_cngplp_data, data->id); } data->key_value = value; }else{ tmp = ppd_opt->items_list; while(tmp->current_option != NULL){ if(strcmp(option, tmp->name) == 0){ data->key_value = strdup(tmp->current_option->name); break; } if(tmp->next == NULL){ break; } tmp = tmp->next; } } } } }
char* cngplpIDtoKey(int id) { char *ret = NULL; if(id < ID_DEVICE_INFO){ ret = ToChar(IDtoPPDOption(id - 1)); }else if(id < ID_COMMON_OPTION){ ret = ToChar(IDtoDevOption(id)); }else if(id < ID_IMAGE_OPTION){ ret = ToChar(IDtoCommonOption(id - ID_COMMON_OPTION - 1)); }else if(id < ID_TEXT_OPTION){ ret = ToChar(IDtoImageOption(id - ID_IMAGE_OPTION - 1)); }else if(id < ID_HPGL_OPTION){ ret = ToChar(IDtoTextOption(id - ID_TEXT_OPTION - 1)); }else if(id < ID_BOTTON_EVENT){ ret = ToChar(IDtoHPGLOption(id - ID_HPGL_OPTION - 1)); } return ret; }
char* GetDataPPDOption(cngplpData *data, int id) { char *option = NULL; switch(id){ case ID_SELECTBY: return IntToChar(data->ppd_opt->selectby); case ID_JOBACCOUNT: if(data->ppd_opt->special == NULL) return NULL; else{ #ifndef __APPLE__ return IntToChar(data->ppd_opt->special->job_account); #else return ToChar(data->ppd_opt->special->job_account == 0 ? "False" : "True"); #endif } case ID_JOBACCOUNT_ID: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->job_account_id); case ID_JOBACCOUNT_PASSWD: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->job_account_passwd); case ID_CNUSRPASSWORD: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->usr_passwd); case ID_DATANAME: if(data->ppd_opt->special == NULL) return NULL; else return IntToChar(data->ppd_opt->special->data_name); case ID_ENTERNAME: if(data->ppd_opt->special == NULL) return NULL; else #ifndef _OPAL return ToChar(data->ppd_opt->special->enter_name); #else if(data->ppd_opt->special->enter_name == NULL){ return ToChar(""); }else { return ToChar(data->ppd_opt->special->enter_name); } #endif case ID_BOXIDNUM: if(data->ppd_opt->special == NULL) return NULL; else #ifndef __APPLE__ return IntToChar(data->ppd_opt->special->box_num); #else return ToChar(data->ppd_opt->special->box_num); #endif case ID_MAX_BOXIDNUM: return IntToChar(data->ppd_opt->max_box_num); case ID_GUTTER: if(data->ppd_opt->summary_flag & CNSUMMARY_FLG_GUTTER) return NULL; if(data->ppd_opt->us_type) return DoubleToChar(data->ppd_opt->gutter_value_d); else return IntToChar(data->ppd_opt->gutter_value); case ID_MAX_GUTTER: if(data->ppd_opt->us_type) return DoubleToChar(data->ppd_opt->max_gutter_value_d); else return IntToChar(data->ppd_opt->max_gutter_value); case ID_USTYPE: return ToChar(data->ppd_opt->us_type == 0 ? "False" : "True"); case ID_LIST_MEDIATYPE: return IntToChar(data->ppd_opt->list_mediatype_value); case ID_LIST_PAGESIZE: return IntToChar(data->ppd_opt->list_pagesize_value); case ID_SECURED_DOCNAME: if(data->ppd_opt->special == NULL) return NULL; else #ifndef _OPAL return ToChar(data->ppd_opt->special->doc_name); #else if(data->ppd_opt->special->doc_name == NULL){ return ToChar(""); }else { return ToChar(data->ppd_opt->special->doc_name); } #endif case ID_SECURED_USRNAME: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->usr_name); case ID_SECURED_PASSWD: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->passwd_array); case ID_COLOR_MODE: return IntToChar(data->ppd_opt->color_mode); case ID_PRINTERTYPE: return IntToChar(data->ppd_opt->printer_type); case ID_MAX_COPIES: return IntToChar(data->ppd_opt->max_copy_num); case ID_SPECIAL_FUNC: return ToChar(data->ppd_opt->special != NULL ? "1" : "0"); case ID_DOC_LENGTH: return IntToChar(data->ppd_opt->max_doc_length); case ID_DUPLEX: option = IDtoPPDOption(id - 1); if(option == NULL) return NULL; #ifdef __APPLE__ return MakePPDOptionList(data->ppd_opt, "Duplex"); #else return MakeDuplexBoolList(data->ppd_opt); #endif case ID_BOOKLET: case ID_CNSADDLESTITCH: case ID_CNTRIMMING: case ID_CNZFOLDING: case ID_CNINSERTER: case ID_CNPUREBLACKPROCESS: case ID_CNPUNCHER: case ID_CNFOLDER: case ID_CNINSERTUNIT: case ID_CNTRIMMER: case ID_CNDUPLEXUNIT: case ID_CNSUPERSMOOTH: case ID_CNBACKPAPERPRINT: case ID_CNROTATEPRINT: case ID_CNCOPYSETNUMBERING: case ID_CNINTERLEAFSHEET: case ID_CNINTERLEAFPRINT: case ID_CNSKIPBLANK: case ID_CNDETECTPAPERSIZE: case ID_CNRGBPUREBLACKPROCESS: case ID_CNUSEGRAYSCALEPROFILE: case ID_CNLASTPAGEPRINTMODE: case ID_CNSET_FRONT_COVER: case ID_CNSET_BACK_COVER: case ID_CNSPECIFYNUMOFCOPIESSTACK: case ID_CNVFOLDING: case ID_CNPROPUNCHER: option = IDtoPPDOption(id - 1); if(option == NULL) return NULL; #ifdef __APPLE__ if(data->ppd_opt->printer_type != PRINTER_TYPE_CAPT) { switch(id){ case ID_CNPUNCHER: case ID_BOOKLET: case ID_CNFOLDER: case ID_CNTRIMMER: case ID_CNINSERTUNIT: case ID_CNLASTPAGEPRINTMODE: case ID_CNPROPUNCHER: return MakePPDOptionList(data->ppd_opt, option); default: return MakePPDBoolList(data->ppd_opt, option); } } else { switch(id){ case ID_CNSUPERSMOOTH: return MakePPDOptionList(data->ppd_opt, option); default: return MakePPDBoolList(data->ppd_opt, option); } #endif return MakePPDBoolList(data->ppd_opt, option); #ifdef __APPLE__ } #endif case ID_CNPUNCH: option = IDtoPPDOption(id - 1); if(option == NULL) return NULL; return MakeCNPunchBoolList(data->ppd_opt, option); case ID_BOOKLET_DLG: option = IDtoPPDOption(ID_BOOKLET - 1); if(option == NULL) return NULL; return MakePPDOptionList(data->ppd_opt, option); case ID_STARTNUM: return IntToChar(data->ppd_opt->startnum_value); case ID_USERID: return IntToChar(getuid()); case ID_BACKPAPERPRINT_LABEL: return ToChar(GetItemString(data->ppd_opt->items_list, "CNBackPaperPrint")); case ID_DISABLE_JOBACCOUNT_BW: if(data->ppd_opt->special == NULL) return NULL; else #ifndef __APPLE__ return IntToChar(data->ppd_opt->special->disable_job_account_bw); #else return ToChar(data->ppd_opt->special->disable_job_account_bw == 0 ? "False:True<0>,False<0>" : "True:True<0>,False<0>"); #endif #if !defined(__APPLE__) && !defined(_OPAL) case ID_SHOW_JOBACCOUNT: if(data->ppd_opt->special == NULL) { return NULL; } else { return IntToChar(data->ppd_opt->special->show_job_account); } break; #endif case ID_SHOW_DISABLE_JOBACCOUNT_BW: if(data->ppd_opt->special == NULL) return NULL; else return IntToChar(data->ppd_opt->special->show_disable_job_account_bw); case ID_DETECTPAPER_LABEL: return ToChar(GetItemString(data->ppd_opt->items_list, "CNDetectPaperSize")); case ID_CNDPICONPICTID: if(data->ppd_opt->dpicon_pictid > 0) return IntToChar(data->ppd_opt->dpicon_pictid); break; case ID_CNENABLEFINISHFLAG: if(data->ppd_opt->enable_finishflag > 0) return IntToChar(data->ppd_opt->enable_finishflag); break; case ID_CNENABLEINPUTFLAG: if(data->ppd_opt->enable_inputflag > 0) return IntToChar(data->ppd_opt->enable_inputflag); break; case ID_CNENABLEQUALITYTYPE: if(data->ppd_opt->enable_qualitytype > 0) return IntToChar(data->ppd_opt->enable_qualitytype); break; case ID_INPUTSLOT_TYPE: return IntToChar(data->ppd_opt->input_slot_type); case ID_CNSHIFTTYPE: return IntToChar(data->ppd_opt->shift_pos_type); case ID_CNSHIFTUPWARDS: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_upwards); } } return IntToChar(data->ppd_opt->shift_upwards); case ID_CNSHIFTRIGHT: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_right); } } return IntToChar(data->ppd_opt->shift_right); case ID_CNSHIFTFRLONGEDGE: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_front_long); } } return IntToChar(data->ppd_opt->shift_front_long); case ID_CNSHIFTFRSHORTEDGE: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_front_short); } } return IntToChar(data->ppd_opt->shift_front_short); case ID_CNSHIFTBKLONGEDGE: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_back_long); } } return IntToChar(data->ppd_opt->shift_back_long); case ID_CNSHIFTBKSHORTEDGE: if((option = GetUIValue(data, "CNEnableDetailShiftPosition")) != NULL){ if(strcasecmp(option,"True") == 0){ return DoubleToChar(data->ppd_opt->detail_shift_back_short); } } return IntToChar(data->ppd_opt->shift_back_short); case ID_CNSHIFTPOSITIONMAX: return cngplpGetValue(data,kPPD_Items_CNShiftPositionMax); case ID_CNSHIFTPOSITIONMIN: return cngplpGetValue(data,kPPD_Items_CNShiftPositionMin); case ID_CNJOBNOTE: if(data->ppd_opt->job_note == NULL) return NULL; else return ToChar(data->ppd_opt->job_note->note); case ID_CNJOBDETAILS: if(data->ppd_opt->job_note == NULL) return NULL; else return ToChar(data->ppd_opt->job_note->details); case ID_CNFINDETAILS: option = GetUIValue(data, kPPD_Items_CNFinDetails); if(option == NULL) return 0; return IntToChar((strcasecmp(option, "true") == 0) ? 1 : 0); case ID_CNOFFSETNUM: return IntToChar(data->ppd_opt->offset_num); case ID_CNUIOFFSETMAX: return cngplpGetValue(data,kPPD_Items_CNUIOffsetMax); case ID_CNGUTTERSHIFTNUM: return DoubleToChar2(data->ppd_opt->guttershiftnum_value_d); case ID_MAX_GUTTER_SHIFT_NUM: return cngplpGetValue(data,kPPD_Items_CNMAXGutterShiftNum); case ID_MIN_GUTTER_SHIFT_NUM: return cngplpGetValue(data,kPPD_Items_CNMINGutterShiftNum); case ID_CNTABSHIFT: return DoubleToChar(data->ppd_opt->tab_shift); case ID_DRIVERROOTPATH: if(data->ppd_opt->drv_root_path == NULL) return NULL; else return ToChar(data->ppd_opt->drv_root_path); case ID_CNMEDIABRANDLIST: return MakeMediaBrandListChar(data->ppd_opt); case ID_CNMEDIABRAND: return MakeMediaBrandChar(data->ppd_opt); case ID_CNINSERTMEDIABRANDLIST: return MakeInsertMediaBrandListChar(data->ppd_opt); case ID_CNINSERTMEDIABRAND: return MakeInsertMediaBrandChar(data->ppd_opt); case ID_CNINTERLEAFMEDIABRANDLIST: return MakeInterleafMediaBrandListChar(data->ppd_opt); case ID_CNINTERLEAFMEDIABRAND: return MakeInterleafMediaBrandChar(data->ppd_opt); case ID_CNPBINDCOVERMEDIABRANDLIST: return MakePBindCoverMediaBrandListChar(data->ppd_opt); case ID_CNPBINDCOVERMEDIABRAND: return MakePBindCoverMediaBrandChar(data->ppd_opt); case ID_CNINSERTTABSHIFT: return DoubleToChar(data->ppd_opt->ins_tab_shift); case ID_CNINSERTPOS: return ToChar(data->ppd_opt->ins_pos); case ID_CNINSERTPOSPAPERSOURCE: return ToChar(data->ppd_opt->ins_pos_papersource); case ID_CNINSERTPOSPRINTON: return ToChar(data->ppd_opt->ins_pos_printon); case ID_CNTABINSERTPOS: return ToChar(data->ppd_opt->tab_ins_pos); case ID_CNTABINSERTPOSPAPERSOURCE: return ToChar(data->ppd_opt->tab_ins_pos_papersource); case ID_CNTABINSERTPOSPRINTON: return ToChar(data->ppd_opt->tab_ins_pos_printon); case ID_CNTABINSERTMULTIPAPERNUMBER: return IntToChar(data->ppd_opt->tab_ins_multi_number); case ID_CNTABINSERTMULTIPAPERSOURCE: return ToChar(data->ppd_opt->tab_ins_multi_papersource); case ID_CNTABINSERTMULTIPAPERTYPE: return ToChar(data->ppd_opt->tab_ins_multi_papertype); case ID_CNBINNAME: return ToChar(data->ppd_opt->bin_name); case ID_CNBINNAME_ARRAY: return ToChar(data->ppd_opt->bin_name_array); case ID_CNOVERLAYFILENAME: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->form_name); case ID_CNFORMHANDLE: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->form_handle); case ID_CNFORMLIST: return MakeFormListChar(data->ppd_opt); case ID_CNADJUSTTRIMNUM: return DoubleToChar(data->ppd_opt->adjust_trim_num); case ID_CNUITRIMVALMAX: return cngplpGetValue(data, kPPD_Items_CNUITrimValMax); case ID_CNUITRIMVALMIN: return cngplpGetValue(data, kPPD_Items_CNUITrimValMin); case ID_CNADJUSTFORETRIMNUM: return DoubleToChar(data->ppd_opt->adjust_frtrim_num); case ID_CNADJUSTTOPBOTTOMTRIMNUM: return DoubleToChar(data->ppd_opt->adjust_tbtrim_num); case ID_CNPBINDFINISHFORETRIMNUM: return DoubleToChar(data->ppd_opt->pb_fin_fore_trim_num); case ID_CNPBINDFINISHTOPBOTTOMTRIMNUM: return DoubleToChar(data->ppd_opt->pb_fin_topbtm_trim_num); case ID_CNSENDTIMENUM: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->send_time); case ID_CNOUTSIDELINENUMBER: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->outside_line_number); case ID_CNOUTSIDELINENUMINTRA: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->outside_line_number_intra); case ID_CNOUTSIDELINENUMNGN: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->outside_line_number_ngn); case ID_CNOUTSIDELINENUMMYNUMBERNGN: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->outside_line_number_ngnmynum); case ID_CNOUTSIDELINENUMVOIP: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->outside_line_number_voip); case ID_CNSENDER: if(data->ppd_opt->fax_setting == NULL) return NULL; else return ToChar(data->ppd_opt->fax_setting->sender_name); case ID_HOLD_NAME: if(data->ppd_opt->special == NULL) return NULL; else return ToChar(data->ppd_opt->special->hold_name); case ID_HOLDQUEUE_DATANAME: if(data->ppd_opt->special == NULL) return NULL; else return IntToChar(data->ppd_opt->special->holddata_name); case ID_CNFEEDPAPERNAME: if(data->ppd_opt->feed_paper_name == NULL) return NULL; else return ToChar(data->ppd_opt->feed_paper_name); case ID_CNSADDLESETTING: option = IDtoPPDOption(id - 1); if(option == NULL) return NULL; return MakeCNSaddleSettingList(data->ppd_opt, option); case ID_CNSTACKCOPIESNUM: return IntToChar(data->ppd_opt->stack_copies_num); case ID_CNSADDLEPRESSADJUSTMENT: return IntToChar(data->ppd_opt->saddle_press_adjust); case ID_CNLISTIDSPECIALPRINTMODE: return IntToChar(data->ppd_opt->list_specialprintmode_value); #ifndef __APPLE__ case ID_ENABLECNOFFSETNUM: return ToChar(GetUIValue(data, "EnableCNOffsetNum")); case ID_CNFOLDSETTING: option = IDtoPPDOption(id - 1); if(option == NULL){ return NULL; } return MakeCNFoldSettingList(data->ppd_opt, option); case ID_CNPRINTSTYLE: option = IDtoPPDOption(id - 1); if(option == NULL){ return NULL; } return MakeCNPrintStyleList(data->ppd_opt, option); #endif case ID_PCFILENAME: return ToChar(data->ppd_opt->pcfile_name); case ID_MANUFACTURER: return ToChar(data->ppd_opt->manufacturer); case ID_NICKNAME: return ToChar(data->ppd_opt->nickname); case ID_CNPDLTYPE: return ToChar(data->ppd_opt->cnpdl_type); case ID_APPRINTERICONPATH: return ToChar(data->ppd_opt->ap_printer_icon_path); case ID_CONFLICTCNOFFSETNUM: return IntToChar(GetOffsetNumConflict(data)); case ID_ENABLEINSERTPOSPAPERSOURCE: return MakeEnableInsertPosPaperSource(data, 0); case ID_ENABLETABINSERTPOSPAPERSOURCE: return MakeEnableInsertPosPaperSource(data, 1); default: option = IDtoPPDOption(id - 1); if(option == NULL) return NULL; return MakePPDOptionList(data->ppd_opt, option); } return NULL; }
gboolean FindKey(const KeyInfo *key, cngplpData *data) { char *opt = NULL; gboolean found = FALSE; if(NULL == key){ return FALSE; } const int id = GetModID(key->name); if(ID_RESOLUTION == id){ UIItemsList *item = NULL; if((g_cngplp_data != NULL) && (g_cngplp_data->ppd_opt != NULL)){ item = FindItemsList(g_cngplp_data->ppd_opt->items_list, "Resolution"); } if(item != NULL){ if(item->num_options > 1){ return TRUE; }else{ return FALSE; } } }else if(ID_CNFOLDDETAIL == id){ char *folddetail = NULL; opt = GetCurrOpt(data, ID_CNCFOLDING, NULL); if(NULL != opt){ folddetail = GetCurrOpt(data, ID_CNCFOLDSETTING, NULL); if(NULL != folddetail){ memFree(opt); memFree(folddetail); return TRUE; } } opt = GetCurrOpt(data, ID_CNHALFFOLDING, NULL); if(NULL != opt){ folddetail = GetCurrOpt(data, ID_CNHALFFOLDSETTING, NULL); if(NULL != folddetail){ memFree(opt); memFree(folddetail); return TRUE; } } opt = GetCurrOpt(data, ID_CNACCORDIONZFOLDING, NULL); if(NULL != opt){ folddetail = GetCurrOpt(data, ID_CNACCORDIONZFOLDSETTING, NULL); if(NULL != folddetail){ memFree(opt); memFree(folddetail); return TRUE; } } opt = GetCurrOpt(data, ID_CNDOUBLEPARALLELFOLDING, NULL); if(NULL != opt){ folddetail = GetCurrOpt(data, ID_CNDOUBLEPARALLELFOLDING, NULL); if(NULL != folddetail){ memFree(opt); memFree(folddetail); return TRUE; } } }else{ if(IDtoPPDOption(id - 1) != NULL){ opt = GetCurrOpt(data, id, NULL); }else{ opt = GetOptionList(data, id); } } if(NULL == opt){ opt = GetCNUIValue(key->name); if(NULL == opt){ return FALSE; } } if(NULL == key->value){ found = TRUE; }else{ if(NULL != key->type){ if(0 == strcmp(key->type, "no")){ if(strcmp(key->value, opt) != 0){ found = TRUE; } }else if(0 == strcmp(key->type, "include")){ MemFree(opt); opt = GetOptionList(data, id); if((opt != NULL) && (strstr(opt, key->value) != NULL)){ found = TRUE; } }else if(0 == strcmp(key->type, "other")){ int i = 0, j = 0, k = 0; char *option = NULL; UIItemsList *item = NULL; char *plist = NULL; char *list = key->value; plist = list; option = IDtoPPDOption(id -1); if((g_cngplp_data != NULL) && (g_cngplp_data->ppd_opt != NULL)){ item = FindItemsList(g_cngplp_data->ppd_opt->items_list, option); } while(1){ if(*plist == '\0'){ i++; break; } if(*plist == ','){ i++; } plist++; } if(item != NULL){ UIOptionList *tmp = item->opt_lists; while(tmp != NULL){ if(strstr(list, tmp->name) != NULL){ j++; k++; } tmp = tmp->next; } if((i == j) && (i == k)){ found = FALSE; }else{ found = TRUE; } } } }else{ if(0 == strcmp(key->value, opt)){ found = TRUE; } } } if(opt != NULL){ free(opt); opt = NULL; } return found; }