char *sanitize_dos_name(char *file_name) { char new_name[PATH_MAX]; if(!file_name) return NULL; if(strlen(file_name) >= PATH_MAX) file_name[PATH_MAX-1] = '\0'; /* truncate it */ strcpy(new_name, msdosify(file_name)); Curl_safefree(file_name); return strdup(rename_if_dos_device_name(new_name)); }
// write it to file void write_all_notice_to_xmlfile(char *filename, p_notice_element head) { #ifdef WIN32 char gbk_filename[BUFFER_MAX_SIZE]; u2g(filename,strlen(filename), gbk_filename, BUFFER_MAX_SIZE); msdosify(gbk_filename); #endif xmlDocPtr doc = NULL; xmlNodePtr root_node = NULL, notice = NULL; doc = xmlNewDoc(BAD_CAST "1.0"); root_node = xmlNewNode(NULL, BAD_CAST "root"); xmlDocSetRootElement(doc, root_node); char number_buf[8]; p_notice_element p = head->next; while(p) { xmlNodePtr notice_id = NULL, notice_publisher = NULL, notice_time = NULL,notice_title = NULL ,notice_content = NULL; sprintf(number_buf,"%d",p->notice_id); notice = xmlNewChild(root_node, NULL, BAD_CAST "notice", BAD_CAST ""); xmlNewProp(notice, BAD_CAST "isHighLight", p->is_highlight == TRUE? BAD_CAST "true":BAD_CAST "false"); notice_id = xmlNewChild(notice, NULL ,BAD_CAST "id" , BAD_CAST number_buf); notice_publisher = xmlNewChild(notice, NULL ,BAD_CAST "publisher" , BAD_CAST p->notice_publisher); notice_time = xmlNewChild(notice, NULL ,BAD_CAST "time" , BAD_CAST p->notice_time); notice_title = xmlNewChild(notice, NULL ,BAD_CAST "title" , BAD_CAST p->notice_title); notice_content = xmlNewChild(notice, NULL ,BAD_CAST "content" , BAD_CAST p->notice_body); p = p->next; } #ifdef WIN32 xmlSaveFormatFileEnc(gbk_filename, doc, "UTF-8", 1); #endif #ifndef WIN32 xmlSaveFormatFileEnc(filename, doc, "UTF-8", 1); #endif /*free the document */ xmlFreeDoc(doc); xmlCleanupParser(); xmlMemoryDump();//debug memory for regression tests*/ }