|
@@ -151,10 +151,9 @@ edit_load_file_fast (WEdit *edit, const char *filename)
|
|
|
buf2 = edit->curs2 >> S_EDIT_BUF_SIZE;
|
|
|
|
|
|
if ((file = mc_open (filename, O_RDONLY | O_BINARY)) == -1) {
|
|
|
- GString *errmsg = g_string_new(NULL);
|
|
|
- g_string_sprintf(errmsg, _(" Cannot open %s for reading "), filename);
|
|
|
- edit_error_dialog (_("Error"), get_sys_error (errmsg->str));
|
|
|
- g_string_free (errmsg, TRUE);
|
|
|
+ char errmsg[8192];
|
|
|
+ snprintf(errmsg, sizeof(errmsg), _(" Cannot open %s for reading "), filename);
|
|
|
+ edit_error_dialog (_("Error"), get_sys_error (errmsg));
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -273,18 +272,16 @@ edit_insert_file (WEdit *edit, const char *filename)
|
|
|
edit_insert_stream (edit, f);
|
|
|
edit_cursor_move (edit, current - edit->curs1);
|
|
|
if (pclose (f) > 0) {
|
|
|
- GString *errmsg = g_string_new (NULL);
|
|
|
- g_string_sprintf (errmsg, _(" Error reading from pipe: %s "), p);
|
|
|
- edit_error_dialog (_("Error"), errmsg->str);
|
|
|
- g_string_free (errmsg, TRUE);
|
|
|
+ char errmsg[8192];
|
|
|
+ snprintf(errmsg, sizeof(errmsg), _(" Error reading from pipe: %s "), p);
|
|
|
+ edit_error_dialog (_("Error"), errmsg);
|
|
|
g_free (p);
|
|
|
return 0;
|
|
|
}
|
|
|
} else {
|
|
|
- GString *errmsg = g_string_new (NULL);
|
|
|
- g_string_sprintf (errmsg, _(" Cannot open pipe for reading: %s "), p);
|
|
|
- edit_error_dialog (_("Error"), errmsg->str);
|
|
|
- g_string_free (errmsg, TRUE);
|
|
|
+ char errmsg[8192];
|
|
|
+ snprintf(errmsg, sizeof(errmsg), _(" Cannot open pipe for reading: %s "), p);
|
|
|
+ edit_error_dialog (_("Error"), errmsg);
|
|
|
g_free (p);
|
|
|
return 0;
|
|
|
}
|
|
@@ -314,7 +311,8 @@ static int
|
|
|
check_file_access (WEdit *edit, const char *filename, struct stat *st)
|
|
|
{
|
|
|
int file;
|
|
|
- GString *errmsg = (GString *) 0;
|
|
|
+ char errmsg[8192];
|
|
|
+ errmsg[0] = 0;
|
|
|
|
|
|
/* Try opening an existing file */
|
|
|
file = mc_open (filename, O_NONBLOCK | O_RDONLY | O_BINARY, 0666);
|
|
@@ -329,8 +327,7 @@ check_file_access (WEdit *edit, const char *filename, struct stat *st)
|
|
|
O_NONBLOCK | O_RDONLY | O_BINARY | O_CREAT | O_EXCL,
|
|
|
0666);
|
|
|
if (file < 0) {
|
|
|
- g_string_sprintf (errmsg = g_string_new (NULL),
|
|
|
- _(" Cannot open %s for reading "), filename);
|
|
|
+ snprintf (errmsg, sizeof(errmsg), _(" Cannot open %s for reading "), filename);
|
|
|
goto cleanup;
|
|
|
} else {
|
|
|
/* New file, delete it if it's not modified or saved */
|
|
@@ -340,15 +337,13 @@ check_file_access (WEdit *edit, const char *filename, struct stat *st)
|
|
|
|
|
|
/* Check what we have opened */
|
|
|
if (mc_fstat (file, st) < 0) {
|
|
|
- g_string_sprintf (errmsg = g_string_new (NULL),
|
|
|
- _(" Cannot get size/permissions for %s "), filename);
|
|
|
+ snprintf (errmsg, sizeof(errmsg), _(" Cannot get size/permissions for %s "), filename);
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
|
/* We want to open regular files only */
|
|
|
if (!S_ISREG (st->st_mode)) {
|
|
|
- g_string_sprintf (errmsg = g_string_new (NULL),
|
|
|
- _(" %s is not a regular file "), filename);
|
|
|
+ snprintf (errmsg, sizeof(errmsg), _(" %s is not a regular file "), filename);
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -361,16 +356,14 @@ check_file_access (WEdit *edit, const char *filename, struct stat *st)
|
|
|
}
|
|
|
|
|
|
if (st->st_size >= SIZE_LIMIT) {
|
|
|
- g_string_sprintf (errmsg = g_string_new (NULL),
|
|
|
- _(" File %s is too large "), filename);
|
|
|
+ snprintf (errmsg, sizeof(errmsg), _(" File %s is too large "), filename);
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
|
cleanup:
|
|
|
(void) mc_close (file);
|
|
|
- if (errmsg) {
|
|
|
- edit_error_dialog (_("Error"), errmsg->str);
|
|
|
- g_string_free (errmsg, TRUE);
|
|
|
+ if (errmsg[0]) {
|
|
|
+ edit_error_dialog (_("Error"), errmsg);
|
|
|
return 1;
|
|
|
}
|
|
|
return 0;
|