void new_css_dialog(GtkWidget *wid, Tbfwin *bfwin) { Tcs3_destination dest; Tcs3_diag *diag; gint sel_start, sel_end; gboolean has_selection; dest.dest_type = textbox; dest.entry = NULL; dest.doc = bfwin->current_document; if (!doc_get_selection(dest.doc, &sel_start, &sel_end)) { dest.doc_start = -1; dest.doc_end = -1; has_selection = FALSE; } else { has_selection = TRUE; dest.doc_start = sel_start; dest.doc_end = sel_end; } if (dest.doc_start > dest.doc_end) { gint swap = dest.doc_start; dest.doc_start = dest.doc_end; dest.doc_end = swap; } diag = css_diag(dest, multistyle, bfwin->main_window, FALSE); if (has_selection) { gchar *data; data = doc_get_chars(dest.doc, sel_start, sel_end); DEBUG_MSG("new_css_dialog, data=%p\n", data); css_parse(diag, data); g_free(data); } }
std::vector< HtmlTag* > HtmlParser::findAll(const std::string& query) { std::cout << query << std::endl; //read the html code - each tag will be one field in std::vector YY_BUFFER_STATE bp; CssSPData cssSPData; cssSPData.htmlCode=htmlCode; #if defined YYDEBUG && YYDEBUG==1 css_debug=0; #endif yyscan_t scanner; css_lex_init_extra(&cssSPData, &scanner); bp=css__scan_string(query.data(), scanner); css__switch_to_buffer(bp, scanner); css_parse(&cssSPData, scanner); css__delete_buffer(bp, scanner); css_lex_destroy(scanner); std::vector<HtmlTag *> ret; //convert list of iterators to pointers for (const SearchListElement &i: cssSPData.results.getList()) ret.push_back(const_cast<HtmlTag*>(&(*i)) ); //take of constness return ret; }
int sslvpn_rewrite(enum __sslvpn_rewrite_type__ type, const char * string,int length,char * output, int size,const char* path) { CSSParser * csp ; JSParser * jsp ; HTMLParser* hp ; int ret = -1 ; switch(type) { case SSLVPN_RW_CSS: csp = css_parser_new(); csp->scanner->string = csp->rewriter->string = (u8*)string; csp->scanner->length = csp->rewriter->length = (u32)length; csp->rewriter->path = (u8*)path; if( css_parse(csp,CPM_FILE) ) { ret = 0 ; finalStringOutput(csp->rewriter->rw_token,(u8*)string,(u32)length,output,size); } css_parser_free(csp); break; case SSLVPN_RW_XML: case SSLVPN_RW_HTML: hp = html_parser_new((u8*)string,(u32)length); hp->rewriter->path = (u8*)path; if( html_parse(hp) ) { ret = 0 ; finalStringOutput(hp->rewriter->rw_token,(u8*)string,(u32)length,output,size); } html_parser_free(hp); break; case SSLVPN_RW_JAVA: jsp = js_parser_new(); jsp->scanner->string = jsp->rewriter->string = (u8*)string ; jsp->scanner->length = jsp->rewriter->length = (u32)length ; jsp->rewriter->path = (u8*)path; parse(jsp,JSS_NONE); ret = 0 ; finalStringOutput(jsp->rewriter->rw_token,(u8*)string,(u32)length,output,size); js_parser_free(jsp); case SSLVPN_RW_ERROR: default:break; } return ret; }
int main(int argc, char *argv[]) { css_ruleset *style;// = css_load_file("config.css"); css_parser *state = css_parser_create(); css_parse(state, css, sizeof(css)); style = css_parser_done(state); css_fprintf(stdout, style); css_free(style); return 0; }
static void style_but_clicked_lcb(GtkWidget * widget, GtkWidget * which_entry) { Tcs3_destination dest; Tcs3_diag *diag; gchar *data; GtkWidget *win; dest.dest_type = entry; dest.entry = which_entry; dest.doc = NULL; win = gtk_widget_get_toplevel(which_entry); diag = css_diag(dest, onestyle, win, TRUE); data = gtk_editable_get_chars(GTK_EDITABLE(which_entry), 0, -1); css_parse(diag, data); g_free(data); }
extern void __rw_css(LimitRewriter *_this,u32 begin,u32 length,s32 place) { u32 endp ; CSSParser * csp ; if( _this->string[begin] == '\'' || _this->string[begin] == '\"' ) { begin++; length-=2 ; } endp = begin + length ; csp = css_parser_new_by(_this->rw_token,_this->string,begin,endp); csp->rewriter->path = _this->path ; css_parse(csp,(CSSParseMode)place); css_parser_free(csp); }
css_ruleset* css_load_file(const char *filename) { css_ruleset *style = NULL; css_parser *state; FILE *f; char buf[1024]; int n, err; f = fopen(filename, "r"); if (f == NULL) return NULL; /* Failed to open file */ state = css_parser_create(); if (state == NULL) { /* Failed to malloc */ fclose(f); return NULL; } /* Read file */ while (!feof(f)) { n = fread(buf, 1, sizeof(buf), f); err = css_parse(state, buf, n); if (err) { /* Abnormal termination */ fclose(f); css_parser_done(state); return NULL; } } /* Normal termination */ fclose(f); style = css_parser_done(state); return style; }
static void style_but_for_wizard_clicked_lcb(GtkWidget * widget, GtkWidget * textview) { Tcs3_destination dest; Tcs3_diag *diag; gchar *data; GtkWidget *win; dest.dest_type = wizard; dest.entry = textview; dest.doc = NULL; win = gtk_widget_get_toplevel(textview); diag = css_diag(dest, multistyle, win, TRUE); { GtkTextBuffer *buf; GtkTextIter itstart, itend; buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); gtk_text_buffer_get_bounds(buf,&itstart,&itend); data = gtk_text_buffer_get_text(buf, &itstart, &itend, FALSE); css_parse(diag, data); g_free(data); } }
PUBLIC void CSS_ConvertToJS(char * src, int32 src_count, char ** dst, int32 * dst_count) { StyleBuffer sb; XP_Bool translated; *dst = NULL; *dst_count = 0; if (NULL == src || 0 == src_count) return; input_buffer = src; input_buffer_count = src_count; input_buffer_index = 0; css_tree_root = NULL; if (css_parse() != 0) return; sb = XP_NEW_ZAP(StyleBufferRec); if (sb == NULL) return; translated = ConvertStyleSheet(css_tree_root, sb); css_FreeNode(css_tree_root); #if ALLOW_IMPORT if (! translated) EchoCSS(src, src_count, sb); #endif /* The caller should free *dst. */ *dst = sb->buffer; *dst_count = sb->buffer_count; XP_DELETE(sb); }