Commit a016be869bd76b227b1783f383916e0c55c06b2c
Exists in
master
and in
5 other branches
Merge branch 'master' of softwarepublico.gov.br:pw3270/principal
Showing
7 changed files
with
104 additions
and
60 deletions
Show diff stats
locale/pt_BR.po
| ... | ... | @@ -6,7 +6,7 @@ msgstr "" |
| 6 | 6 | "Project-Id-Version: pw3270 5.0\n" |
| 7 | 7 | "Report-Msgid-Bugs-To: \n" |
| 8 | 8 | "POT-Creation-Date: 2017-02-02 16:38-0200\n" |
| 9 | -"PO-Revision-Date: 2017-02-02 17:52-0200\n" | |
| 9 | +"PO-Revision-Date: 2017-02-15 17:08-0200\n" | |
| 10 | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
| 11 | 11 | "Language-Team: Português <perry.werneck@gmail.com>\n" |
| 12 | 12 | "Language: pt_BR\n" |
| ... | ... | @@ -874,16 +874,16 @@ msgid "" |
| 874 | 874 | "Following the convention for ASCII text files, CR/LF pairs are used to " |
| 875 | 875 | "terminate records in the PC file, and a CTRL-Z (x'1A') marks the end of file." |
| 876 | 876 | msgstr "" |
| 877 | -"Seguindo a convenção para arquivos texto ASCII, a sequência <CR> <LF> é " | |
| 878 | -"usada para terminar registros no arquivo do PC e um CTRL-| (x'1A') marca o " | |
| 879 | -"final do arquivo." | |
| 877 | +"Seguindo a convenção para arquivos texto ASCII, a sequência CR/LF é usada " | |
| 878 | +"para terminar registros no arquivo do PC e um CTRL-| (x'1A') marca o final " | |
| 879 | +"do arquivo." | |
| 880 | 880 | |
| 881 | 881 | #: tables.c:53 |
| 882 | 882 | msgid "" |
| 883 | 883 | "Following the convention for ASCII text files, LF is used to terminate " |
| 884 | 884 | "records in the PC file." |
| 885 | 885 | msgstr "" |
| 886 | -"Seguindo a convenção para arquivos texto ASCII, <LF> é usado para terminar " | |
| 886 | +"Seguindo a convenção para arquivos texto ASCII, LF é usado para terminar " | |
| 887 | 887 | "registros no arquivo do PC." |
| 888 | 888 | |
| 889 | 889 | #: security.c:146 | ... | ... |
src/pw3270/v3270ft/ftdialog.cbp
| ... | ... | @@ -33,7 +33,8 @@ |
| 33 | 33 | <Compiler> |
| 34 | 34 | <Add option="-Wall" /> |
| 35 | 35 | <Add option="`pkg-config --cflags gtk+-3.0 lib3270`" /> |
| 36 | - <Add directory="../include" /> | |
| 36 | + <Add directory="../../include" /> | |
| 37 | + <Add directory="../../include/pw3270" /> | |
| 37 | 38 | </Compiler> |
| 38 | 39 | <Linker> |
| 39 | 40 | <Add option="`pkg-config --libs gtk+-3.0 lib3270`" /> |
| ... | ... | @@ -45,27 +46,26 @@ |
| 45 | 46 | <Unit filename="../include/v3270.h" /> |
| 46 | 47 | <Unit filename="../include/v3270ft.h" /> |
| 47 | 48 | <Unit filename="../include/v3270ftprogress.h" /> |
| 48 | - <Unit filename="../v3270/actions.c"> | |
| 49 | - <Option compilerVar="CC" /> | |
| 50 | - </Unit> | |
| 51 | - <Unit filename="../v3270/colors.c"> | |
| 52 | - <Option compilerVar="CC" /> | |
| 53 | - </Unit> | |
| 54 | - <Unit filename="../v3270/cursor.c"> | |
| 49 | + <Unit filename="../v3270/accessible.c"> | |
| 55 | 50 | <Option compilerVar="CC" /> |
| 56 | 51 | </Unit> |
| 52 | + <Unit filename="../v3270/accessible.h" /> | |
| 57 | 53 | <Unit filename="../v3270/draw.c"> |
| 58 | 54 | <Option compilerVar="CC" /> |
| 59 | 55 | </Unit> |
| 60 | - <Unit filename="../v3270/font.c"> | |
| 56 | + <Unit filename="../v3270/hostselect.c"> | |
| 61 | 57 | <Option compilerVar="CC" /> |
| 62 | 58 | </Unit> |
| 59 | + <Unit filename="../v3270/hostselect.h" /> | |
| 63 | 60 | <Unit filename="../v3270/iocallback.c"> |
| 64 | 61 | <Option compilerVar="CC" /> |
| 65 | 62 | </Unit> |
| 66 | 63 | <Unit filename="../v3270/keyboard.c"> |
| 67 | 64 | <Option compilerVar="CC" /> |
| 68 | 65 | </Unit> |
| 66 | + <Unit filename="../v3270/macros.c"> | |
| 67 | + <Option compilerVar="CC" /> | |
| 68 | + </Unit> | |
| 69 | 69 | <Unit filename="../v3270/marshal.c"> |
| 70 | 70 | <Option compilerVar="CC" /> |
| 71 | 71 | </Unit> |
| ... | ... | @@ -80,13 +80,13 @@ |
| 80 | 80 | <Unit filename="../v3270/properties.c"> |
| 81 | 81 | <Option compilerVar="CC" /> |
| 82 | 82 | </Unit> |
| 83 | - <Unit filename="../v3270/signals.c"> | |
| 83 | + <Unit filename="../v3270/security.c"> | |
| 84 | 84 | <Option compilerVar="CC" /> |
| 85 | 85 | </Unit> |
| 86 | - <Unit filename="../v3270/text.c"> | |
| 86 | + <Unit filename="../v3270/selection.c"> | |
| 87 | 87 | <Option compilerVar="CC" /> |
| 88 | 88 | </Unit> |
| 89 | - <Unit filename="../v3270/v3270.c"> | |
| 89 | + <Unit filename="../v3270/widget.c"> | |
| 90 | 90 | <Option compilerVar="CC" /> |
| 91 | 91 | </Unit> |
| 92 | 92 | <Unit filename="filelist.c"> | ... | ... |
src/pw3270/v3270ft/load.c
| ... | ... | @@ -38,6 +38,29 @@ |
| 38 | 38 | |
| 39 | 39 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 40 | 40 | |
| 41 | +static LIB3270_FT_OPTION getFlagByName(const gchar *option, const char *optval) { | |
| 42 | + | |
| 43 | + LIB3270_FT_OPTION rc = 0; | |
| 44 | + int f; | |
| 45 | + gchar * key = g_strconcat(option,".",optval,NULL); | |
| 46 | + | |
| 47 | + for(f=0;f<NUM_OPTIONS_WIDGETS;f++) { | |
| 48 | + | |
| 49 | +// debug("%u %s",f,ft_option[f].name); | |
| 50 | + | |
| 51 | + if(!g_ascii_strcasecmp(key,ft_option[f].name)) { | |
| 52 | + rc = ft_option[f].opt; | |
| 53 | + debug("%s=%08lx",key,(unsigned int) rc); | |
| 54 | + break; | |
| 55 | + } | |
| 56 | + | |
| 57 | + } | |
| 58 | + | |
| 59 | + g_free(key); | |
| 60 | + | |
| 61 | + return rc; | |
| 62 | +} | |
| 63 | + | |
| 41 | 64 | static void entry_start(GMarkupParseContext *context, const gchar *element_name, const gchar **names,const gchar **values, struct v3270ft_entry *info, GError **error) { |
| 42 | 65 | |
| 43 | 66 | int f; |
| ... | ... | @@ -72,8 +95,8 @@ static void entry_start(GMarkupParseContext *context, const gchar *element_name, |
| 72 | 95 | |
| 73 | 96 | } if(!g_ascii_strcasecmp(element_name,"option")) { |
| 74 | 97 | |
| 75 | - const gchar *option; | |
| 76 | - const gchar *optval; | |
| 98 | + const gchar *option = NULL; | |
| 99 | + const gchar *optval = NULL; | |
| 77 | 100 | |
| 78 | 101 | if(!g_markup_collect_attributes( |
| 79 | 102 | element_name,names,values,error, |
| ... | ... | @@ -86,43 +109,39 @@ static void entry_start(GMarkupParseContext *context, const gchar *element_name, |
| 86 | 109 | |
| 87 | 110 | } |
| 88 | 111 | |
| 89 | - // Check for options | |
| 90 | - for(f=0;f<NUM_OPTIONS_WIDGETS;f++) { | |
| 112 | + debug("%s=%s",option,optval); | |
| 91 | 113 | |
| 92 | - char *name = g_strdup(ft_option[f].name); | |
| 93 | - char *value = strchr(name,'.'); | |
| 114 | + if(!g_ascii_strcasecmp(option,"recfm")) { | |
| 94 | 115 | |
| 95 | - if(value) { | |
| 96 | - *(value++) = 0; | |
| 97 | - } | |
| 116 | + // Recfm, limpo todas as flags correspondentes e remonto | |
| 117 | + info->options &= ~(LIB3270_FT_RECORD_FORMAT_DEFAULT|LIB3270_FT_RECORD_FORMAT_FIXED|LIB3270_FT_RECORD_FORMAT_VARIABLE|LIB3270_FT_RECORD_FORMAT_UNDEFINED); // Reseta flags | |
| 118 | + info->options |= getFlagByName(option,optval); | |
| 119 | + | |
| 120 | + } else if(!g_ascii_strcasecmp(option,"units")) { | |
| 98 | 121 | |
| 99 | - if( !g_ascii_strcasecmp(option,name)) { | |
| 122 | + // Units, limpo todas as flags correspondentes e remonto | |
| 123 | + info->options &= ~(LIB3270_FT_ALLOCATION_UNITS_DEFAULT|LIB3270_FT_ALLOCATION_UNITS_TRACKS|LIB3270_FT_ALLOCATION_UNITS_CYLINDERS|LIB3270_FT_ALLOCATION_UNITS_AVBLOCK); | |
| 124 | + info->options |= getFlagByName(option,optval); | |
| 100 | 125 | |
| 101 | - if(!value) { | |
| 126 | + } else { | |
| 102 | 127 | |
| 103 | - // Opção é boolean | |
| 128 | + for(f=0;f<NUM_OPTIONS_WIDGETS;f++) { | |
| 104 | 129 | |
| 105 | -// debug("%s=%s",option,optval); | |
| 130 | + if(!g_ascii_strcasecmp(option,ft_option[f].name)) { | |
| 106 | 131 | |
| 107 | - if( toupper(*optval) == 'Y' || toupper(*optval) == 'S' || *optval == '1') { | |
| 132 | + if(!g_ascii_strcasecmp(optval,"yes")) { | |
| 108 | 133 | info->options |= ft_option[f].opt; |
| 134 | + } else if(!g_ascii_strcasecmp(optval,"no")) { | |
| 135 | + info->options &= ~ft_option[f].opt; | |
| 136 | + } else { | |
| 137 | + g_warning("Unexpected value for %s: %s",option,optval); | |
| 109 | 138 | } |
| 110 | - | |
| 111 | - } else if(!g_ascii_strcasecmp(value,optval)) { | |
| 112 | - | |
| 113 | - // Opção tem valor | |
| 114 | -// debug("%s=%s",option,optval); | |
| 115 | - | |
| 116 | - info->options |= ft_option[f].opt; | |
| 117 | - | |
| 139 | + break; | |
| 118 | 140 | } |
| 119 | 141 | |
| 120 | - | |
| 121 | - g_free(name); | |
| 122 | - return; | |
| 123 | 142 | } |
| 124 | 143 | |
| 125 | - g_free(name); | |
| 144 | + | |
| 126 | 145 | } |
| 127 | 146 | |
| 128 | 147 | // Check for FT values |
| ... | ... | @@ -137,7 +156,6 @@ static void entry_start(GMarkupParseContext *context, const gchar *element_name, |
| 137 | 156 | } |
| 138 | 157 | } |
| 139 | 158 | |
| 140 | - | |
| 141 | 159 | } |
| 142 | 160 | |
| 143 | 161 | ... | ... |
src/pw3270/v3270ft/private.h
src/pw3270/v3270ft/save.c
| ... | ... | @@ -30,12 +30,30 @@ |
| 30 | 30 | |
| 31 | 31 | #include "private.h" |
| 32 | 32 | |
| 33 | - | |
| 34 | 33 | /*--[ Statics ]--------------------------------------------------------------------------------------*/ |
| 35 | 34 | |
| 36 | 35 | |
| 37 | 36 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 38 | 37 | |
| 38 | +static const gchar * getNameByFlag(LIB3270_FT_OPTION opt, LIB3270_FT_OPTION mask) { | |
| 39 | + | |
| 40 | + const gchar * rc = "Default"; | |
| 41 | + const gchar * ptr; | |
| 42 | + int f; | |
| 43 | + | |
| 44 | + opt &= mask; | |
| 45 | + | |
| 46 | + for(f=0;f<NUM_OPTIONS_WIDGETS;f++) { | |
| 47 | + | |
| 48 | + if(opt == ft_option[f].opt) { | |
| 49 | + ptr = strchr(ft_option[f].name,'.'); | |
| 50 | + rc = ptr ? ptr+1 : ft_option[f].name; | |
| 51 | + } | |
| 52 | + } | |
| 53 | + | |
| 54 | + return rc; | |
| 55 | +} | |
| 56 | + | |
| 39 | 57 | void get_item(struct v3270ft_entry *entry, GString *str) { |
| 40 | 58 | |
| 41 | 59 | int f; |
| ... | ... | @@ -44,22 +62,31 @@ |
| 44 | 62 | g_string_append_printf(str,"\t\t<file type=\"%s\" path=\"%s\"/>\n","local",entry->local); |
| 45 | 63 | g_string_append_printf(str,"\t\t<file type=\"%s\" path=\"%s\"/>\n","remote",entry->remote); |
| 46 | 64 | |
| 47 | - for(f=0;f<NUM_OPTIONS_WIDGETS;f++) { | |
| 65 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 66 | + "ascii", entry->options & LIB3270_FT_OPTION_ASCII ? "yes" : "no"); | |
| 48 | 67 | |
| 49 | - if( (entry->options & ft_option[f].opt) == ft_option[f].opt) { | |
| 50 | - char *name = g_strdup(ft_option[f].name); | |
| 51 | - char *value = strchr(name,'.'); | |
| 68 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 69 | + "crlf", entry->options & LIB3270_FT_OPTION_CRLF ? "yes" : "no"); | |
| 52 | 70 | |
| 53 | - if(value) | |
| 54 | - *(value++) = 0; | |
| 55 | - else | |
| 56 | - value = "yes"; | |
| 71 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 72 | + "append", entry->options & LIB3270_FT_OPTION_APPEND ? "yes" : "no"); | |
| 57 | 73 | |
| 58 | - g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n",name,value); | |
| 74 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 75 | + "remap", entry->options & LIB3270_FT_OPTION_REMAP ? "yes" : "no"); | |
| 59 | 76 | |
| 60 | - g_free(name); | |
| 61 | - } | |
| 62 | - } | |
| 77 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 78 | + "recfm", getNameByFlag(entry->options, | |
| 79 | + LIB3270_FT_RECORD_FORMAT_DEFAULT | |
| 80 | + |LIB3270_FT_RECORD_FORMAT_FIXED | |
| 81 | + |LIB3270_FT_RECORD_FORMAT_VARIABLE | |
| 82 | + |LIB3270_FT_RECORD_FORMAT_UNDEFINED)); | |
| 83 | + | |
| 84 | + g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%s\"/>\n", | |
| 85 | + "units", getNameByFlag(entry->options, | |
| 86 | + LIB3270_FT_ALLOCATION_UNITS_DEFAULT | |
| 87 | + |LIB3270_FT_ALLOCATION_UNITS_TRACKS | |
| 88 | + |LIB3270_FT_ALLOCATION_UNITS_CYLINDERS | |
| 89 | + |LIB3270_FT_ALLOCATION_UNITS_AVBLOCK)); | |
| 63 | 90 | |
| 64 | 91 | for(f=0;f<LIB3270_FT_VALUE_COUNT;f++) { |
| 65 | 92 | g_string_append_printf(str,"\t\t<option name=\"%s\" value=\"%u\"/>\n",ft_value[f].name,entry->value[f]); | ... | ... |
src/pw3270/v3270ft/tables.c
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | |
| 35 | 35 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
| 36 | 36 | |
| 37 | -const struct v3270ft_option ft_option[] = { | |
| 37 | +const struct v3270ft_option ft_option[NUM_OPTIONS_WIDGETS] = { | |
| 38 | 38 | |
| 39 | 39 | // Transfer options |
| 40 | 40 | { | ... | ... |
src/pw3270/v3270ft/testprogram.c
| ... | ... | @@ -97,7 +97,7 @@ static void activate(GtkApplication* app, gpointer user_data) { |
| 97 | 97 | g_key_file_load_from_dirs(conf,"pw3270.conf",(const gchar **) search, &filename,G_KEY_FILE_NONE,NULL); |
| 98 | 98 | g_message("Configuration from %s",filename); |
| 99 | 99 | |
| 100 | - v3270_set_from_keyfile(terminal,conf); | |
| 100 | + // v3270_set_from_keyfile(terminal,conf); | |
| 101 | 101 | |
| 102 | 102 | g_key_file_unref(conf); |
| 103 | 103 | ... | ... |