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,6 +62,8 @@
62 HLLAPI_PACKET_ASC2EBC, 62 HLLAPI_PACKET_ASC2EBC,
63 HLLAPI_PACKET_EBC2ASC, 63 HLLAPI_PACKET_EBC2ASC,
64 64
  65 + HLLAPI_PACKET_FILE_TRANSFER,
  66 +
65 HLLAPI_PACKET_INVALID 67 HLLAPI_PACKET_INVALID
66 68
67 } HLLAPI_PACKET; 69 } HLLAPI_PACKET;
@@ -175,6 +177,17 @@ struct hllapi_packet_set_text @@ -175,6 +177,17 @@ struct hllapi_packet_set_text
175 char text[1]; 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 #pragma pack() 192 #pragma pack()
180 193
src/plugins/hllapi/pluginmain.c
@@ -172,6 +172,22 @@ @@ -172,6 +172,22 @@
172 WriteFile(source->hPipe,&pkt,wrote,&wrote,NULL); 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 static void process_input(pipe_source *source, DWORD cbRead) 191 static void process_input(pipe_source *source, DWORD cbRead)
176 { 192 {
177 193
@@ -327,6 +343,10 @@ @@ -327,6 +343,10 @@
327 )); 343 ));
328 break; 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 case HLLAPI_PACKET_GET_HOST_CHARSET: 350 case HLLAPI_PACKET_GET_HOST_CHARSET:
331 send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle())); 351 send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle()));
332 break; 352 break;
src/pw3270/filetransfer.c
@@ -173,28 +173,28 @@ static void ft_dialog_save(GtkWidget *widget, const gchar *name) @@ -173,28 +173,28 @@ static void ft_dialog_save(GtkWidget *widget, const gchar *name)
173 // Save extension based file settings 173 // Save extension based file settings
174 HKEY hKey; 174 HKEY hKey;
175 DWORD disp; 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 if(RegCreateKeyEx(HKEY_CURRENT_USER,path,0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hKey,&disp) == ERROR_SUCCESS) 178 if(RegCreateKeyEx(HKEY_CURRENT_USER,path,0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hKey,&disp) == ERROR_SUCCESS)
179 { 179 {
180 DWORD value; 180 DWORD value;
181 181
182 - value = (DWORD) v3270_ft_dialog_get_options(widget)); 182 + value = (DWORD) v3270_ft_dialog_get_options(widget);
183 RegSetValueEx(hKey, "options", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 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 RegSetValueEx(hKey, "dft", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 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 RegSetValueEx(hKey, "reclen", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 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 RegSetValueEx(hKey, "blksize", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 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 RegSetValueEx(hKey, "primspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 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 RegSetValueEx(hKey, "secspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value)); 198 RegSetValueEx(hKey, "secspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
199 199
200 RegCloseKey(hKey); 200 RegCloseKey(hKey);
src/pw3270/ft/ftdialog.c
@@ -286,6 +286,8 @@ static void test_path_exists(GtkEditable *editable, v3270FTD *dialog) @@ -286,6 +286,8 @@ static void test_path_exists(GtkEditable *editable, v3270FTD *dialog)
286 g_free(dirname); 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 GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) 293 GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options)