コード例 #1
0
std::ostream& operator <<( std::ostream& os, const compactTractChar& object )
{
    std::vector< unsigned char > tract( object.tract() );
    size_t counter0 ( 0 );
    for( size_t i = 0; i < tract.size() && counter0 < 15; ++i )
    {
        size_t datapoint(tract[i]);
        if(datapoint)
        {
            os << datapoint << " ";
            ++counter0;
        }
    }
    return os;
} // end "operator << " -----------------------------------------------------------------
コード例 #2
0
ファイル: myre.c プロジェクト: vobiscum/myre
void
myre_start_request() {

    const char *sRaw = gtk_entry_get_text((GtkEntry *)entry);

    /* vacant entry */
    if(strlen(sRaw) < 1) {
        if(viewsAssembled)
            gtk_widget_hide(textview1);
        myre_show_help();
        return ;
    }
    /* special commands */
    if(0 == strcmp(sRaw, ":about")) {
        gtk_widget_grab_focus(entry);
        myre_show_about(aboutdialog);
        return ;
    }

    if(0 == strcmp(sRaw, ":help")) {
        myre_show_help();
        return ;
    }

    /* HERE WE MASTER UNCOVER THE COMPLETE FORMATION  */
    gtk_widget_show(GTK_WIDGET(status));
    /* char *s defined as gloable */
    s = realloc(s, 1024);
    check( s != NULL, "Memory error.");
    memcpy(s, sRaw, strlen(sRaw));
    s[strlen(sRaw)] = '\0';

    /*Pack URL*/
    check(getReqStr(s, mark, word) != -1,"Fail to prepare query objective.");

    /*Show URL in GTK*/
    if(strlen(s) < 1) {
        gtk_widget_grab_focus(entry);
        return ;
    }
    gtk_widget_show(hboxmain);
    gtk_widget_show(textview1);
    gtk_widget_show(textview2);
    gtk_text_buffer_set_text(text1, s, -1);
    gtk_widget_show(button2);
    /* update title */
    gtk_window_set_title(GTK_WINDOW(window), word);

    /*Fetch from URL*/
    log_info("Request [%s]",s);
    int res = tract(getConfree = getContent(s, curl_handle), &rslt);/*create string at rslt*/
    /*
     * we want to employ g_threadnew(	const char *OptionalNameForThread,
     *									GThreadFunc func,
     *									gpointer data)
     * to offload getContent
     * where gpointer (*GThreadFunc) (gpointer data)
     */
    log_info("Tract length %d",res);
#ifdef LOGRAW
    log_info("\n%s",rslt);
#endif

    /*Check Fetch*/
    if(0 == res) {
        gtk_editable_delete_text((GtkEditable *) entry, 0, -1);
        gtk_text_buffer_set_text(text2, "Fetch returned but got nothing to display.\n"\
                                 "Probably no match.\n", -1);
        gtk_statusbar_push(status,
                           gtk_statusbar_get_context_id(status, "status"),
                           "NOTHING TO DISPLAY");
        return ;
    }

    if(-1 == res)
    {
        gtk_text_buffer_set_text(text2, "Fetch fail.\n"\
                                 "Check your Internet Service and try again.", -1);
        gtk_statusbar_push(status,
                           gtk_statusbar_get_context_id(status, "status"),
                           "CURL ERROR");
        gtk_widget_grab_focus(entry);
        return ;
    }
    else
        gtk_statusbar_push(status,
                           gtk_statusbar_get_context_id(status, "status"),
                           "Query success");

    /*Site-specific operations */
    debug("Start Prepare texts for display");
    char *temp = malloc(512);
    switch(mark[0])/*then display points to slice of rslt*/
    {
    case 'w':
    case 'z':
        display = rslt;
        break;
    case 'r':
        if(in("Google+\nShare", rslt))
            cropFromMark(rslt, "\nGoogle+\nShare", &display);
        else if(in("Did you mean", rslt) &&
                in("More suggestions:", rslt)) {
            cropFromMark(rslt, "Did you mean", &display);
            break;
        }
        else {
            display = rslt;
            break;
        }
        if(display != NULL)
            cropFromLine(display, 3, &display);
        break;
    case 'p':
        cropFromMark(rslt,"From en.wikipedia.org:", &display);
        break;
    case 'm':
        cropFromLine(rslt, 7, &display);
        break;
    case '1':
    case '2':
    case '3':
    case '4':
    case '7':
    case '8':
    case 'L':
    case 'l':
    case '5':
        display = rslt;
        break;

    case 'd':
    default:
        temp[0] = 0;
        strcat(strcat(temp, word), "\n");
#ifdef MinGW
        cropFromMark(rslt, temp, &display);
#else
        cropFromMarkNoCase(rslt, temp, &display);
#endif
        if (display == NULL) {
            cropFromLine(rslt, 4, &display);
        }
        temp[0] = 0;
    }
    debug("Done  Prepare texts for display");

    /*display on gtk*/
    if(display == NULL || strlen(display) < 1) {
        display = "Fetch success, but myre find nothing to display...\n"\
                  "Please try again.\n";
    }

    textview2_display(display, mark);
    debug("Done Display");

    /*set starting iter*/
    gtk_text_buffer_get_iter_at_offset(text2, &start, 0);

    /*focus*/
    gtk_widget_grab_focus(textview2);
    current = start;
    end = start;
    gtk_text_buffer_place_cursor(text2, &start);

    /*highlight*/
    debug("Start Highlighting...");
    my_text_buffer_highlight(text2, word, 0);
    if(isupper(word[0]))
        word[0] = tolower(word[0]);
    else
        word[0] = toupper(word[0]);
    my_text_buffer_highlight(text2, word, 0);

    char *sticker = NULL;
    switch(mark[0])
    {
    case 'r':
        sticker = malloc(512);
        sticker[0] = '\0';
        if(isupper(word[0]))
            word[0] = tolower(word[0]);
        else
            word[0] = toupper(word[0]);

        /*Hide*/
        my_text_buffer_highlight(text2, "IPA\nSyllables\nWord Origin", 3);
        my_text_buffer_highlight(text2, "IPA\nSyllables\n", 3);
        my_text_buffer_highlight(text2, "Synonyms \nExamples \nWord Origin", 3);
        my_text_buffer_highlight(text2, "Synonyms \nWord Origin", 3);
        my_text_buffer_highlight(text2, "Examples \nWord Origin", 3);

        my_text_buffer_highlight(text2, "Expand\n", 3);

        /*Highlight section*/
        my_text_buffer_highlight(text2, "\nOrigin", 2);
        my_text_buffer_highlight(text2, "\nWord Origin", 2);
        my_text_buffer_highlight(text2, "\nWord Origin and History", 2);
        my_text_buffer_highlight(text2, "\nRelated forms", 2);
        my_text_buffer_highlight(text2, "\nRelated Terms", 2);
        my_text_buffer_highlight(text2, "\nDerived Forms", 2);
        my_text_buffer_highlight(text2, "\nRelated Abbreviations", 2);
        my_text_buffer_highlight(text2, "\nQuotes", 2);
        my_text_buffer_highlight(text2, "\nSynonyms", 2);
        my_text_buffer_highlight(text2, "\nAntonyms", 2);
        my_text_buffer_highlight(text2, "\nBritish Dictionary definitions", 2);
        my_text_buffer_highlight(text2, "\nWorld English Dictionary", 2);
        my_text_buffer_highlight(text2, "\nComputing Dictionary", 2);
        my_text_buffer_highlight(text2, "\nBible Dictionary", 2);
        my_text_buffer_highlight(text2, "\nSlang definitions", 2);
        my_text_buffer_highlight(text2, "\nAbbreviations   Acronyms", 2);
        my_text_buffer_highlight(text2, "\nIdioms", 2);
        my_text_buffer_highlight(text2, "\nExamples ", 2);
        my_text_buffer_highlight(text2, "\nEncyclopedia ", 2);
        my_text_buffer_highlight(text2, "\nalso see:", 2);
        my_text_buffer_highlight(text2, "in Medicine", 2);
        my_text_buffer_highlight(text2, "in Culture", 2);
        my_text_buffer_highlight(text2, "in Science", 2);
        my_text_buffer_highlight(text2, "in Technology",2);
        /*Hide*/
        my_text_buffer_highlight(text2, "\nCite This Source\n", 3);

        /* clean up*/
        free(sticker);
        break;
    case 'p':
    case 'w':
        my_text_buffer_highlight(text2, "HomeRandomNearby\n", 3);
        my_text_buffer_highlight(text2, "Open main menu", 3);
        my_text_buffer_highlight(text2, "WatchlistSettingsLog in\n", 3);
        my_text_buffer_highlight(text2, "About WikipediaDisclaimers\n", 3);
        break;
    case 'z':
        my_text_buffer_highlight(text2, "首页随机附近\n", 3);
        my_text_buffer_highlight(text2, "监视列表设置登录\n", 3);
        my_text_buffer_highlight(text2, "关于维基百科免责声明\n", 3);
        break;
    case 'm':
        my_text_buffer_highlight(text2, "      top", 3);
        my_text_buffer_highlight(text2, "\nSYNOPSIS", 2);
        my_text_buffer_highlight(text2, "\nDESCRIPTION", 2);
        my_text_buffer_highlight(text2, "\nOPTIONS", 2);
        my_text_buffer_highlight(text2, "\nCONCEPTS", 2);
        my_text_buffer_highlight(text2, "\nEXAMPLES", 2);
        my_text_buffer_highlight(text2, "\nEXIT STATUS", 2);
        my_text_buffer_highlight(text2, "\nSEE ALSO", 2);
        my_text_buffer_highlight(text2, "\nTERMINOLOGY", 2);
        my_text_buffer_highlight(text2,	"\nDIRECTORIES", 2);
        my_text_buffer_highlight(text2, "\nSIGNALS", 2);
        my_text_buffer_highlight(text2, "\nENVIRONMENT", 2);
        my_text_buffer_highlight(text2, "\nNOTES", 2);
        break;
    case '1':
    case '2':
    case '3':
    case '4':
    case '7':
    case '8':
    case 'L':
    case 'l':
    case '5':
        sticker = malloc(512);
        sticker[0] = '\0';
        if(isupper(word[0]))
            word[0] = tolower(word[0]);

        strcat(strcat(strcat(sticker, "\n"), word),"(");
        strcat(strcat(sticker, mark),") - Linux man page\n");
        my_text_buffer_highlight(text2, sticker, 3);

        my_text_buffer_highlight(text2, "\nsite search\n", 3);
        my_text_buffer_highlight(text2, "Site Search\n", 3);
        my_text_buffer_highlight(text2, "Google Custom Search", 3);
        my_text_buffer_highlight(text2, "Library\nlinux docs\nlinux man pages\npage load time\nToys\n"\
                                 "world sunlight\nmoon phase\ntrace explorer", 3);

        my_text_buffer_highlight(text2, "Prolog\n", 2);
        my_text_buffer_highlight(text2, "Name\n", 2);
        my_text_buffer_highlight(text2, "\nSynopsis\n", 2);
        my_text_buffer_highlight(text2, "\nDescription\n", 2);
        my_text_buffer_highlight(text2, "\nOptions\n", 2);
        my_text_buffer_highlight(text2, "\nEnvironment\n", 2);
        my_text_buffer_highlight(text2, "\nReturn Value\n", 2);
        my_text_buffer_highlight(text2, "\nReturn value\n", 2);
        my_text_buffer_highlight(text2, "\nConforming To\n", 2);
        my_text_buffer_highlight(text2, "\nConforming to\n", 2);
        my_text_buffer_highlight(text2, "\nAuthor\n", 2);
        my_text_buffer_highlight(text2, "\nReporting Bugs\n",2);
        my_text_buffer_highlight(text2, "\nCopyright\n", 2);
        my_text_buffer_highlight(text2, "\nBugs\n", 2);
        my_text_buffer_highlight(text2, "\nErrors\n", 2);
        my_text_buffer_highlight(text2, "\nNotes\n", 2);
        my_text_buffer_highlight(text2, "\nExample\n", 2);
        my_text_buffer_highlight(text2, "\nExamples\n", 2);
        my_text_buffer_highlight(text2, "\nApplication Usage\n", 2);
        my_text_buffer_highlight(text2, "\nRationale\n", 2);
        my_text_buffer_highlight(text2, "\nFuture Directions\n", 2);
        my_text_buffer_highlight(text2, "\nSee Also\n", 2);
        my_text_buffer_highlight(text2, "\nReferenced by", 2);
        my_text_buffer_highlight(text2, "\nReferenced By", 2);


        /* clean up */
        free(sticker);
        break;

    case 'd':
    default:
        my_text_buffer_highlight(text2, "释义常用度分布图\n点击查看", 3);
        my_text_buffer_highlight(text2, "常用词汇 ", 3);
        my_text_buffer_highlight(text2, "用例\n", 3);
        my_text_buffer_highlight(text2, "词组\n", 3);
        my_text_buffer_highlight(text2, "讲解\n", 3);
        my_text_buffer_highlight(text2, "更多\n", 3);
        my_text_buffer_highlight(text2, "极速版|\n触屏版|\n电脑版", 3);
        my_text_buffer_highlight(text2, "详尽释义\n", 2);
        my_text_buffer_highlight(text2, "双解释义\n", 2);
        my_text_buffer_highlight(text2, "英英释义\n", 2);
        my_text_buffer_highlight(text2, "例句\n", 2);
        my_text_buffer_highlight(text2, "常见句型\n", 2);
        my_text_buffer_highlight(text2, "常用短语\n", 2);
        my_text_buffer_highlight(text2, "经典引文\n", 2);
        my_text_buffer_highlight(text2, "词汇搭配\n", 2);
        my_text_buffer_highlight(text2, "词语用法\n", 2);
        my_text_buffer_highlight(text2, "词义辨析\n", 2);
        my_text_buffer_highlight(text2, "常见错误\n", 2);
        my_text_buffer_highlight(text2, "词源解说\n", 2);
        my_text_buffer_highlight(text2, "近反义词\n", 2);
        my_text_buffer_highlight(text2, "派生词\n", 2);
        my_text_buffer_highlight(text2, "缩略词\n", 2);
        my_text_buffer_highlight(text2, "临近单词\n", 2);
    }

    debug("Done  Highlighting...");
    restore_cursor_pos_after_highlight();

    /*clean up*/
    /* char *s and char *rslt used in buffer_set, so not yet*/
    free(getConfree);
    free(temp);
    return ;

error:
    if(getConfree)
        free(getConfree);
    gtk_statusbar_push(status,
                       gtk_statusbar_get_context_id(status, "status"),
                       "Error rendering query target, use [m ][d ]word[ m][ d]");
    gtk_widget_grab_focus(entry);
}