From d3615e21b20bb577a71aeb0bedc3982f9c4a197f Mon Sep 17 00:00:00 2001 From: huzheng001 Date: Mon, 16 Nov 2020 19:19:45 +0800 Subject: [PATCH] Fixed some compile warning! Not all! --- dict/data/stardict.desktop.in | 1 + dict/doc/Building | 8 +- dict/src/dictmanage.cpp | 2 +- dict/src/gtk_iskeyspressed.cpp | 4 +- dict/src/prefsdlg.cpp | 2 + dict/src/tomboykeybinder.cpp | 6 +- .../stardict-wiki-parsedata-plugin/global.cpp | 101 ++++++++++-------- tools/src/dictd2dic.cpp | 8 +- tools/src/generator.h | 4 +- tools/src/kingsoft.cpp | 2 +- tools/src/kingsoft2.cpp | 2 +- tools/src/lib_stardict_bin2text.cpp | 2 +- tools/src/mova.cpp | 2 +- tools/src/olddic2newdic.cpp | 2 +- tools/src/parser.h | 4 +- tools/src/rucn.cpp | 2 +- tools/src/stardict-editor.cpp | 6 +- tools/src/stardict_dict_update.cpp | 2 +- tools/src/wikipedia.cpp | 2 +- 19 files changed, 90 insertions(+), 72 deletions(-) diff --git a/dict/data/stardict.desktop.in b/dict/data/stardict.desktop.in index d0c1240..f02ca41 100644 --- a/dict/data/stardict.desktop.in +++ b/dict/data/stardict.desktop.in @@ -1,5 +1,6 @@ [Desktop Entry] _Name=StarDict +_GenericName=Dictionary _Comment=Lookup words Exec=stardict Terminal=false diff --git a/dict/doc/Building b/dict/doc/Building index 9c2507b..79e5ec3 100644 --- a/dict/doc/Building +++ b/dict/doc/Building @@ -35,17 +35,17 @@ How to build StarDict Linux -Build stardict-*.tar.bz2 +Build stardict-*.tar.xz ./autogen.sh - ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --disable-gucharmap --disable-dictdotcn --disable-festival - make dist-bzip2 + ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --disable-gucharmap --disable-dictdotcn --disable-gnome-support --disable-scrollkeeper + make dist-xz Build stardict-*.rpm cp dict/stardict.spec /root/rpmbuild/SPECS/ - cp stardict-*.tar.bz2 /root/rpmbuild/SOURCES/ + cp stardict-*.tar.xz /root/rpmbuild/SOURCES/ cd /root/rpmbuild/SPECS/ rpmbuild -bb stardict.spec diff --git a/dict/src/dictmanage.cpp b/dict/src/dictmanage.cpp index a6358e7..ed58230 100644 --- a/dict/src/dictmanage.cpp +++ b/dict/src/dictmanage.cpp @@ -77,7 +77,7 @@ static void get_all_plugin_list(std::list &plugin_all_list) std::list plugin_disable_list; std::list plugins_dirs; plugins_dirs.push_back(conf_dirs->get_plugin_dir()); - for_each_file(plugins_dirs, "."G_MODULE_SUFFIX, plugin_order_list, + for_each_file(plugins_dirs, "." G_MODULE_SUFFIX, plugin_order_list, plugin_disable_list, GetAllPluginList(plugin_all_list)); } diff --git a/dict/src/gtk_iskeyspressed.cpp b/dict/src/gtk_iskeyspressed.cpp index db477e9..8458cdf 100644 --- a/dict/src/gtk_iskeyspressed.cpp +++ b/dict/src/gtk_iskeyspressed.cpp @@ -77,8 +77,8 @@ bool gtk_hotkeys::is_pressed(void) GdkDisplay *display = gdk_screen_get_display(screen); GdkModifierType mask; #if GTK_MAJOR_VERSION >= 3 - GdkDeviceManager *device_manager = gdk_display_get_device_manager (display); - GdkDevice *pointer = gdk_device_manager_get_client_pointer (device_manager); + GdkSeat *gdk_seat = gdk_display_get_default_seat (display); + GdkDevice *pointer = gdk_seat_get_pointer (gdk_seat); gdk_device_get_state(pointer, gtk_widget_get_window(GTK_WIDGET(win)), NULL, &mask); #else gdk_display_get_pointer(display, NULL, NULL, NULL, &mask); diff --git a/dict/src/prefsdlg.cpp b/dict/src/prefsdlg.cpp index 7f1b82d..6d13aee 100644 --- a/dict/src/prefsdlg.cpp +++ b/dict/src/prefsdlg.cpp @@ -1468,6 +1468,8 @@ void PrefsDlg::setup_network_netdict() gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict2.stardict.net"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict.stardict.me"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict.stardict.cc"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict.stardict.org"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict.stardict.cn"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(comboboxentry), "dict.stardict.site"); eStarDictServer=GTK_ENTRY(gtk_bin_get_child(GTK_BIN(comboboxentry))); const std::string &server= conf->get_string_at("network/server"); diff --git a/dict/src/tomboykeybinder.cpp b/dict/src/tomboykeybinder.cpp index 90437cf..214091e 100644 --- a/dict/src/tomboykeybinder.cpp +++ b/dict/src/tomboykeybinder.cpp @@ -103,7 +103,7 @@ grab_ungrab_with_ignorable_modifiers (GdkWindow *rootwin, static gboolean do_grab_key (Binding *binding) { - GdkKeymap *keymap = gdk_keymap_get_default (); + GdkKeymap *keymap = gdk_keymap_get_for_display ( gdk_display_get_default() ); GdkWindow *rootwin = gdk_get_default_root_window (); EggVirtualModifierType virtual_mods = (EggVirtualModifierType)0; @@ -219,7 +219,7 @@ filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) static void keymap_changed (GdkKeymap *map) { - GdkKeymap *keymap = gdk_keymap_get_default (); + GdkKeymap *keymap = gdk_keymap_get_for_display ( gdk_display_get_default() ); GSList *iter; TRACE (g_print ("Keymap changed! Regrabbing keys...")); @@ -240,7 +240,7 @@ keymap_changed (GdkKeymap *map) void tomboy_keybinder_init (void) { - GdkKeymap *keymap = gdk_keymap_get_default (); + GdkKeymap *keymap = gdk_keymap_get_for_display ( gdk_display_get_default() ); GdkWindow *rootwin = gdk_get_default_root_window (); lookup_ignorable_modifiers (keymap); diff --git a/dict/stardict-plugins/stardict-wiki-parsedata-plugin/global.cpp b/dict/stardict-plugins/stardict-wiki-parsedata-plugin/global.cpp index 1698466..bb1bee9 100644 --- a/dict/stardict-plugins/stardict-wiki-parsedata-plugin/global.cpp +++ b/dict/stardict-plugins/stardict-wiki-parsedata-plugin/global.cpp @@ -46,30 +46,36 @@ string left ( string &s , size_t num ) } string right ( string &s , int num ) - { +{ if ( num <= 0 ) return "" ; - int from = s.length() - num ; + size_t s_len = s.length(); + int from = s_len - num ; string ret ; - if ( from <= 0 ) ret = s ; - else ret = s.substr ( from , s.length() ) ; + if ( from <= 0 ) + ret = s ; + else + ret = s.substr ( from , s_len ) ; return ret ; - } +} string upper ( string s ) // For internal purposes, will do... - { +{ size_t a ; - for ( a = 0 ; a < s.length() ; a++ ) - { + size_t s_len; + s_len = s.length(); + for ( a = 0 ; a < s_len ; a++ ) + { if ( s[a] >= 'a' && s[a] <= 'z' ) s[a] = s[a] - 'a' + 'A' ; - } - return s ; } + return s ; +} void explode ( chart ch , string &l , vector &parts ) - { +{ parts.clear () ; - size_t a , b ; - for ( a = b = 0 ; a < l.length() ; a++ ) + size_t a , b , l_len; + l_len = l.length(); + for ( a = b = 0 ; a < l_len ; a++ ) { if ( l[a] == ch ) { @@ -80,25 +86,29 @@ void explode ( chart ch , string &l , vector &parts ) parts.push_back ( l.substr ( b , a - b ) ) ; if ( debug ) cout << "Explode : " << l << endl ; - for ( a = 0 ; a < parts.size() ; a++ ) + size_t p_size = parts.size(); + for ( a = 0 ; a < p_size ; a++ ) if ( debug ) cout << a << " " << parts[a] << endl ; if ( debug ) cout << endl ; - } +} string implode ( string mid , vector &parts ) - { - if ( parts.size() == 0 ) return "" ; - if ( parts.size() == 1 ) return parts[0] ; +{ + size_t p_size = parts.size(); + if ( p_size == 0 ) return "" ; + if ( p_size == 1 ) return parts[0] ; string ret = parts[0] ; - for ( size_t a = 1 ; a < parts.size() ; a++ ) + for ( size_t a = 1 ; a < p_size ; a++ ) { ret += mid + parts[a] ; + } return ret ; - } +} string unquote ( chart quote , string &s ) - { +{ size_t a ; - for ( a = 0 ; a < s.length() ; a++ ) + size_t s_len = s.length(); + for ( a = 0 ; a < s_len ; a++ ) { if ( s[a] == quote && ( a == 0 || ( a > 0 && s[a-1] != '\\' ) ) ) { @@ -107,37 +117,40 @@ string unquote ( chart quote , string &s ) } } return s ; - } +} bool submatch ( string &main , string &sub , int from ) - { - if ( from + sub.length() > main.length() ) return false ; +{ + size_t sub_len = sub.length(); + if ( from + sub_len > main.length() ) return false ; size_t a ; - for ( a = 0 ; a < sub.length() ; a++ ) + for ( a = 0 ; a < sub_len ; a++ ) { if ( sub[a] != main[a+from] ) return false ; } return true ; - } +} int find_first ( chart c , string &s ) - { +{ size_t a ; - for ( a = 0 ; a < s.length() && s[a] != c ; a++ ) ; - if ( a == s.length() ) return -1 ; + size_t s_len = s.length(); + for ( a = 0 ; a < s_len && s[a] != c ; a++ ) ; + if ( a == s_len ) return -1 ; return a ; - } +} int find_last ( chart c , string &s ) - { +{ size_t a; int b = -1 ; - for ( a = 0 ; a < s.length() ; a++ ) + size_t s_len = s.length(); + for ( a = 0 ; a < s_len ; a++ ) { if ( s[a] == c ) b = a ; } return b ; - } +} string before_first ( chart c , string s ) { @@ -168,21 +181,23 @@ string after_last ( chart c , string s ) } string trim ( string &s ) - { - if ( s.length() == 0 ) return s ; - if ( s[0] != ' ' && s[s.length()-1] != ' ' ) return s ; +{ + size_t s_len = s.length(); + if ( s_len == 0 ) return s ; + if ( s[0] != ' ' && s[s_len-1] != ' ' ) return s ; size_t a; int b ; - for ( a = 0 ; a < s.length() && s[a] == ' ' ; a++ ) ; - for ( b = s.length()-1 ; b >= 0 && s[b] == ' ' ; b-- ) ; + for ( a = 0 ; a < s_len && s[a] == ' ' ; a++ ) ; + for ( b = s_len-1 ; b >= 0 && s[b] == ' ' ; b-- ) ; return s.substr ( a , b - a + 1 ) ; - } +} int find_next_unquoted ( chart c , string &s , int start ) - { +{ size_t a ; chart lastquote = ' ' ; - for ( a = start ; a < s.length() ; a++ ) + size_t s_len = s.length(); + for ( a = start ; a < s_len ; a++ ) { if ( s[a] == c && lastquote == ' ' ) return a ; // Success! if ( s[a] != SINGLE_QUOTE && s[a] != DOUBLE_QUOTE ) continue ; // No quotes, next @@ -191,7 +206,7 @@ int find_next_unquoted ( chart c , string &s , int start ) else if ( lastquote == s[a] ) lastquote = ' ' ; // Close quote, not quoted anymore } return -1 ; - } +} string val ( int a ) { diff --git a/tools/src/dictd2dic.cpp b/tools/src/dictd2dic.cpp index 64ac0ff..f43e3be 100644 --- a/tools/src/dictd2dic.cpp +++ b/tools/src/dictd2dic.cpp @@ -142,13 +142,13 @@ void convert(char *basefilename) fclose (indexfile); buffer[stats.st_size] = '\0'; - gchar dictdzfilename[256]; + gchar dictdzfilename[1024]; sprintf(dictdzfilename, "%s.dz", dictfilename); if (stat (dictdzfilename, &stats) == -1) { } else { - gchar dictgzfilename[256]; + gchar dictgzfilename[1024]; sprintf(dictgzfilename, "%s.gz", dictfilename); - gchar command[256]; + gchar command[3000]; sprintf(command, "mv %s %s", dictdzfilename, dictgzfilename); int result; result = system(command); @@ -345,7 +345,7 @@ void convert(char *basefilename) fprintf(ifofile, "StarDict's dict ifo file\nversion=2.4.2\nwordcount=%ld\nidxfilesize=%ld\nbookname=%s\nsametypesequence=m\n", wordcount, stats.st_size, basefilename); fclose(ifofile); - gchar command[256]; + gchar command[1024]; sprintf(command, "dictzip dictd_" DICTD_WEBSITE "_%s.dict", basefilename); int result; result = system(command); diff --git a/tools/src/generator.h b/tools/src/generator.h index 884ec3c..7b26665 100644 --- a/tools/src/generator.h +++ b/tools/src/generator.h @@ -156,9 +156,9 @@ class GeneratorBase { std::string format_; std::string version_; bool enc_key_; - std::auto_ptr std_dict_ops_; + std::unique_ptr std_dict_ops_; IGeneratorDictOps *dict_ops_; - std::auto_ptr logger_; + std::unique_ptr logger_; }; class GeneratorsRepo : public CodecsRepo {}; diff --git a/tools/src/kingsoft.cpp b/tools/src/kingsoft.cpp index 954cd55..21d799e 100644 --- a/tools/src/kingsoft.cpp +++ b/tools/src/kingsoft.cpp @@ -418,7 +418,7 @@ void builddata(gchar *datafilename, glong &wordcount, glong &idxfilesize, glong g_array_free(array,TRUE); g_array_free(array2,TRUE); - gchar command[256]; + gchar command[1024]; sprintf(command, "dictzip %s", dicfilename); int result; result = system(command); diff --git a/tools/src/kingsoft2.cpp b/tools/src/kingsoft2.cpp index 5dbbc26..3301366 100644 --- a/tools/src/kingsoft2.cpp +++ b/tools/src/kingsoft2.cpp @@ -441,7 +441,7 @@ void builddata(gchar *datafilename, glong &wordcount, glong &idxfilesize, glong g_array_free(array,TRUE); g_array_free(array2,TRUE); - gchar command[256]; + gchar command[1024]; sprintf(command, "dictzip %s", dicfilename); int result; result = system(command); diff --git a/tools/src/lib_stardict_bin2text.cpp b/tools/src/lib_stardict_bin2text.cpp index f932833..5ca2a55 100644 --- a/tools/src/lib_stardict_bin2text.cpp +++ b/tools/src/lib_stardict_bin2text.cpp @@ -358,7 +358,7 @@ std::string textual_dict_gen_t::get_chunk_file_name(size_t chunk_num) const { const std::string& filename = xmlfilenamemain; std::string basefilename, ext; - std::string::size_type pos = filename.find_last_of("."G_DIR_SEPARATOR_S); + std::string::size_type pos = filename.find_last_of("." G_DIR_SEPARATOR_S); if(pos != std::string::npos && filename[pos] == '.') { basefilename = filename.substr(0, pos); ext = filename.substr(pos); diff --git a/tools/src/mova.cpp b/tools/src/mova.cpp index cacc5eb..9a66669 100644 --- a/tools/src/mova.cpp +++ b/tools/src/mova.cpp @@ -135,7 +135,7 @@ void convert(char *filename) pp = worditem.definition; if ((pp1 = strstr(pp, "2>"))) { definition.clear(); - static char number_str[4]; + static char number_str[256]; static char tmp_char; for (int i=3; i<= 121+1; i++) { tmp_char = *pp1; diff --git a/tools/src/olddic2newdic.cpp b/tools/src/olddic2newdic.cpp index c635ec3..7d80446 100644 --- a/tools/src/olddic2newdic.cpp +++ b/tools/src/olddic2newdic.cpp @@ -165,7 +165,7 @@ void convert(char *filename,char *idxheadfilename) //as now all old stardict dictionaries use these two feature. FILE *idxfile,*dicfile; - gchar str[256],basename[256]; + gchar str[1024],basename[256]; strcpy(basename,idxheadfilename); basename[strlen(idxheadfilename)-8]='\0'; diff --git a/tools/src/parser.h b/tools/src/parser.h index a2f4c64..5baf07c 100644 --- a/tools/src/parser.h +++ b/tools/src/parser.h @@ -102,10 +102,10 @@ class ParserBase { dict_ops_ = std_dict_ops_.get(); } protected: - std::auto_ptr std_dict_ops_; + std::unique_ptr std_dict_ops_; IParserDictOps *dict_ops_; StringMap parser_options_; - std::auto_ptr logger_; + std::unique_ptr logger_; virtual int parse(const std::string& url); diff --git a/tools/src/rucn.cpp b/tools/src/rucn.cpp index 8e930d5..1bf95d5 100644 --- a/tools/src/rucn.cpp +++ b/tools/src/rucn.cpp @@ -191,7 +191,7 @@ void convert(const char *filename, print_info_t print_info) g_free(str); #ifndef _WIN32 - gchar command[256]; + gchar command[1024]; sprintf(command, "dictzip %s", dicfilename); int result; result = system(command); diff --git a/tools/src/stardict-editor.cpp b/tools/src/stardict-editor.cpp index 7109595..ba80e24 100644 --- a/tools/src/stardict-editor.cpp +++ b/tools/src/stardict-editor.cpp @@ -136,9 +136,9 @@ static void convert_dslfile(const std::string &infile) else cur_workdir = "."; - std::auto_ptr parser(ParsersRepo::get_instance().create_codec("dsl")); + std::unique_ptr parser(ParsersRepo::get_instance().create_codec("dsl")); g_assert(parser.get()); - std::auto_ptr generator(GeneratorsRepo::get_instance().create_codec("stardict")); + std::unique_ptr generator(GeneratorsRepo::get_instance().create_codec("stardict")); g_assert(generator.get()); Connector connector(*generator, cur_workdir); @@ -146,7 +146,7 @@ static void convert_dslfile(const std::string &infile) generator->reset_ops(&connector); StringList parser_options; - + parser->run(parser_options, infile); } diff --git a/tools/src/stardict_dict_update.cpp b/tools/src/stardict_dict_update.cpp index 8a49410..edded1a 100644 --- a/tools/src/stardict_dict_update.cpp +++ b/tools/src/stardict_dict_update.cpp @@ -77,7 +77,7 @@ void convert_idxfile(gchar *idxfilename) unlink(fullfilename); - gchar newidxfilename[256]; + gchar newidxfilename[1024]; sprintf(newidxfilename, "%s.idx", basefilename); FILE *file; if (!(file = fopen (newidxfilename, "wb"))) { diff --git a/tools/src/wikipedia.cpp b/tools/src/wikipedia.cpp index 6d8dbd2..1a24b24 100644 --- a/tools/src/wikipedia.cpp +++ b/tools/src/wikipedia.cpp @@ -207,7 +207,7 @@ void convert(char *filename, char *wikiname, char *wikidate) g_print("%s wordcount: %d\n", filename, array->len); g_array_free(array,TRUE); - gchar command[256]; + gchar command[1024]; sprintf(command, "dictzip %s", dicfilename); int result; result = system(command);