|
9 | 9 | #include "config.h" |
10 | 10 |
|
11 | 11 | #include "common/sbapp.h" |
| 12 | +#include "common/fs_socket_client.h" |
12 | 13 | #include "ui/textedit.h" |
13 | 14 | #include "platform/sdl/runtime.h" |
14 | 15 | #include "platform/sdl/settings.h" |
@@ -64,23 +65,24 @@ void showRecentFiles(TextEditHelpWidget *helpWidget, String &loadPath) { |
64 | 65 | } |
65 | 66 |
|
66 | 67 | void exportBuffer(AnsiWidget *out, const char *text, String &dest, String &token) { |
67 | | - int handle = 1; |
68 | 68 | char buffer[PATH_MAX]; |
| 69 | + dev_file_t f; |
| 70 | + memset(&f, 0, sizeof(dev_file_t)); |
69 | 71 |
|
70 | | - sprintf(buffer, "SOCL:%s\n", dest.c_str()); |
71 | | - if (dev_fopen(handle, buffer, DEV_FILE_OUTPUT)) { |
| 72 | + sprintf(f.name, "SOCL:%s\n", dest.c_str()); |
| 73 | + if (dest.indexOf(':', 0) != -1 && sockcl_open(&f)) { |
72 | 74 | sprintf(buffer, "# %s\n", token.c_str()); |
73 | | - dev_fwrite(handle, (byte *)buffer, strlen(buffer)); |
74 | | - if (!dev_fwrite(handle, (byte *)text, strlen(text))) { |
| 75 | + sockcl_write(&f, (byte *)buffer, strlen(buffer)); |
| 76 | + if (!sockcl_write(&f, (byte *)text, strlen(text))) { |
75 | 77 | sprintf(buffer, "Failed to write: %s", dest.c_str()); |
76 | 78 | } else { |
77 | 79 | sprintf(buffer, "Exported file to %s", dest.c_str()); |
78 | 80 | } |
| 81 | + sockcl_close(&f); |
79 | 82 | } else { |
80 | 83 | sprintf(buffer, "Failed to open: %s", dest.c_str()); |
81 | 84 | } |
82 | 85 | out->setStatus(buffer); |
83 | | - dev_fclose(handle); |
84 | 86 | } |
85 | 87 |
|
86 | 88 | void System::editSource(String &loadPath) { |
@@ -193,6 +195,12 @@ void System::editSource(String &loadPath) { |
193 | 195 | redraw = false; |
194 | 196 | onlineHelp((Runtime *)this, editWidget); |
195 | 197 | break; |
| 198 | + case SB_KEY_F(4): |
| 199 | + if (editWidget->getTextLength() && g_exportAddr.length() && g_exportToken.length()) { |
| 200 | + exportBuffer(_output, editWidget->getText(), g_exportAddr, g_exportToken); |
| 201 | + break; |
| 202 | + } |
| 203 | + // else fallthru to F3 handler |
196 | 204 | case SB_KEY_F(3): |
197 | 205 | if (editWidget->getTextLength()) { |
198 | 206 | saveFile(editWidget, loadPath); |
@@ -313,8 +321,6 @@ void System::editSource(String &loadPath) { |
313 | 321 | _output->setStatus("Enter token. Esc=Close"); |
314 | 322 | break; |
315 | 323 | case kExportToken: |
316 | | - _output->setStatus("Sending ..."); |
317 | | - _output->redraw(); |
318 | 324 | g_exportToken = helpWidget->getText(); |
319 | 325 | inputMode = kInit; |
320 | 326 | widget = editWidget; |
|
0 commit comments