Commit 18e845d5c3a43a0f66531e535421571da402f83f

Authored by perry.werneck@gmail.com
1 parent c483b7ce

Ajustes para compilar em windows

src/include/pw3270/ipcpackets.h
... ... @@ -62,6 +62,8 @@
62 62 HLLAPI_PACKET_ASC2EBC,
63 63 HLLAPI_PACKET_EBC2ASC,
64 64  
  65 + HLLAPI_PACKET_FILE_TRANSFER,
  66 +
65 67 HLLAPI_PACKET_INVALID
66 68  
67 69 } HLLAPI_PACKET;
... ... @@ -175,6 +177,17 @@ struct hllapi_packet_set_text
175 177 char text[1];
176 178 };
177 179  
  180 +struct hllapi_packet_file_transfer
  181 +{
  182 + unsigned char packet_id;
  183 + unsigned int options;
  184 + int lrecl;
  185 + int blksize;
  186 + int primspace;
  187 + int secspace;
  188 + int dft;
  189 + char text[1];
  190 +};
178 191  
179 192 #pragma pack()
180 193  
... ...
src/plugins/hllapi/pluginmain.c
... ... @@ -172,6 +172,22 @@
172 172 WriteFile(source->hPipe,&pkt,wrote,&wrote,NULL);
173 173 }
174 174  
  175 + static int do_file_transfer(struct hllapi_packet_file_transfer * source)
  176 + {
  177 + const gchar * local = (const char *) source->text;
  178 + const gchar * remote = (const char *) (local+strlen(local)+1);
  179 +
  180 + return v3270_transfer_file( v3270_get_default_widget(),
  181 + source->options,
  182 + local,
  183 + remote,
  184 + source->lrecl,
  185 + source->blksize,
  186 + source->primspace,
  187 + source->secspace,
  188 + source->dft );
  189 + }
  190 +
175 191 static void process_input(pipe_source *source, DWORD cbRead)
176 192 {
177 193  
... ... @@ -327,6 +343,10 @@
327 343 ));
328 344 break;
329 345  
  346 + case HLLAPI_PACKET_FILE_TRANSFER:
  347 + send_result(source,do_file_transfer((struct hllapi_packet_file_transfer *) source));
  348 + break;
  349 +
330 350 case HLLAPI_PACKET_GET_HOST_CHARSET:
331 351 send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle()));
332 352 break;
... ...
src/pw3270/filetransfer.c
... ... @@ -173,28 +173,28 @@ static void ft_dialog_save(GtkWidget *widget, const gchar *name)
173 173 // Save extension based file settings
174 174 HKEY hKey;
175 175 DWORD disp;
176   - gchar * path = g_strdup_printf("%s\\%s\\%s\\%s",registry_path,g_get_application_name(),name,ext+1);
  176 + gchar * path = g_strdup_printf("%s\\%s\\%s\\%s","SOFTWARE",g_get_application_name(),name,ext+1);
177 177  
178 178 if(RegCreateKeyEx(HKEY_CURRENT_USER,path,0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hKey,&disp) == ERROR_SUCCESS)
179 179 {
180 180 DWORD value;
181 181  
182   - value = (DWORD) v3270_ft_dialog_get_options(widget));
  182 + value = (DWORD) v3270_ft_dialog_get_options(widget);
183 183 RegSetValueEx(hKey, "options", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
184 184  
185   - value = (DWORD) v3270_ft_dialog_get_dft_buffer_size(widget));
  185 + value = (DWORD) v3270_ft_dialog_get_dft_buffer_size(widget);
186 186 RegSetValueEx(hKey, "dft", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
187 187  
188   - value = (DWORD) v3270_ft_dialog_get_record_length(widget));
  188 + value = (DWORD) v3270_ft_dialog_get_record_length(widget);
189 189 RegSetValueEx(hKey, "reclen", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
190 190  
191   - value = (DWORD) v3270_ft_dialog_get_block_size(widget));
  191 + value = (DWORD) v3270_ft_dialog_get_block_size(widget);
192 192 RegSetValueEx(hKey, "blksize", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
193 193  
194   - value = (DWORD) v3270_ft_dialog_get_primary_space(widget));
  194 + value = (DWORD) v3270_ft_dialog_get_primary_space(widget);
195 195 RegSetValueEx(hKey, "primspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
196 196  
197   - value = (DWORD) v3270_ft_dialog_get_secondary_space(widget));
  197 + value = (DWORD) v3270_ft_dialog_get_secondary_space(widget);
198 198 RegSetValueEx(hKey, "secspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
199 199  
200 200 RegCloseKey(hKey);
... ...
src/pw3270/ft/ftdialog.c
... ... @@ -286,6 +286,8 @@ static void test_path_exists(GtkEditable *editable, v3270FTD *dialog)
286 286 g_free(dirname);
287 287  
288 288 }
  289 +
  290 + gtk_widget_set_sensitive(dialog->ready,dialog->local && dialog->remote);
289 291 }
290 292  
291 293 GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options)
... ...