1
1
Wed Jan 27 03:17:44 1999  Timur Bakeyev <mc@bat.ru>

	* Converted memory managment to Glib. Now we use g_new()/g_malloc()/
	g_strdup()/g_free() routings. Also, copy_strings() replaced by
	g_strconcat(), strcasecmp() -> g_strcasecmp(),and sprintf() by
	g_snprintf().

	* Some sequences of malloc()/sprintf() changed to g_strdup_printf().

	* mad.[ch]: Modified, to work with new GLib's memory managment. Fixed
	a missing #undef for tempnam, which caused dead loop. Add several new
	functions to emulate GLib memory managment.

	*main.c, mad.[ch]: Add a new switch  "-M", which allows to redirect MAD
	messages to the file.

	* util.[ch], utilunix.c: Modified, deleted our variants of strcasecmp()
	and strdup() - we have g_ equivalences. Remove get_full_name() - it is
	similar to concat_dir_and_file(). Some other tricks with g_* functions.

	* global.h: Modified, extended. Now it is main memory mangment include -
	i.e. all inclusions of <stdlib.h>, <malloc.h>, <glib.h>, "fs.h", "mem.h",
	"util.h" and "mad.h" done there. This elimanates problem with proper or-
	der of #include's.

	* All around the source - changed order of #include's, most of them gone
	to global.h (see above), minor changes, like "0" -> NULL in string func-
	tions.
Этот коммит содержится в:
Timur Bakeyev 1999-01-27 01:08:30 +00:00
родитель e57da1f7b3
Коммит a39568367e
55 изменённых файлов: 1231 добавлений и 1313 удалений

Просмотреть файл

@ -1,3 +1,32 @@
Wed Jan 27 03:17:44 1999 Timur Bakeyev <mc@bat.ru>
* Converted memory managment to Glib. Now we use g_new()/g_malloc()/
g_strdup()/g_free() routings. Also, copy_strings() replaced by
g_strconcat(), strcasecmp() -> g_strcasecmp(),and sprintf() by
g_snprintf().
* Some sequences of malloc()/sprintf() changed to g_strdup_printf().
* mad.[ch]: Modified, to work with new GLib's memory managment. Fixed
a missing #undef for tempnam, which caused dead loop. Add several new
functions to emulate GLib memory managment.
*main.c, mad.[ch]: Add a new switch "-M", which allows to redirect MAD
messages to the file.
* util.[ch], utilunix.c: Modified, deleted our variants of strcasecmp()
and strdup() - we have g_ equivalences. Remove get_full_name() - it is
similar to concat_dir_and_file(). Some other tricks with g_* functions.
* global.h: Modified, extended. Now it is main memory mangment include -
i.e. all inclusions of <stdlib.h>, <malloc.h>, <glib.h>, "fs.h", "mem.h",
"util.h" and "mad.h" done there. This elimanates problem with proper or-
der of #include's.
* All around the source - changed order of #include's, most of them gone
to global.h (see above), minor changes, like "0" -> NULL in string func-
tions.
1999-01-25 Alexander Savelyev <fano@vcom.kiev.ua>
* ext.c (exec_extension): Always use /bin/sh. Not the user

Просмотреть файл

@ -28,11 +28,9 @@
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <errno.h> /* For errno on SunOS systems */
#include "mad.h"
#include "tty.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -562,7 +560,7 @@ static void init_chown_advanced (void)
{
int i;
sf_stat = (struct stat *) malloc (sizeof (struct stat));
sf_stat = g_new (struct stat, 1);
do_refresh ();
end_chown = need_update = current_file = 0;
single_set = (cpanel->marked < 2) ? 2 : 0;
@ -597,7 +595,7 @@ static void init_chown_advanced (void)
static void
chown_advanced_done (void)
{
free (sf_stat);
g_free (sf_stat);
if (need_update)
update_panels (UP_OPTIMIZE, UP_KEEPSEL);
repaint_screen ();

Просмотреть файл

@ -33,11 +33,11 @@
#endif
#include <sys/stat.h>
#include <sys/param.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <stdio.h>
#include "tty.h"
#include "global.h"
#include "dlg.h"
#include "widget.h"
#include "wtools.h"
@ -49,12 +49,10 @@
#ifdef USE_NETCODE
# include <sys/socket.h>
#endif
#include "util.h"
#include "dialog.h"
#include "fileopctx.h"
#include "mad.h"
#include "key.h" /* For add_select_channel(), delete_select_channel() */
#include "regex.h"
#include "eregex.h"
#include "file.h"
#include "filegui.h"
@ -84,7 +82,7 @@ register_task_running (FileOpContext *ctx, pid_t pid, int fd, char *info)
{
TaskList *new;
new = xmalloc (sizeof (TaskList), "note_task_running");
new = g_new (TaskList, 1);
new->pid = pid;
new->info = info;
new->state = Task_Running;
@ -107,8 +105,8 @@ unregister_task_running (pid_t pid, int fd)
prev->next = p->next;
else
task_list = p->next;
free (p->info);
free (p);
g_free (p->info);
g_free (p);
break;
}
prev = p;
@ -177,7 +175,7 @@ do_background (FileOpContext *ctx, char *info)
static char *
background_title (char *str)
{
char *result = copy_strings (_("Background process:"), str, NULL);
char *result = g_strconcat (_("Background process:"), str, NULL);
return result;
}
@ -196,7 +194,7 @@ real_message_1s (enum OperationMode mode, int *flags, char *title, char *str1)
message (*flags, title, str1);
if (title != full_title)
free (full_title);
g_free (full_title);
}
static void
@ -212,7 +210,7 @@ real_message_2s (enum OperationMode mode, int *flags, char *title, char *str1, c
message (*flags, title, str1, str2);
if (title != full_title)
free (full_title);
g_free (full_title);
}
static void
@ -228,7 +226,7 @@ real_message_3s (enum OperationMode mode, int *flags, char *title, char *str1, c
message (*flags, title, str1, str2, str3);
if (title != full_title)
free (full_title);
g_free (full_title);
}
/* }}} */
@ -320,7 +318,7 @@ background_attention (int fd, void *closure)
int size;
read (fd, &size, sizeof (size));
data [i] = xmalloc (size+1, "RPC Arguments");
data [i] = g_malloc (size+1);
read (fd, data [i], size);
data [i][size] = 0; /* NULL terminate the blocks (they could be strings) */
@ -398,7 +396,7 @@ background_attention (int fd, void *closure)
write (fd, &len, sizeof (len));
if (len){
write (fd, resstr, len);
free (resstr);
g_free (resstr);
}
} else {
len = 0;
@ -406,7 +404,7 @@ background_attention (int fd, void *closure)
}
}
for (i = 0; i < argc; i++)
free (data [i]);
g_free (data [i]);
do_refresh ();
mc_refresh ();
@ -486,7 +484,7 @@ parent_call_string (void *routine, int argc, ...)
read (parent_fd, &i, sizeof (int));
if (!i)
return NULL;
str = xmalloc (i + 1, "parent_return");
str = g_malloc (i + 1);
read (parent_fd, str, i);
str [i] = 0;
return str;
@ -579,12 +577,9 @@ input_dialog_help (char *header, char *text, char *help, char *def_text)
void
message_1s1d (int flags, char *title, char *str, int d)
{
char *p;
p = xmalloc (strlen (str) + 30, "1s1d");
sprintf (p, str, d);
char *p = g_strdup_printf (str, d);
message_1s (flags, title, p);
free (p);
g_free (p);
}
/* }}} */

Просмотреть файл

@ -23,16 +23,12 @@
#include "tty.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <malloc.h>
#include <signal.h>
#include <ctype.h>
#include "global.h"
#include "mad.h" /* The great mad */
#include "util.h" /* Required by panel.h */
#include "win.h" /* Our window tools */
#include "color.h" /* Color definitions */
#include "dlg.h" /* The nice dialog manager */
@ -227,19 +223,19 @@ display_box (WPanel *panel, char **userp, char **minip, int *use_msformat, int n
if (!panel) {
p = get_nth_panel_name (num);
panel = (WPanel *) xmalloc (sizeof (WPanel), "temporary panel");
panel = g_new (WPanel, 1);
panel->list_type = list_full;
panel->user_format = strdup (DEFAULT_USER_FORMAT);
panel->user_format = g_strdup (DEFAULT_USER_FORMAT);
panel->user_mini_status = 0;
for (i = 0; i < LIST_TYPES; i++)
panel->user_status_format[i] = strdup (DEFAULT_USER_FORMAT);
section = copy_strings ("Temporal:", p, 0);
panel->user_status_format[i] = g_strdup (DEFAULT_USER_FORMAT);
section = g_strconcat ("Temporal:", p, NULL);
if (!profile_has_section (section, profile_name)) {
free (section);
section = strdup (p);
g_free (section);
section = g_strdup (p);
}
panel_load_setup (panel, section);
free (section);
g_free (section);
}
current_mode = panel->list_type;
@ -251,16 +247,16 @@ display_box (WPanel *panel, char **userp, char **minip, int *use_msformat, int n
result = -1;
if (section) {
free (panel->user_format);
g_free (panel->user_format);
for (i = 0; i < LIST_TYPES; i++)
free (panel->user_status_format [i]);
free (panel);
g_free (panel->user_status_format [i]);
g_free (panel);
}
if (dd->ret_value != B_CANCEL){
result = my_radio->sel;
*userp = strdup (user->buffer);
*minip = strdup (status->buffer);
*userp = g_strdup (user->buffer);
*minip = g_strdup (status->buffer);
*use_msformat = check_status->state & C_BOOL;
}
destroy_dlg (dd);
@ -595,7 +591,7 @@ tree (char *current_dir)
run_dlg (dlg);
if (dlg->ret_value == B_ENTER)
val = strdup (mytree->selected_ptr->name);
val = g_strdup (mytree->selected_ptr->name);
else
val = 0;
@ -686,16 +682,16 @@ static QuickDialog confvfs_dlg =
void
configure_vfs (void)
{
char buffer2[15];
char buffer2[BUF_TINY];
#if defined(USE_NETCODE)
char buffer3[15];
char buffer3[BUF_TINY];
#endif
sprintf (buffer2, "%i", vfs_timeout);
g_snprintf (buffer2, sizeof (buffer2), "%i", vfs_timeout);
confvfs_widgets [3 + VFS_WIDGETBASE].text = buffer2;
#if defined(USE_NETCODE)
ret_use_netrc = use_netrc;
sprintf(buffer3, "%i", ftpfs_directory_timeout);
g_snprintf(buffer3, sizeof (buffer3), "%i", ftpfs_directory_timeout);
confvfs_widgets[5].text = buffer3;
confvfs_widgets[7].text = ftpfs_anonymous_passwd;
confvfs_widgets[2].text = ftpfs_proxy_host ? ftpfs_proxy_host : "";
@ -703,18 +699,18 @@ configure_vfs (void)
if (quick_dialog (&confvfs_dlg) != B_CANCEL) {
vfs_timeout = atoi (ret_timeout);
free (ret_timeout);
g_free (ret_timeout);
if (vfs_timeout < 0 || vfs_timeout > 10000)
vfs_timeout = 10;
#if defined(USE_NETCODE)
free(ftpfs_anonymous_passwd);
g_free (ftpfs_anonymous_passwd);
ftpfs_anonymous_passwd = ret_passwd;
if (ftpfs_proxy_host)
free(ftpfs_proxy_host);
g_free (ftpfs_proxy_host);
ftpfs_proxy_host = ret_ftp_proxy;
ftpfs_directory_timeout = atoi(ret_directory_timeout);
use_netrc = ret_use_netrc;
free(ret_directory_timeout);
g_free (ret_directory_timeout);
#endif
}
}
@ -840,9 +836,9 @@ jobs_fill_listbox (void)
while (tl){
char *s;
s = copy_strings (state_str [tl->state], " ", tl->info, NULL);
s = g_strconcat (state_str [tl->state], " ", tl->info, NULL);
listbox_add_item (bg_list, LISTBOX_APPEND_AT_END, 0, s, (void *) tl);
free (s);
g_free (s);
tl = tl->next;
}
}

Просмотреть файл

@ -30,8 +30,7 @@
# include <unistd.h>
#endif
#include "tty.h"
#include "mad.h"
#include "util.h"
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -179,13 +178,13 @@ static void chmod_refresh (void)
static int chmod_callback (Dlg_head *h, int Par, int Msg)
{
char buffer [10];
char buffer [BUF_TINY];
switch (Msg) {
case DLG_ACTION:
if (Par >= BUTTONS - single_set * 2){
c_stat ^= check_perm[Par - BUTTONS + single_set * 2].mode;
sprintf (buffer, "%o", c_stat);
g_snprintf (buffer, sizeof (buffer), "%o", c_stat);
label_set_text (statl, buffer);
chmod_toggle_select ();
mode_change = 1;
@ -308,7 +307,7 @@ static void apply_mask (struct stat *sf)
void chmod_cmd (void)
{
char buffer [10];
char buffer [BUF_TINY];
char *fname;
int i;
struct stat sf_stat;
@ -357,7 +356,7 @@ void chmod_cmd (void)
add_widget (ch_dlg, label_new (FY+6, FX+2, c_fown, NULL));
c_fgrp = name_trunc (get_group (sf_stat.st_gid), 21);
add_widget (ch_dlg, label_new (FY+8, FX+2, c_fgrp, NULL));
sprintf (buffer, "%o", c_stat);
g_snprintf (buffer, sizeof (buffer), "%o", c_stat);
statl = label_new (FY+4, FX+2, buffer, NULL);
add_widget (ch_dlg, statl);

Просмотреть файл

@ -19,7 +19,6 @@
#include <config.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <errno.h> /* For errno on SunOS systems */
#include <sys/types.h>
@ -32,8 +31,7 @@
#endif
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -253,7 +251,7 @@ chown_cmd (void)
WLEntry *fe;
uid_t new_user;
gid_t new_group;
char buffer [15];
char buffer [BUF_TINY];
#if 0
/* Please no */
@ -296,7 +294,7 @@ chown_cmd (void)
chown_label (0, name_trunc (fname, 15));
chown_label (1, name_trunc (get_owner (sf_stat.st_uid), 15));
chown_label (2, name_trunc (get_group (sf_stat.st_gid), 15));
sprintf (buffer, "%d", c_fsize);
g_snprintf (buffer, sizeof (buffer), "%d", c_fsize);
chown_label (3, buffer);
chown_label (4, string_perm (sf_stat.st_mode));

139
src/cmd.c
Просмотреть файл

@ -29,12 +29,10 @@
#endif
#include "tty.h"
#include <stdio.h>
#include <stdlib.h> /* getenv (), rand */
#include <sys/types.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <malloc.h>
#include <string.h>
#include <fcntl.h> /* open, O_RDWR */
#include <errno.h>
@ -50,9 +48,8 @@
#ifdef HAVE_MMAP
# include <sys/mman.h>
#endif
#include "mad.h"
#include "global.h"
#include "dir.h"
#include "util.h"
#include "panel.h"
#include "cmd.h" /* Our definitions */
#include "view.h" /* view() */
@ -64,7 +61,6 @@
#include "tree.h"
#include "subshell.h" /* use_subshell */
#include "cons.saver.h"
#include "global.h"
#include "dlg.h" /* required by wtools.h */
#include "widget.h" /* required by wtools.h */
#include "wtools.h" /* listbox */
@ -75,7 +71,6 @@
#include "view.h" /* view */
#include "key.h" /* get_key_code */
#include "help.h" /* interactive_display */
#include "fs.h"
#include "boxes.h" /* cd_dialog */
#include "color.h"
#include "user.h"
@ -173,7 +168,7 @@ int view_file_at_line (char *filename, int plain_view, int internal, int start_l
return move_dir;
}
if (internal){
char view_entry [32];
char view_entry [BUF_TINY];
#ifdef HAVE_GNOME
if (!gmc_view (filename, start_line)){
@ -181,7 +176,7 @@ int view_file_at_line (char *filename, int plain_view, int internal, int start_l
}
#else
if (start_line != 0)
sprintf (view_entry, "View:%d", start_line);
g_snprintf (view_entry, sizeof (view_entry), "View:%d", start_line);
else
strcpy (view_entry, "View");
@ -291,7 +286,7 @@ void view_file_cmd (WPanel *panel)
if (!filename) return;
view_file (filename, 0, use_internal_view);
free (filename);
g_free (filename);
}
void view_simple_cmd (WPanel *panel)
@ -311,7 +306,7 @@ void filtered_view_cmd (WPanel *panel)
view (command, "", 0, 0);
free (command);
g_free (command);
}
void filtered_view_cmd_cpanel (void)
@ -398,20 +393,20 @@ void mkdir_cmd (WPanel *panel)
return;
if (dir [0] && (dir [0] == '/' || dir [0] == '~'))
tempdir = strdup (dir);
tempdir = g_strdup (dir);
else
tempdir = concat_dir_and_file (panel->cwd, dir);
free (dir);
g_free (dir);
save_cwds_stat ();
if (my_mkdir (tempdir, 0777) == 0){
update_panels (UP_OPTIMIZE, tempdir);
repaint_screen ();
select_item (cpanel);
free (tempdir);
g_free (tempdir);
return;
}
free (tempdir);
g_free (tempdir);
message (1, MSG_ERROR, " %s ", unix_error_string (errno));
}
@ -434,13 +429,13 @@ void
set_panel_filter_to (WPanel *p, char *allocated_filter_string)
{
if (p->filter){
free (p->filter);
g_free (p->filter);
p->filter = 0;
}
if (!(allocated_filter_string [0] == '*' && allocated_filter_string [1] == 0))
p->filter = allocated_filter_string;
else
free (allocated_filter_string);
g_free (allocated_filter_string);
reread_cmd ();
x_filter_changed (p);
}
@ -548,7 +543,7 @@ void select_cmd_panel (WPanel *panel)
c = regexp_match (reg_exp_t, panel->dir.list [i].fname, match_file);
if (c == -1){
message (1, MSG_ERROR, _(" Malformed regular expression "));
free (reg_exp);
g_free (reg_exp);
return;
}
if (c){
@ -556,7 +551,7 @@ void select_cmd_panel (WPanel *panel)
}
}
paint_panel (panel);
free (reg_exp);
g_free (reg_exp);
}
void select_cmd (void)
@ -599,7 +594,7 @@ void unselect_cmd_panel (WPanel *panel)
c = regexp_match (reg_exp_t, panel->dir.list [i].fname, match_file);
if (c == -1){
message (1, MSG_ERROR, _(" Malformed regular expression "));
free (reg_exp);
g_free (reg_exp);
return;
}
if (c){
@ -607,7 +602,7 @@ void unselect_cmd_panel (WPanel *panel)
}
}
paint_panel (panel);
free (reg_exp);
g_free (reg_exp);
}
void unselect_cmd (void)
@ -654,11 +649,11 @@ void ext_cmd (void)
buffer = concat_dir_and_file (home_dir, MC_USER_EXT);
check_for_default (extdir, buffer);
do_edit (buffer);
free (buffer);
g_free (buffer);
} else if (dir == 1)
do_edit (extdir);
free (extdir);
g_free (extdir);
flush_extension_file ();
}
@ -679,7 +674,7 @@ void menu_edit_cmd (void)
switch (dir){
case 0:
buffer = strdup (MC_LOCAL_MENU);
buffer = g_strdup (MC_LOCAL_MENU);
check_for_default (menufile, buffer);
break;
@ -693,14 +688,14 @@ void menu_edit_cmd (void)
break;
default:
free (menufile);
g_free (menufile);
return;
}
do_edit (buffer);
if (dir == 0)
chmod(buffer, 0600);
free (buffer);
free (menufile);
g_free (buffer);
g_free (menufile);
}
void quick_chdir_cmd (void)
@ -718,7 +713,7 @@ void quick_chdir_cmd (void)
#endif
if (!do_cd (target, cd_exact))
message (1, MSG_ERROR, _("Could not change directory") );
free (target);
g_free (target);
}
#ifdef USE_VFS
@ -732,7 +727,7 @@ void reselect_vfs (void)
if (!do_cd (target, cd_exact))
message (1, MSG_ERROR, _("Could not change directory") );
free (target);
g_free (target);
}
#endif
@ -843,12 +838,12 @@ compare_dir (WPanel *panel, WPanel *other, enum CompareMode mode)
}
/* Thorough compare on, do byte-by-byte comparison */
src_name = get_full_name (panel->cwd, source->fname);
dst_name = get_full_name (other->cwd, target->fname);
src_name = concat_dir_and_file (panel->cwd, source->fname);
dst_name = concat_dir_and_file (other->cwd, target->fname);
if (compare_files (src_name, dst_name, source->buf.st_size))
do_file_mark (panel, i, 1);
free (src_name);
free (dst_name);
g_free (src_name);
g_free (dst_name);
}
} /* for (i ...) */
}
@ -901,7 +896,7 @@ void history_cmd (void)
else
current = listbox->list->current->data;
destroy_dlg (listbox->dlg);
free (listbox);
g_free (listbox);
if (!current)
return;
@ -1031,14 +1026,14 @@ do_link (int symbolic_link, char *fname)
}
if (!symbolic_link){
src = copy_strings (_(" Link "), name_trunc (fname, 46),
src = g_strconcat (_(" Link "), name_trunc (fname, 46),
_(" to:"), NULL);
dest = input_expand_dialog (_(" Link "), src, "");
free (src);
g_free (src);
if (!dest)
return;
if (!*dest) {
free (dest);
g_free (dest);
return;
}
save_cwds_stat ();
@ -1067,9 +1062,9 @@ do_link (int symbolic_link, char *fname)
#endif
if (!dest || !*dest) {
if (src)
free (src);
g_free (src);
if (dest)
free (dest);
g_free (dest);
return;
}
if (src){
@ -1079,10 +1074,10 @@ do_link (int symbolic_link, char *fname)
message (1, MSG_ERROR, _(" symlink: %s "),
unix_error_string (errno));
}
free (src);
g_free (src);
}
}
free (dest);
g_free (dest);
update_panels (UP_OPTIMIZE, UP_KEEPSEL);
repaint_screen ();
}
@ -1102,7 +1097,7 @@ void edit_symlink_cmd (void)
if (S_ISLNK (selection (cpanel)->buf.st_mode)) {
char buffer [MC_MAXPATHLEN], *p = selection (cpanel)->fname;
int i;
char *dest, *q = copy_strings (_(" Symlink "), name_trunc (p, 32), _(" points to:"), NULL);
char *dest, *q = g_strconcat (_(" Symlink "), name_trunc (p, 32), _(" points to:"), NULL);
i = readlink (p, buffer, MC_MAXPATHLEN);
if (i > 0) {
@ -1118,10 +1113,10 @@ void edit_symlink_cmd (void)
update_panels (UP_OPTIMIZE, UP_KEEPSEL);
repaint_screen ();
}
free (dest);
g_free (dest);
}
}
free (q);
g_free (q);
}
}
@ -1137,7 +1132,7 @@ void other_symlink_cmd (void)
p = concat_dir_and_file (cpanel->cwd, selection (cpanel)->fname);
r = concat_dir_and_file (opanel->cwd, selection (cpanel)->fname);
q = copy_strings (_(" Link symbolically "), name_trunc (p, 32), _(" to:"), NULL);
q = g_strconcat (_(" Link symbolically "), name_trunc (p, 32), _(" to:"), NULL);
dest = input_expand_dialog (_(" Relative symlink "), q, r);
if (dest) {
if (*dest) {
@ -1153,15 +1148,15 @@ void other_symlink_cmd (void)
unix_error_string (errno));
update_panels (UP_OPTIMIZE, UP_KEEPSEL);
repaint_screen ();
free (s);
g_free (s);
}
}
}
free (dest);
g_free (dest);
}
free (q);
free (p);
free (r);
g_free (q);
g_free (p);
g_free (r);
}
#endif
@ -1169,7 +1164,7 @@ void help_cmd (void)
{
char *hlpfile = concat_dir_and_file (mc_home, "mc.hlp");
interactive_display (hlpfile, "[main]");
free (hlpfile);
g_free (hlpfile);
}
void view_panel_cmd (void)
@ -1203,7 +1198,7 @@ char *get_random_hint (void)
time (&now);
if ((now - last) < 60)
return strdup ("");
return g_strdup ("");
last = now;
#else
static int last_sec;
@ -1211,13 +1206,13 @@ char *get_random_hint (void)
gettimeofday (&tv, NULL);
if (!(tv.tv_sec> last_sec+60))
return strdup ("");
return g_strdup ("");
last_sec = tv.tv_sec;
#endif
hintfile = concat_dir_and_file (mc_home, MC_HINT);
data = load_file (hintfile);
free (hintfile);
g_free (hintfile);
if (!data)
return 0;
@ -1239,8 +1234,8 @@ char *get_random_hint (void)
eol = strchr (&data [start], '\n');
if (eol)
*eol = 0;
result = strdup (&data [start]);
free (data);
result = g_strdup (&data [start]);
g_free (data);
return result;
}
@ -1269,16 +1264,16 @@ static void nice_cd (char *text, char *xtext, char *help, char *prefix, int to_h
return;
if (strncmp (prefix, machine, strlen (prefix)) == 0)
cd_path = copy_strings (machine, to_home ? "/~/" : NULL, NULL);
cd_path = g_strconcat (machine, to_home ? "/~/" : NULL, NULL);
else
cd_path = copy_strings (prefix, machine, to_home ? "/~/" : NULL, NULL);
cd_path = g_strconcat (prefix, machine, to_home ? "/~/" : NULL, NULL);
if (do_panel_cd (MENU_PANEL, cd_path, 0))
directory_history_add (MENU_PANEL, (MENU_PANEL)->cwd);
else
message (1, MSG_ERROR, N_(" Could not chdir to %s "), cd_path);
free (cd_path);
free (machine);
g_free (cd_path);
g_free (machine);
}
void netlink_cmd (void)
@ -1330,13 +1325,13 @@ void quick_cd_cmd (void)
char *p = cd_dialog ();
if (p && *p) {
char *q = copy_strings ("cd ", p, NULL);
char *q = g_strconcat ("cd ", p, NULL);
do_cd_command (q);
free (q);
g_free (q);
}
if (p)
free (p);
g_free (p);
}
void
@ -1369,14 +1364,14 @@ save_setup_cmd (void)
save_setup ();
sync_profiles ();
str = copy_strings ( _(" Setup saved to ~/"), PROFILE_NAME, NULL);
str = g_strconcat ( _(" Setup saved to ~/"), PROFILE_NAME, NULL);
#ifdef HAVE_GNOME
set_hintbar (str);
#else
message (0, _(" Setup "), str);
#endif
free (str);
g_free (str);
}
void
@ -1388,29 +1383,29 @@ configure_panel_listing (WPanel *p, int view_type, int use_msformat, char *user,
p->list_type = view_type;
if (view_type == list_user || use_msformat){
free (p->user_format);
g_free (p->user_format);
p->user_format = user;
free (p->user_status_format [view_type]);
g_free (p->user_status_format [view_type]);
p->user_status_format [view_type] = status;
err = set_panel_formats (p);
if (err){
if (err & 0x01){
free (p->user_format);
p->user_format = strdup (DEFAULT_USER_FORMAT);
g_free (p->user_format);
p->user_format = g_strdup (DEFAULT_USER_FORMAT);
}
if (err & 0x02){
free (p->user_status_format [view_type]);
p->user_status_format [view_type] = strdup (DEFAULT_USER_FORMAT);
g_free (p->user_status_format [view_type]);
p->user_status_format [view_type] = g_strdup (DEFAULT_USER_FORMAT);
}
}
}
else {
free (user);
free (status);
g_free (user);
g_free (status);
}
set_panel_formats (p);

Просмотреть файл

@ -18,9 +18,8 @@
#include <config.h>
#include "tty.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mad.h"
#include "global.h"
#include "setup.h" /* For the externs */
#include "color.h"
#include "x.h"
@ -200,7 +199,7 @@ void configure_colors_string (char *the_color_string)
if (!the_color_string)
return;
p = color_string = strdup (the_color_string);
p = color_string = g_strdup (the_color_string);
while (color_string && *color_string){
while (*color_string == ' ' || *color_string == '\t')
color_string++;
@ -226,7 +225,7 @@ void configure_colors_string (char *the_color_string)
color_string++;
}
}
free (p);
g_free (p);
}
static void configure_colors (void)

Просмотреть файл

@ -24,16 +24,12 @@
#include <config.h>
#include <errno.h>
#include "tty.h"
#include "fs.h"
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#include "mad.h"
#include "global.h" /* home_dir */
#include "dlg.h"
#include "widget.h"
#include "command.h"
#include "complete.h" /* completion constants */
#include "global.h" /* home_dir */
#include "dialog.h" /* message () */
#include "dir.h" /* required by panel.h */
#include "panel.h" /* view_tree enum. Also, needed by main.h */
@ -61,8 +57,9 @@ static int examine_cd (char *path)
{
char *p;
int result;
char *q = xmalloc (MC_MAXPATHLEN + 10, "examine_cd"), *r, *s, *t, c;
char *q, *r, *s, *t, c;
q = g_malloc (MC_MAXPATHLEN + 10);
/* Variable expansion */
for (p = path, r = q; *p && r < q + MC_MAXPATHLEN; ) {
if (*p != '$' || (p [1] == '[' || p [1] == '('))
@ -118,13 +115,13 @@ static int examine_cd (char *path)
if (*p) {
r = concat_dir_and_file (p, q);
result = do_cd (r, cd_parse_command);
free (r);
g_free (r);
}
*s = c;
p = s + 1;
}
}
free (q);
g_free (q);
return result;
}
@ -166,7 +163,7 @@ void do_cd_command (char *cmd)
char *new;
new = concat_dir_and_file (old, cmd+3);
sync_tree (new);
free (new);
g_free (new);
}
} else
if (!examine_cd (&cmd [3])) {
@ -202,16 +199,16 @@ static int enter (WCommand *cmdline)
return MSG_NOT_HANDLED;
}
command = xmalloc (strlen (cmd) + 1, "main, enter");
command = g_malloc (strlen (cmd) + 1);
command [0] = 0;
for (i = j = 0; i < strlen (cmd); i ++){
if (cmd [i] == '%'){
i ++;
s = expand_format (cmd [i], 1);
command = realloc (command, strlen (command) + strlen (s)
command = g_realloc (command, strlen (command) + strlen (s)
+ strlen (cmd) - i + 1);
strcat (command, s);
free (s);
g_free (s);
j = strlen (command);
} else {
command [j] = cmd [i];
@ -223,7 +220,7 @@ static int enter (WCommand *cmdline)
current_dlg = 0;
new_input (input_w (cmdline));
execute (command);
free (command);
g_free (command);
#ifdef HAVE_SUBSHELL_SUPPORT
if (quit & SUBSHELL_EXIT){
@ -259,11 +256,11 @@ static int command_callback (Dlg_head *h, WCommand *cmd, int msg, int par)
WCommand *command_new (int y, int x, int cols)
{
WInput *in;
WCommand *cmd = xmalloc (sizeof (WCommand), "command_new");
WCommand *cmd = g_new (WCommand, 1);
in = input_new (y, x, DEFAULT_COLOR, cols, "", "cmdline");
cmd->input = *in;
free (in);
g_free (in);
/* Add our hooks */
cmd->old_callback = (callback_fn) cmd->input.widget.callback;

Просмотреть файл

@ -22,9 +22,7 @@
#include <config.h>
#include "tty.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
@ -60,8 +58,6 @@
#endif
#include "global.h"
#include "mad.h"
#include "util.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -97,16 +93,16 @@ filename_completion_function (char *text, int state)
char *temp;
if (dirname)
free (dirname);
g_free (dirname);
if (filename)
free (filename);
g_free (filename);
if (users_dirname)
free (users_dirname);
g_free (users_dirname);
filename = strdup (text);
filename = g_strdup (text);
if (!*text)
text = ".";
dirname = strdup (text);
dirname = g_strdup (text);
temp = strrchr (dirname, PATH_SEP);
@ -120,19 +116,19 @@ filename_completion_function (char *text, int state)
/* We aren't done yet. We also support the "~user" syntax. */
/* Save the version of the directory that the user typed. */
users_dirname = strdup (dirname);
users_dirname = g_strdup (dirname);
{
char *temp_dirname;
temp_dirname = tilde_expand (dirname);
if (!temp_dirname){
free (dirname);
free (users_dirname);
free (filename);
g_free (dirname);
g_free (users_dirname);
g_free (filename);
dirname = users_dirname = filename = NULL;
return NULL;
}
free (dirname);
g_free (dirname);
dirname = temp_dirname;
canonicalize_pathname (dirname);
/* Here we should do something with variable expansion
@ -161,7 +157,7 @@ filename_completion_function (char *text, int state)
}
isdir = 1; isexec = 0;
{
char *tmp = xmalloc (3 + strlen (dirname) + NLENGTH (entry), "Filename completion");
char *tmp = g_malloc (3 + strlen (dirname) + NLENGTH (entry));
struct stat tempstat;
strcpy (tmp, dirname);
@ -182,7 +178,7 @@ filename_completion_function (char *text, int state)
isexec = 1;
}
}
free (tmp);
g_free (tmp);
}
switch (look_for_executables)
{
@ -204,15 +200,15 @@ filename_completion_function (char *text, int state)
directory = NULL;
}
if (dirname){
free (dirname);
g_free (dirname);
dirname = NULL;
}
if (filename){
free (filename);
g_free (filename);
filename = NULL;
}
if (users_dirname){
free (users_dirname);
g_free (users_dirname);
users_dirname = NULL;
}
return NULL;
@ -221,7 +217,7 @@ filename_completion_function (char *text, int state)
if (users_dirname && (users_dirname[0] != '.' || users_dirname[1])){
int dirlen = strlen (users_dirname);
temp = xmalloc (3 + dirlen + NLENGTH (entry), "Filename completion");
temp = g_malloc (3 + dirlen + NLENGTH (entry));
strcpy (temp, users_dirname);
/* We need a `/' at the end. */
if (users_dirname[dirlen - 1] != PATH_SEP){
@ -230,7 +226,7 @@ filename_completion_function (char *text, int state)
}
strcat (temp, entry->d_name);
} else {
temp = xmalloc (2 + NLENGTH (entry), "Filename completion");
temp = g_malloc (2 + NLENGTH (entry));
strcpy (temp, entry->d_name);
}
if (isdir)
@ -270,7 +266,7 @@ username_completion_function (char *text, int state)
endpwent ();
return NULL;
} else {
char *temp = xmalloc (3 + strlen (entry->pw_name), "Username completion");
char *temp = g_malloc (3 + strlen (entry->pw_name));
*temp = '~';
strcpy (temp + 1, entry->pw_name);
@ -307,7 +303,7 @@ variable_completion_function (char *text, int state)
if (!*env_p)
return NULL;
else {
char *temp = xmalloc (2 + 2 * isbrace + p - *env_p, "Variable completion");
char *temp = g_malloc (2 + 2 * isbrace + p - *env_p);
*temp = '$';
if (isbrace)
@ -373,7 +369,7 @@ static void fetch_hosts (char *filename)
for (start = i; buffer[i] && !cr_whitespace (buffer[i]); i++);
if (i - start == 0)
continue;
name = (char *) xmalloc (i - start + 1, "Hostname completion");
name = (char *) g_malloc (i - start + 1);
strncpy (name, buffer + start, i - start);
name [i - start] = 0;
{
@ -382,7 +378,7 @@ static void fetch_hosts (char *filename)
if (hosts_p - hosts >= hosts_alloclen){
int j = hosts_p - hosts;
hosts = realloc ((void *)hosts, ((hosts_alloclen += 30) + 1) * sizeof (char *));
hosts = g_realloc ((void *)hosts, ((hosts_alloclen += 30) + 1) * sizeof (char *));
hosts_p = hosts + j;
}
for (host_p = hosts; host_p < hosts_p; host_p++)
@ -392,7 +388,7 @@ static void fetch_hosts (char *filename)
*(hosts_p++) = name;
*hosts_p = NULL;
} else
free (name);
g_free (name);
}
}
}
@ -410,10 +406,10 @@ hostname_completion_function (char *text, int state)
if (hosts != NULL){
for (host_p = hosts; *host_p; host_p++)
free (*host_p);
free (hosts);
g_free (*host_p);
g_free (hosts);
}
hosts = (char **) xmalloc (((hosts_alloclen = 30) + 1) * sizeof (char *), "Hostname completion");
hosts = g_new (char *, (hosts_alloclen = 30) + 1);
*hosts = NULL;
hosts_p = hosts;
fetch_hosts ((p = getenv ("HOSTFILE")) ? p : "/etc/hosts");
@ -432,12 +428,12 @@ hostname_completion_function (char *text, int state)
if (!*host_p){
for (host_p = hosts; *host_p; host_p++)
free (*host_p);
free (hosts);
g_free (*host_p);
g_free (hosts);
hosts = NULL;
return NULL;
} else {
char *temp = xmalloc (2 + strlen (*host_p), "Hostname completion");
char *temp = g_malloc (2 + strlen (*host_p));
if (textstart)
*temp = '@';
@ -491,7 +487,7 @@ command_completion_function (char *text, int state)
if (!p)
path = NULL;
else {
path = xmalloc (strlen (p) + 2, "Command completion");
path = g_malloc (strlen (p) + 2);
strcpy (path, p);
path [strlen (p) + 1] = 0;
p = strchr (path, PATH_ENV_SEP);
@ -515,7 +511,7 @@ command_completion_function (char *text, int state)
case 0: /* Reserved words */
while (*words){
if (!strncmp (*words, text, text_len))
return strdup (*(words++));
return g_strdup (*(words++));
words++;
}
phase++;
@ -523,7 +519,7 @@ command_completion_function (char *text, int state)
case 1: /* Builtin commands */
while (*words){
if (!strncmp (*words, text, text_len))
return strdup (*(words++));
return g_strdup (*(words++));
words++;
}
phase++;
@ -540,23 +536,23 @@ command_completion_function (char *text, int state)
break;
expanded = tilde_expand (cur_path);
if (!expanded){
free (path);
g_free (path);
path = NULL;
return NULL;
}
p = canonicalize_pathname (expanded);
cur_word = xmalloc (strlen (p) + 2 + text_len, "Command completion");
cur_word = g_malloc (strlen (p) + 2 + text_len);
strcpy (cur_word, p);
if (cur_word [strlen (cur_word) - 1] != PATH_SEP)
strcat (cur_word, PATH_SEP_STR);
strcat (cur_word, text);
free (p);
g_free (p);
cur_path = strchr (cur_path, 0) + 1;
init_state = state;
}
found = filename_completion_function (cur_word, state - init_state);
if (!found){
free (cur_word);
g_free (cur_word);
cur_word = NULL;
}
}
@ -565,13 +561,13 @@ command_completion_function (char *text, int state)
if (!found){
look_for_executables = 0;
if (path)
free (path);
g_free (path);
return NULL;
}
if ((p = strrchr (found, PATH_SEP)) != NULL){
p++;
p = strdup (p);
free (found);
p = g_strdup (p);
g_free (found);
return p;
}
return found;
@ -598,7 +594,7 @@ completion_matches (char *text, CompletionFunction entry_function)
int match_list_size;
/* The list of matches. */
char **match_list = (char **) xmalloc (((match_list_size = 30) + 1) * sizeof (char *), "completion match list");
char **match_list = g_new (char *, (match_list_size = 30) + 1);
/* Number of matches actually found. */
int matches = 0;
@ -610,7 +606,7 @@ completion_matches (char *text, CompletionFunction entry_function)
while ((string = (*entry_function) (text, matches)) != NULL){
if (matches + 1 == match_list_size)
match_list = (char **) realloc (match_list, ((match_list_size += 30) + 1) * sizeof (char *));
match_list = (char **) g_realloc (match_list, ((match_list_size += 30) + 1) * sizeof (char *));
match_list[++matches] = string;
match_list[matches + 1] = NULL;
}
@ -644,7 +640,7 @@ completion_matches (char *text, CompletionFunction entry_function)
if (c1 != c2) break;
if (!c1 && !match_list [j][si]){ /* Two equal strings */
free (match_list [j]);
g_free (match_list [j]);
j++;
if (j > matches)
break;
@ -656,12 +652,12 @@ completion_matches (char *text, CompletionFunction entry_function)
}
matches = i;
match_list [matches + 1] = NULL;
match_list[0] = xmalloc (low + 1, "Completion matching list");
match_list[0] = g_malloc (low + 1);
strncpy (match_list[0], match_list[1], low);
match_list[0][low] = 0;
}
} else { /* There were no matches. */
free (match_list);
g_free (match_list);
match_list = NULL;
}
return match_list;
@ -695,7 +691,7 @@ try_complete (char *text, int *start, int *end, int flags)
ignore_filenames = 0;
c = text [*end];
text [*end] = 0;
word = strdup (text + *start);
word = g_strdup (text + *start);
text [*end] = c;
/* Determine if this could be a command word. It is if it appears at
@ -804,7 +800,7 @@ try_complete (char *text, int *start, int *end, int flags)
ignore_filenames = 1;
matches = completion_matches (r, filename_completion_function);
ignore_filenames = 0;
free (r);
g_free (r);
}
*s = c;
cdpath = s + 1;
@ -814,7 +810,7 @@ try_complete (char *text, int *start, int *end, int flags)
}
if (word)
free (word);
g_free (word);
return matches;
}
@ -826,8 +822,8 @@ void free_completions (WInput *in)
if (!in->completions)
return;
for (p=in->completions; *p; p++)
free (*p);
free (in->completions);
g_free (*p);
g_free (in->completions);
in->completions = NULL;
}
@ -840,7 +836,7 @@ static int insert_text (WInput *in, char *text, int len)
len = min (len, strlen (text)) + start - end;
if (strlen (in->buffer) + len >= in->current_max_len){
/* Expand the buffer */
char *narea = realloc(in->buffer, in->current_max_len + len + in->field_len);
char *narea = g_realloc (in->buffer, in->current_max_len + len + in->field_len);
if (narea){
in->buffer = narea;
in->current_max_len += len + in->field_len;

Просмотреть файл

@ -252,7 +252,7 @@ console_shutdown()
}
if (screen != NULL)
{
free(screen);
g_free (screen);
}
console_flag = 0;
}
@ -340,7 +340,7 @@ console_init()
height = vi.mv_rsz;
width = vi.mv_csz;
screen = (unsigned short*) xmalloc(height * width * 2,"console_init");
screen = (unsigned short*) g_malloc (height * width * 2);
if (screen == NULL)
{
console_shutdown();

Просмотреть файл

@ -58,7 +58,7 @@ static int len;
static char *buffer = NULL;
static int buffer_size = 0;
static int columns, rows;
static char vcs_name [40];
static char vcs_name [BUF_TINY];
static int vcs_fd;
static void dwrite (int fd, char *buffer)
@ -86,10 +86,10 @@ static void tty_getsize ()
inline void tty_cursormove(int y, int x)
{
char buffer [20];
char buffer [BUF_TINY];
/* Standard ANSI escape sequence for cursor positioning */
sprintf (buffer,"\33[%d;%dH", y + 1, x + 1);
g_snprintf (buffer, sizeof (buffer), "\33[%d;%dH", y + 1, x + 1);
dwrite (console_fd, buffer);
}
@ -167,7 +167,7 @@ char *detect_console (void)
!isdigit(tty_name[len - 1]))
return "Doesn't look like console";
sprintf (vcs_name, "/dev/vcsa%s", tty_name + xlen - 1);
g_snprintf (vcs_name, sizeof (vcs_name), "/dev/vcsa%s", tty_name + xlen - 1);
vcs_fd = check_file (vcs_name, 0, &msg);
console_fd = check_file (tty_name, 1, &msg);
@ -359,7 +359,7 @@ int main (int argc, char **argv)
/* Allocate buffer for screen image */
tty_getsize ();
buffer_size = 4 + 2 * columns * rows;
buffer = (char*) malloc (buffer_size);
buffer = (char*) g_malloc (buffer_size);
}
/* If using /dev/vcs*, we don't need anymore the console fd */
@ -392,7 +392,7 @@ int main (int argc, char **argv)
} /* while (read ...) */
if (buffer)
free (buffer);
g_free (buffer);
return 0;
}

Просмотреть файл

@ -18,14 +18,11 @@
#include <config.h>
#include "tty.h"
#include <stdio.h>
#include <stdlib.h> /* For free() */
#include <stdarg.h>
#include <sys/types.h>
#include <string.h>
#include "x.h"
#include "mad.h"
#include "global.h"
#include "util.h"
#include "dialog.h"
#include "color.h"
#include "win.h"
@ -43,7 +40,7 @@ void push_refresh (void (*new_refresh)(void *), void *parameter, int flags)
{
Refresh *new;
new = xmalloc (sizeof (Refresh), "push_refresh");
new = g_new (Refresh, 1);
new->next = (struct Refresh *) refresh_list;
new->refresh_fn = new_refresh;
new->parameter = parameter;
@ -60,7 +57,7 @@ void pop_refresh (void)
else {
old = refresh_list;
refresh_list = refresh_list->next;
free (old);
g_free (old);
}
}

Просмотреть файл

@ -18,17 +18,14 @@
#include <config.h>
#define DIR_H_INCLUDE_HANDLE_DIRENT
#include "tty.h"
#include "fs.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/stat.h>
#include "x.h"
#include "mad.h"
#include "global.h"
#include "dir.h"
#include "util.h"
#include "dialog.h"
#include "tree.h"
#include "../vfs/vfs.h"
@ -71,7 +68,7 @@ sort_orders_t sort_orders [SORT_TYPES_TOTAL] = {
{ N_("&Group"), sort_group }
};
#define string_sortcomp(a,b) (case_sensitive ? strcmp (a,b) : strcasecmp (a,b))
#define string_sortcomp(a,b) (case_sensitive ? strcmp (a,b) : g_strcasecmp (a,b))
int
unsorted (const file_entry *a, const file_entry *b)
@ -293,7 +290,7 @@ void clean_dir (dir_list *list, int count)
int i;
for (i = 0; i < count; i++){
free (list->list [i].fname);
g_free (list->list [i].fname);
list->list [i].fname = 0;
}
}
@ -307,7 +304,7 @@ add_dotdot_to_list (dir_list *list, int index)
/* Need to grow the *list? */
if (index == list->size) {
list->list = realloc (list->list, sizeof (file_entry) *
list->list = g_realloc (list->list, sizeof (file_entry) *
(list->size + RESIZE_STEPS));
if (!list->list)
return 0;
@ -315,7 +312,7 @@ add_dotdot_to_list (dir_list *list, int index)
}
(list->list) [index].fnamelen = 2;
(list->list) [index].fname = strdup ("..");
(list->list) [index].fname = g_strdup ("..");
(list->list) [index].f.link_to_dir = 0;
(list->list) [index].f.stalled_link = 0;
(list->list) [index].f.dir_size_computed = 0;
@ -329,16 +326,16 @@ add_dotdot_to_list (dir_list *list, int index)
strcat (buffer, PATH_SEP_STR "..");
p = vfs_canon (buffer);
if (mc_stat (p, &((list->list) [index].buf)) != -1){
free (p);
g_free (p);
break;
}
i = 1;
if (!strcmp (p, PATH_SEP_STR)){
free (p);
g_free (p);
return 1;
}
strcpy (buffer, p);
free (p);
g_free (p);
}
/* Commented out to preserve a usable '..'. What's the purpose of this
@ -398,7 +395,7 @@ int handle_dirent (dir_list *list, char *filter, struct dirent *dp,
/* Need to grow the *list? */
if (next_free == list->size){
list->list = realloc (list->list, sizeof (file_entry) *
list->list = g_realloc (list->list, sizeof (file_entry) *
(list->size + RESIZE_STEPS));
if (!list->list)
return -1;
@ -437,7 +434,7 @@ int handle_path (dir_list *list, char *path,
/* Need to grow the *list? */
if (next_free == list->size){
list->list = realloc (list->list, sizeof (file_entry) *
list->list = g_realloc (list->list, sizeof (file_entry) *
(list->size + RESIZE_STEPS));
if (!list->list)
return -1;
@ -469,7 +466,7 @@ int do_load_dir(dir_list *list, sortfn *sort, int reverse, int case_sensitive, c
if (status == -1)
return next_free;
list->list [next_free].fnamelen = NLENGTH (dp);
list->list [next_free].fname = strdup (dp->d_name);
list->list [next_free].fname = g_strdup (dp->d_name);
list->list [next_free].f.marked = 0;
list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link;
@ -525,13 +522,13 @@ static void alloc_dir_copy (int size)
for (i = 0; i < dir_copy.size; i++) {
if (dir_copy.list [i].fname)
free (dir_copy.list [i].fname);
g_free (dir_copy.list [i].fname);
}
free (dir_copy.list);
g_free (dir_copy.list);
dir_copy.list = 0;
}
dir_copy.list = xmalloc (sizeof (file_entry) * size, "alloc_dir_copy");
dir_copy.list = g_new (file_entry, size);
for (i = 0; i < size; i++)
dir_copy.list [i].fname = 0;
@ -601,7 +598,7 @@ int do_reload_dir (dir_list *list, sortfn *sort, int count, int rev,
list->list [next_free].f.marked = 0;
list->list [next_free].fnamelen = tmp_len;
list->list [next_free].fname = strdup (dp->d_name);
list->list [next_free].fname = g_strdup (dp->d_name);
list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link;
list->list [next_free].f.dir_size_computed = 0;
@ -641,7 +638,7 @@ sortfn *sort_name_to_type (char *sname)
int i;
for (i = 0; i < SORT_TYPES; i++)
if (strcasecmp (sort_orders [i].sort_name, sname) == 0)
if ( g_strcasecmp (sort_orders [i].sort_name, sname) == 0)
return (sortfn *) sort_orders [i].sort_fn;
/* default case */

Просмотреть файл

@ -51,12 +51,12 @@ static char *dirhist_name = "Directory history";
void
directory_history_load (void)
{
char entry_name [20];
char entry_name [BUF_TINY];
char *value;
int i;
for (i = 0; i < DIRECTORY_HISTORY_LOAD_COUNT; i++){
sprintf (entry_name, "%d", i);
g_snprintf (entry_name, sizeof (entry_name), "%d", i);
value = get_profile_string (dirhist_name, entry_name, "", profile_name);
if (!(value || *value))
continue;
@ -67,7 +67,7 @@ directory_history_load (void)
void
directory_history_save (void)
{
char entry_name [20];
char entry_name [BUF_TINY];
char *dir;
int i;
@ -77,7 +77,7 @@ directory_history_save (void)
dir = directory_history_get_next ();
if (!dir)
break;
sprintf (entry_name, "%d", i);
g_snprintf (entry_name, sizeof (entry_name), "%d", i);
WritePrivateProfileString (dirhist_name, entry_name, dir, profile_name);
}
}
@ -88,8 +88,8 @@ directory_history_delete (struct dirhist_entry *e)
if (!e)
return;
directory_history_delete (e->next);
free (e->directory);
free (e);
g_free (e->directory);
g_free (e);
}
void
@ -121,10 +121,10 @@ directory_history_add (char *directory)
{
struct dirhist_entry *p;
p = (struct dirhist_entry *) malloc (sizeof (struct dirhist_entry));
p = g_new (struct dirhist_entry, 1);
if (!p)
return;
p->directory = strdup (directory);
p->directory = g_strdup (directory);
p->next = base;
base = p;
}

Просмотреть файл

@ -20,15 +20,12 @@
/* "$Id$" */
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
#include "tty.h"
#include <stdarg.h>
#include "mad.h"
#include "x.h"
#include "util.h"
#include "menu.h"
#include "global.h"
#include "x.h"
#include "menu.h"
#include "win.h"
#include "color.h"
#include "mouse.h"
@ -236,7 +233,7 @@ Dlg_head *create_dlg (int y1, int x1, int lines, int cols,
if ((flags & DLG_TRYUP) && (y1 > 3))
y1 -= 2;
new_d = (Dlg_head *) malloc (sizeof (Dlg_head));
new_d = g_new (Dlg_head, 1);
new_d->current = NULL;
new_d->count = 0;
new_d->direction = DIR_FORWARD;
@ -292,7 +289,7 @@ int add_widgetl (Dlg_head *where, void *what, WLay layout)
if (where->running){
Widget_Item *point = where->current;
where->current = (Widget_Item *) malloc (sizeof (Widget_Item));
where->current = g_new (Widget_Item, 1);
if (point){
where->current->next = point->next;
@ -308,7 +305,7 @@ int add_widgetl (Dlg_head *where, void *what, WLay layout)
}
} else {
back = where->current;
where->current = (Widget_Item *) malloc (sizeof (Widget_Item));
where->current = g_new (Widget_Item, 1);
if (back){
back->prev = where->current;
where->current->next = back;
@ -358,7 +355,7 @@ int remove_widget (Dlg_head *h, void *what)
h->current = 0;
}
h->count--;
free (p);
g_free (p);
return 1;
}
p = p->next;
@ -371,7 +368,7 @@ int destroy_widget (Widget *w)
send_message (w->parent, w, WIDGET_DESTROY, 0);
if (w->destroy)
w->destroy (w);
free (w);
g_free (w);
return 1;
}
@ -613,7 +610,7 @@ static INLINE void dialog_handle_key (Dlg_head *h, int d_key)
case KEY_F(1):
hlpfile = concat_dir_and_file (mc_home, "mc.hlp");
interactive_display (hlpfile, h->help_ctx);
free (hlpfile);
g_free (hlpfile);
do_refresh ();
break;
@ -920,14 +917,14 @@ destroy_dlg (Dlg_head *h)
if (c->widget->destroy)
c->widget->destroy (c->widget);
c = c->next;
free (h->current->widget);
free (h->current);
g_free (h->current->widget);
g_free (h->current);
h->current = c;
}
if (h->title)
free (h->title);
g_free (h->title);
x_destroy_dlg (h);
free (h);
g_free (h);
#ifndef HAVE_X
if (refresh_list)
@ -1024,7 +1021,7 @@ int dlg_select_nth_widget (Dlg_head *h, int n)
void
x_set_dialog_title (Dlg_head *h, char *title)
{
h->title = strdup(title);
h->title = g_strdup (title);
}
#endif

Просмотреть файл

@ -1,7 +1,6 @@
#ifndef MC_DLG_H
#define MC_DLG_H
#include "mouse.h"
#include "util.h"
/* Color constants */
#define FOCUSC h->color[1]
@ -257,7 +256,6 @@ int default_proc (Dlg_head *h, int Msg, int Par);
#endif
extern Dlg_head *current_dlg;
extern Hook *idle_hook;
int send_message (Dlg_head *h, Widget *w, int msg, int par);
int send_message_to (Dlg_head *h, Widget *w, int msg, int par);

Просмотреть файл

@ -21,7 +21,6 @@
#include <config.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#ifdef NEEDS_IO_H
# include <io.h>
#endif
@ -31,19 +30,13 @@
# include <unistd.h>
#endif
#include <fcntl.h>
#include <malloc.h>
#include <string.h>
#include <errno.h>
#include "global.h"
#include "user.h"
#include "main.h"
#include "fs.h"
#include <glib.h>
#include "util.h"
#include "mad.h"
#include "dialog.h"
#include "global.h"
#include "ext.h"
#include "view.h"
#include "main.h"
@ -69,7 +62,7 @@ void
flush_extension_file (void)
{
if (data){
free (data);
g_free (data);
data = NULL;
}
@ -91,13 +84,13 @@ quote_block (quote_func_t quote_func, char **quoting_block)
temp_len = strlen (temp);
current_len += temp_len + 2;
result = realloc (result, current_len);
result = g_realloc (result, current_len);
if (!tail)
tail = result;
strcpy (tail, temp);
strcat (tail, " ");
tail += temp_len + 1;
free (temp);
g_free (temp);
}
return result;
@ -137,7 +130,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
/* Note: this has to be done after the getlocalcopy call,
* since it uses tmpnam as well
*/
file_name = strdup (tmpnam (NULL));
file_name = g_strdup (tmpnam (NULL));
/* #warning FIXME: this is ugly */
if ((cmd_file_fd = open (file_name, O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600)) == -1){
@ -146,6 +139,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
return;
}
cmd_file = fdopen (cmd_file_fd, "w");
/* FIXME: This is a hack, that makes us sure, we are using the right syntax */
fprintf (cmd_file, "#!/bin/sh\n");
prompt [0] = 0;
@ -162,12 +156,12 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
if (localcopy) {
mc_ungetlocalcopy (filename, localcopy, 0);
}
free (file_name);
g_free (file_name);
return;
}
fputs (parameter, cmd_file);
written_nonspace = 1;
free (parameter);
g_free (parameter);
} else {
int len = strlen (prompt);
@ -195,7 +189,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
data += i - 1;
} else if ((i = check_format_var (data, &v)) > 0 && v){
fputs (v, cmd_file);
free (v);
g_free (v);
data += i;
} else {
char *text;
@ -206,7 +200,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
if (localcopy == NULL) {
fclose(cmd_file);
unlink(file_name);
free(file_name);
g_free (file_name);
return;
}
mc_stat (localcopy, &mystat);
@ -225,7 +219,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
strcpy (p, text);
p = strchr (p, 0);
}
free (text);
g_free (text);
written_nonspace = 1;
}
}
@ -307,7 +301,7 @@ exec_extension (char *filename, char *data, char **drops, int *move_dir, int sta
mc_stat (localcopy, &mystat);
mc_ungetlocalcopy (filename, localcopy, localmtime != mystat.st_mtime);
}
free (file_name);
g_free (file_name);
}
#ifdef FILE_L
@ -380,13 +374,13 @@ char *regex_command (char *filename, char *action, char **drops, int *move_dir)
check_stock_mc_ext:
extension_file = concat_dir_and_file (mc_home, MC_LIB_EXT);
if ((data = load_file (extension_file)) == NULL) {
free (buffer);
g_free (buffer);
return 0;
}
if (!strstr (data, "default/")) {
if (!strstr (data, "regex/") && !strstr (data, "shell/") &&
!strstr (data, "type/")) {
free (data);
g_free (data);
data = NULL;
if (extension_file == buffer) {
home_error = 1;
@ -394,18 +388,18 @@ check_stock_mc_ext:
} else {
char *msg;
char *msg2;
msg = copy_strings(" ", mc_home, MC_LIB_EXT, _(" file error"), NULL);
msg2 = copy_strings(_("Format of the "),
msg = g_strconcat (" ", mc_home, MC_LIB_EXT, _(" file error"), NULL);
msg2 = g_strconcat (_("Format of the "),
mc_home,
("mc.ext file has changed\n\
with version 3.0. It seems that installation\n\
failed. Please fetch a fresh new copy from the\n\
Midnight Commander package or in case you don't\n\
have any, get it from ftp://ftp.nuclecu.unam.mx."), 0);
have any, get it from ftp://ftp.nuclecu.unam.mx."), NULL);
message (1, msg, msg2);
free (msg);
free (msg2);
free (buffer);
g_free (msg);
g_free (msg2);
g_free (buffer);
return 0;
}
}
@ -413,22 +407,22 @@ have any, get it from ftp://ftp.nuclecu.unam.mx."), 0);
if (home_error) {
char *msg;
char *msg2;
msg = copy_strings(" ~/", MC_USER_EXT, _(" file error "), NULL);
msg2 = copy_strings(_("Format of the ~/"), MC_USER_EXT, _(" file has changed\n\
msg = g_strconcat (" ~/", MC_USER_EXT, _(" file error "), NULL);
msg2 = g_strconcat (_("Format of the ~/"), MC_USER_EXT, _(" file has changed\n\
with version 3.0. You may want either to\n\
copy it from "), mc_home, _("mc.ext or use that\n\
file as an example of how to write it.\n\
"), mc_home, _("mc.ext will be used for this moment."), 0);
"), mc_home, _("mc.ext will be used for this moment."), NULL);
message (1, msg, msg2);
free (msg);
free (msg2);
g_free (msg);
g_free (msg2);
}
free (buffer);
g_free (buffer);
}
mc_stat (filename, &mystat);
if (regex_command_title){
free (regex_command_title);
g_free (regex_command_title);
regex_command_title = NULL;
}
old_patterns = easy_patterns;
@ -498,11 +492,11 @@ file as an example of how to write it.\n\
if (islocal) {
char *tmp = name_quote (filename, 0);
char *command =
copy_strings (FILE_CMD, tmp, NULL);
g_strconcat (FILE_CMD, tmp, NULL);
FILE *f = popen (command, "r");
free (tmp);
free (command);
g_free (tmp);
g_free (command);
if (f != NULL) {
hasread = (fgets (content_string, 2047, f)
!= NULL);
@ -617,7 +611,7 @@ match_file_output:
static char *q;
if (to_return == NULL) {
to_return = xmalloc (512, "Action list");
to_return = g_malloc (512);
q = to_return;
} else
*(q++) = '='; /* Mark separator */
@ -630,12 +624,12 @@ match_file_output:
*r = c;
c = *q;
*q = 0;
to_return = strdup (r + 1);
to_return = g_strdup (r + 1);
} else if (!strcmp (p, "Title") && regex_command_title == NULL) {
*r = c;
c = *q;
*q = 0;
regex_command_title = strdup (r + 1);
regex_command_title = g_strdup (r + 1);
} else {
*r = c;
c = *q;
@ -657,10 +651,10 @@ match_file_output:
* we get filename as a pointer from cpanel->dir).
*/
if (p < q) {
char *filename_copy = strdup (filename);
char *filename_copy = g_strdup (filename);
exec_extension (filename_copy, r + 1, drops, move_dir, view_at_line_number);
free (filename_copy);
g_free (filename_copy);
to_return = "Success";
}

Просмотреть файл

@ -64,11 +64,9 @@
#ifdef NEEDS_IO_H
# include <io.h>
#endif
#include <errno.h>
#include "tty.h"
#include <ctype.h>
#include <malloc.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@ -81,9 +79,7 @@
#endif /* SCO_FLAVOR */
#include <time.h>
#include <utime.h>
#include "mad.h"
#include "eregex.h"
#include "util.h"
#include "dialog.h"
#include "global.h"
#include "setup.h"
@ -266,7 +262,7 @@ do_transform_source (FileOpContext *ctx, char *source)
static char *
transform_source (FileOpContext *ctx, char *source)
{
char *s = strdup (source);
char *s = g_strdup (source);
char *q;
/* We remove \n from the filename since regex routines would use \n as an anchor */
@ -276,7 +272,7 @@ transform_source (FileOpContext *ctx, char *source)
*q = ' ';
}
q = do_transform_source (ctx, s);
free (s);
g_free (s);
return q;
}
@ -287,7 +283,7 @@ free_linklist (struct link **linklist)
for (lp = *linklist; lp != NULL; lp = lp2){
lp2 = lp -> next;
free (lp);
g_free (lp);
}
*linklist = NULL;
}
@ -346,8 +342,8 @@ check_hardlinks (char *src_name, char *dst_name, struct stat *pstat)
message_1s (1, MSG_ERROR, _(" Could not make the hardlink "));
return 0;
}
lp = (struct link *) xmalloc (sizeof (struct link) + strlen (src_name)
+ strlen (dst_name) + 1, "Hardlink cache");
lp = (struct link *) g_malloc (sizeof (struct link) + strlen (src_name)
+ strlen (dst_name) + 1);
if (lp){
lp->vfs = my_vfs;
lp->ino = ino;
@ -404,30 +400,30 @@ make_symlink (FileOpContext *ctx, char *src_path, char *dst_path)
if (ctx->stable_symlinks && *link_target != PATH_SEP) {
char *p, *q, *r, *s;
p = strdup (src_path);
p = g_strdup (src_path);
r = strrchr (p, PATH_SEP);
if (r){
r[1] = 0;
if (*dst_path == PATH_SEP)
q = strdup (dst_path);
q = g_strdup (dst_path);
else
q = copy_strings (p, dst_path, 0);
q = g_strconcat (p, dst_path, NULL);
r = strrchr (q, PATH_SEP);
if (r){
r[1] = 0;
s = copy_strings (p, link_target, NULL);
s = g_strconcat (p, link_target, NULL);
strcpy (link_target, s);
free (s);
g_free (s);
s = diff_two_paths (q, link_target);
if (s){
strcpy (link_target, s);
free (s);
g_free (s);
}
}
free (q);
g_free (q);
}
free (p);
g_free (p);
}
retry_dst_symlink:
if (mc_symlink (link_target, dst_path) == 0)
@ -483,8 +479,8 @@ copy_file_file (FileOpContext *ctx, char *src_path, char *dst_path, int ask_over
uid_t src_uid;
gid_t src_gid;
#endif
char *buf = 0;
int buf_size = 8*1024;
char *buf = NULL;
int buf_size = BUF_8K;
int src_desc, dest_desc = 0;
int n_read, n_written;
int src_mode; /* The mode of the source file */
@ -653,7 +649,7 @@ copy_file_file (FileOpContext *ctx, char *src_path, char *dst_path, int ask_over
continue;
goto ret;
}
buf = (char *) xmalloc (buf_size, "copy_file_file");
buf = (char *) g_malloc (buf_size);
ctx->eta_secs = 0.0;
ctx->bps = 0;
@ -763,7 +759,7 @@ copy_file_file (FileOpContext *ctx, char *src_path, char *dst_path, int ask_over
ret:
if (buf)
free (buf);
g_free (buf);
while ((resources & 1) && mc_close (src_desc) < 0){
temp_status = file_error (_(" Cannot close source file \"%s\" \n %s "), src_path);
@ -890,7 +886,7 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
return FILE_SKIP;
}
lp = xmalloc (sizeof (struct link), "parent_dirs");
lp = g_new (struct link, 1);
lp->vfs = vfs_type (s);
lp->ino = cbuf.st_ino;
lp->dev = cbuf.st_dev;
@ -903,11 +899,11 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
if (move_over){
if (mc_rename (s, d) == 0){
free (parent_dirs);
g_free (parent_dirs);
return FILE_CONT;
}
}
dest_dir = copy_strings (d, 0);
dest_dir = g_strdup (d);
} else {
/*
* If the destination directory exists, we want to copy the whole
@ -933,7 +929,7 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
} else
#endif
{
dest_dir = copy_strings (d, 0);
dest_dir = g_strdup (d);
goto dont_mkdir;
}
}
@ -945,7 +941,7 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
goto ret;
}
lp = xmalloc (sizeof (struct link), "dest_dirs");
lp = g_new (struct link, 1);
mc_stat (dest_dir, &buf);
lp->vfs = vfs_type (dest_dir);
lp->ino = buf.st_ino;
@ -994,17 +990,17 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
*/
return_status = copy_dir_dir (ctx, path, mdpath, 0, 0,
delete, parent_dirs, progress_count, progress_bytes);
free (mdpath);
g_free (mdpath);
} else {
dest_file = concat_dir_and_file (dest_dir, x_basename (path));
return_status = copy_file_file (ctx, path, dest_file, 1,
progress_count, progress_bytes, 0);
free (dest_file);
g_free (dest_file);
}
if (delete && return_status == FILE_CONT){
if (ctx->erase_at_end){
static struct link *tail;
lp = xmalloc (sizeof (struct link) + strlen (path), "erase_list");
lp = g_malloc (sizeof (struct link) + strlen (path));
strcpy (lp->name, path);
lp->st_mode = buf.st_mode;
lp->next = 0;
@ -1026,9 +1022,9 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
* next should be freed: .ado
*/
if (!next)
free (next);
g_free (next);
#endif
free (path);
g_free (path);
}
mc_closedir (reading);
@ -1043,8 +1039,8 @@ copy_dir_dir (FileOpContext *ctx, char *s, char *d, int toplevel,
#endif
ret:
free (dest_dir);
free (parent_dirs);
g_free (dest_dir);
g_free (parent_dirs);
return return_status;
}
@ -1180,9 +1176,9 @@ move_dir_dir (FileOpContext *ctx, char *s, char *d, long *progress_count, double
mc_stat (s, &sbuf);
if (mc_stat (d, &dbuf))
destdir = copy_strings (d, 0); /* destination doesn't exist */
destdir = g_strdup (d); /* destination doesn't exist */
else if (!ctx->dive_into_subdirs){
destdir = copy_strings (d, 0);
destdir = g_strdup (d);
move_over = 1;
} else
destdir = concat_dir_and_file (d, x_basename (s));
@ -1205,7 +1201,7 @@ move_dir_dir (FileOpContext *ctx, char *s, char *d, long *progress_count, double
if (return_status == FILE_RETRY)
goto retry_dst_stat;
}
free (destdir);
g_free (destdir);
return return_status;
}
@ -1251,17 +1247,17 @@ move_dir_dir (FileOpContext *ctx, char *s, char *d, long *progress_count, double
return_status = erase_file (ctx, erase_list->name, 0, 0, 0);
lp = erase_list;
erase_list = erase_list->next;
free (lp);
g_free (lp);
}
}
erase_dir_iff_empty (ctx, s);
ret:
free (destdir);
g_free (destdir);
for ( ; erase_list; ){
lp = erase_list;
erase_list = erase_list->next;
free (lp);
g_free (lp);
}
return return_status;
}
@ -1322,7 +1318,7 @@ recursive_erase (FileOpContext *ctx, char *s, long *progress_count, double *prog
continue;
path = concat_dir_and_file (s, next->d_name);
if (mc_lstat (path, &buf)){
free (path);
g_free (path);
return 1;
}
if (S_ISDIR (buf.st_mode))
@ -1330,11 +1326,11 @@ recursive_erase (FileOpContext *ctx, char *s, long *progress_count, double *prog
!= FILE_CONT);
else
return_status = erase_file (ctx, path, progress_count, progress_bytes, 0);
free (path);
g_free (path);
/* .ado: OS/2 returns a block of memory DIR to next and must be freed */
#ifdef __os2__
if (!next)
free (next);
g_free (next);
#endif
}
mc_closedir (reading);
@ -1525,7 +1521,7 @@ compute_dir_size (char *dirname, long *ret_marked, double *ret_total)
res = mc_lstat (fullname, &s);
if (res != 0){
free (fullname);
g_free (fullname);
continue;
}
@ -1541,7 +1537,7 @@ compute_dir_size (char *dirname, long *ret_marked, double *ret_total)
(*ret_marked)++;
*ret_total += s.st_size;
}
free (fullname);
g_free (fullname);
}
mc_closedir (dir);
@ -1581,7 +1577,7 @@ panel_compute_totals (WPanel *panel, long *ret_marked, double *ret_total)
*ret_marked += subdir_count;
*ret_total += subdir_bytes;
free (dir_name);
g_free (dir_name);
} else {
(*ret_marked)++;
*ret_total += s->st_size;
@ -1631,7 +1627,7 @@ panel_operate_generate_prompt (char* cmd_buf, WPanel* panel, int operation, int
{
register char *sp, *cp;
register int i;
char format_string [200];
char format_string [BUF_MEDIUM];
char *dp = format_string;
char* source = NULL;
@ -1708,11 +1704,11 @@ panel_operate_generate_prompt (char* cmd_buf, WPanel* panel, int operation, int
if (only_one)
{
i = fmd_xlen - strlen(format_string) - 4;
sprintf (cmd_buf, format_string, name_trunc (source, i));
g_snprintf (cmd_buf, sizeof (cmd_buf), format_string, name_trunc (source, i));
}
else
{
sprintf (cmd_buf, format_string, panel->marked);
g_snprintf (cmd_buf, sizeof (cmd_buf), format_string, panel->marked);
i = strlen (cmd_buf) + 6 - fmd_xlen;
if (i > 0)
{
@ -1799,7 +1795,7 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
return 0;
}
} else if (operation != OP_DELETE){
ctx->rx.buffer = (char *) xmalloc (MC_MAXPATHLEN, "mask copying");
ctx->rx.buffer = (char *) g_malloc (MC_MAXPATHLEN);
ctx->rx.allocated = MC_MAXPATHLEN;
ctx->rx.translate = 0;
@ -1815,23 +1811,23 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
dest = file_mask_dialog (ctx, operation, cmd_buf, dest_dir, only_one, &do_bg);
if (!dest){
free (ctx->rx.buffer);
g_free (ctx->rx.buffer);
file_op_context_destroy (ctx);
return 0;
}
if (!*dest){
free (ctx->rx.buffer);
g_free (ctx->rx.buffer);
file_op_context_destroy (ctx);
free (dest);
g_free (dest);
return 0;
}
} else {
char *all = "^\\(.*\\)$";
re_compile_pattern (all, strlen (all), &ctx->rx);
ctx->dest_mask = strdup ("*");
ctx->dest_mask = g_strdup ("*");
do_bg = FALSE;
dest = strdup (thedefault);
dest = g_strdup (thedefault);
}
}
@ -1840,7 +1836,7 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
if (do_bg){
int v;
v = do_background (ctx, copy_strings (_(op_names [operation]), ": ", panel->cwd, 0));
v = do_background (ctx, g_strconcat (op_names [operation], ": ", panel->cwd, NULL));
if (v == -1){
message (1, MSG_ERROR, _(" Sorry, I could not put the job in background "));
}
@ -1861,11 +1857,11 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
invalid data. */
if (dest) {
if (mc_setctl (dest, MCCTL_WANT_STALE_DATA, NULL))
save_dest = strdup(dest);
save_dest = g_strdup (dest);
}
if (panel->cwd) {
if (mc_setctl (panel->cwd, MCCTL_WANT_STALE_DATA, NULL))
save_cwd = strdup(panel->cwd);
save_cwd = g_strdup (panel->cwd);
}
ftpfs_hint_reread (0);
@ -1897,8 +1893,8 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
if (temp == NULL){
value = transform_error;
} else {
temp = get_full_name (dest, temp);
free (dest);
temp = concat_dir_and_file (dest, temp);
g_free (dest);
dest = temp;
temp = 0;
@ -1988,7 +1984,7 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
#ifdef WITH_FULL_PATHS
if (source_with_path)
free (source_with_path);
g_free (source_with_path);
source_with_path = concat_dir_and_file (panel->cwd, source);
#endif
@ -1999,13 +1995,13 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
value = erase_file (ctx, source_with_path, &count, &bytes, 1);
} else {
if (temp)
free (temp);
g_free (temp);
temp = transform_source (ctx, source_with_path);
if (temp == NULL)
value = transform_error;
else {
temp = get_full_name (dest, temp);
temp = concat_dir_and_file (dest, temp);
switch (operation){
case OP_COPY:
@ -2060,11 +2056,11 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
if (save_cwd) {
mc_setctl (save_cwd, MCCTL_NO_STALE_DATA, NULL);
free(save_cwd);
g_free (save_cwd);
}
if (save_dest) {
mc_setctl (save_dest, MCCTL_NO_STALE_DATA, NULL);
free(save_dest);
g_free (save_dest);
}
ftpfs_hint_reread (1);
@ -2072,22 +2068,22 @@ panel_operate (void *source_panel, FileOperation operation, char *thedefault, in
free_linklist (&dest_dirs);
#if WITH_FULL_PATHS
if (source_with_path)
free (source_with_path);
g_free (source_with_path);
#endif
if (dest)
free (dest);
g_free (dest);
if (temp)
free (temp);
g_free (temp);
if (ctx->rx.buffer) {
free (ctx->rx.buffer);
g_free (ctx->rx.buffer);
ctx->rx.buffer = NULL;
}
if (ctx->dest_mask) {
free (ctx->dest_mask);
g_free (ctx->dest_mask);
ctx->dest_mask = NULL;
}
@ -2136,7 +2132,7 @@ real_do_file_error (enum OperationMode mode, char *error)
int
file_error (char *format, char *file)
{
sprintf (cmd_buf, format,
g_snprintf (cmd_buf, sizeof (cmd_buf), format,
name_trunc (file, 30), unix_error_string (errno));
return do_file_error (cmd_buf);
@ -2152,7 +2148,8 @@ files_error (char *format, char *file1, char *file2)
strcpy (nfile1, name_trunc (file1, 15));
strcpy (nfile2, name_trunc (file2, 15));
sprintf (cmd_buf, format, nfile1, nfile2, unix_error_string (errno));
g_snprintf (cmd_buf, sizeof (cmd_buf), format, nfile1, nfile2,
unix_error_string (errno));
return do_file_error (cmd_buf);
}
@ -2166,7 +2163,7 @@ real_query_recursive (FileOpContext *ctx, enum OperationMode mode, char *s)
char *msg =
mode == Foreground ? _("\n Directory not empty. \n Delete it recursively? ")
: _("\n Background process: Directory not empty \n Delete it recursively? ");
text = copy_strings (_(" Delete: "), name_trunc (s, 30), " ", 0);
text = g_strconcat (_(" Delete: "), name_trunc (s, 30), " ", NULL);
if (know_not_what_am_i_doing)
query_set_sel (1);
@ -2177,14 +2174,14 @@ real_query_recursive (FileOpContext *ctx, enum OperationMode mode, char *s)
if (ctx->recursive_result != RECURSIVE_ABORT)
do_refresh ();
free (text);
g_free (text);
if (know_not_what_am_i_doing){
if (ctx->recursive_result == RECURSIVE_YES ||
ctx->recursive_result == RECURSIVE_ALWAYS){
text = copy_strings (
text = g_strconcat (
_(" Type 'yes' if you REALLY want to delete "),
ctx->recursive_result == RECURSIVE_YES
? name_trunc (s, 19) : _("all the directories "), " ", 0);
? name_trunc (s, 19) : _("all the directories "), " ", NULL);
confirm = input_dialog (
mode == Foreground ? _(" Recursive Delete ")
: _(" Background process: Recursive Delete "),
@ -2192,8 +2189,8 @@ real_query_recursive (FileOpContext *ctx, enum OperationMode mode, char *s)
do_refresh ();
if (!confirm || strcmp (confirm, _("yes")))
ctx->recursive_result = RECURSIVE_NEVER;
free (confirm);
free (text);
g_free (confirm);
g_free (text);
}
}
}

Просмотреть файл

@ -70,7 +70,6 @@
#include <errno.h>
#include "tty.h"
#include <ctype.h>
#include <malloc.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@ -83,22 +82,18 @@
#endif /* SCO_FLAVOR */
#include <time.h>
#include <utime.h>
#include <glib.h>
#include "mad.h"
#include "regex.h"
#include "setup.h"
#include "util.h"
#include "dialog.h"
#include "eregex.h"
#include "global.h"
#include "setup.h"
#include "dialog.h"
/* Needed by query_replace */
#include "color.h"
#include "win.h"
#include "dlg.h"
#include "widget.h"
#define WANT_WIDGETS
#include "widget.h" /* Note the sequence */
#include "main.h" /* WANT_WIDGETS-> we get the the_hint def */
#include "layout.h"
#include "widget.h"
#include "wtools.h"
/* Needed for current_panel, other_panel and WTree */
@ -351,7 +346,7 @@ static void
file_eta_show (FileOpContext *ctx)
{
int eta_hours, eta_mins, eta_s;
char eta_buffer [30];
char eta_buffer [BUF_TINY];
FileOpContextUI *ui;
ui = ctx->ui;
@ -363,7 +358,7 @@ file_eta_show (FileOpContext *ctx)
eta_hours = ctx->eta_secs / (60 * 60);
eta_mins = (ctx->eta_secs - (eta_hours * 60 * 60)) / 60;
eta_s = ctx->eta_secs - (eta_hours * 60 * 60 + eta_mins * 60);
sprintf (eta_buffer, "ETA %d:%02d.%02d", eta_hours, eta_mins, eta_s);
g_snprintf (eta_buffer, sizeof (eta_buffer), "ETA %d:%02d.%02d", eta_hours, eta_mins, eta_s);
} else
*eta_buffer = 0;
@ -373,7 +368,7 @@ file_eta_show (FileOpContext *ctx)
static void
file_bps_show (FileOpContext *ctx)
{
char bps_buffer [30];
char bps_buffer [BUF_TINY];
FileOpContextUI *ui;
ui = ctx->ui;
@ -382,11 +377,11 @@ file_bps_show (FileOpContext *ctx)
return;
if (ctx->bps > 1024*1024) {
sprintf (bps_buffer, "%.2f MB/s", ctx->bps / (1024*1024.0));
g_snprintf (bps_buffer, sizeof (bps_buffer), "%.2f MB/s", ctx->bps / (1024*1024.0));
} else if (ctx->bps > 1024){
sprintf (bps_buffer, "%.2f KB/s", ctx->bps / 1024.0);
g_snprintf (bps_buffer, sizeof (bps_buffer), "%.2f KB/s", ctx->bps / 1024.0);
} else if (ctx->bps > 1){
sprintf (bps_buffer, "%ld B/s", ctx->bps);
g_snprintf (bps_buffer, sizeof (bps_buffer), "%ld B/s", ctx->bps);
} else
*bps_buffer = 0;
@ -591,7 +586,7 @@ rd_widgets [] =
rd_widgets [i].layout)
#define ADD_RD_LABEL(ui,i,p1,p2)\
sprintf (buffer, rd_widgets [i].text, p1, p2);\
g_snprintf (buffer, sizeof (buffer), rd_widgets [i].text, p1, p2);\
add_widgetl (ui->replace_dlg,\
label_new (rd_widgets [i].ypos, rd_widgets [i].xpos, buffer, rd_widgets [i].tkname),\
rd_widgets [i].layout)
@ -600,7 +595,7 @@ static void
init_replace (FileOpContext *ctx, enum OperationMode mode)
{
FileOpContextUI *ui;
char buffer [128];
char buffer [BUF_SMALL];
static int rd_xlen = 60, rd_trunc = X_TRUNC;
#ifdef ENABLE_NLS
@ -957,7 +952,7 @@ ask_file_mask:
orig_mask = source_mask;
if (!dest_dir || !*dest_dir){
if (source_mask)
free (source_mask);
g_free (source_mask);
return dest_dir;
}
if (source_easy_patterns){
@ -966,7 +961,7 @@ ask_file_mask:
source_mask = convert_pattern (source_mask, match_file, 1);
easy_patterns = source_easy_patterns;
error = re_compile_pattern (source_mask, strlen (source_mask), &ctx->rx);
free (source_mask);
g_free (source_mask);
} else
error = re_compile_pattern (source_mask, strlen (source_mask), &ctx->rx);
@ -974,11 +969,11 @@ ask_file_mask:
message_3s (1, MSG_ERROR, _("Invalid source pattern `%s' \n %s "),
orig_mask, error);
if (orig_mask)
free (orig_mask);
g_free (orig_mask);
goto ask_file_mask;
}
if (orig_mask)
free (orig_mask);
g_free (orig_mask);
ctx->dest_mask = strrchr (dest_dir, PATH_SEP);
if (ctx->dest_mask == NULL)
ctx->dest_mask = dest_dir;
@ -990,14 +985,14 @@ ask_file_mask:
(ctx->dive_into_subdirs && ((!only_one && !is_wildcarded (ctx->dest_mask)) ||
(only_one
&& !mc_stat (dest_dir, &buf) && S_ISDIR (buf.st_mode)))))
ctx->dest_mask = strdup ("*");
ctx->dest_mask = g_strdup ("*");
else {
ctx->dest_mask = strdup (ctx->dest_mask);
ctx->dest_mask = g_strdup (ctx->dest_mask);
*orig_mask = 0;
}
if (!*dest_dir){
free (dest_dir);
dest_dir = strdup ("./");
g_free (dest_dir);
dest_dir = g_strdup ("./");
}
if (val == B_USER)
*do_background = 1;

Просмотреть файл

@ -10,10 +10,8 @@
#include <config.h>
#include <string.h>
#include <malloc.h>
#include "util.h"
#include "mad.h"
#include <errno.h>
#include "global.h"
#include "../vfs/vfs.h"
static char *get_absolute_name (char *file)
@ -21,9 +19,9 @@ static char *get_absolute_name (char *file)
char dir [MC_MAXPATHLEN];
if (file [0] == PATH_SEP)
return strdup (file);
return g_strdup (file);
mc_get_current_wd (dir, MC_MAXPATHLEN);
return get_full_name (dir, file);
return concat_dir_and_file (dir, file);
}
static int
@ -48,12 +46,12 @@ my_mkdir_rec (char *s, mode_t mode)
p = concat_dir_and_file (s, "..");
q = vfs_canon (p);
free (p);
g_free (p);
if (!(result = my_mkdir_rec (q, mode)))
result = mc_mkdir (s, mode);
free (q);
g_free (q);
return result;
}
@ -72,7 +70,7 @@ my_mkdir (char *s, mode_t mode)
char *p = vfs_canon (s);
result = my_mkdir_rec (p, mode);
free (p);
g_free (p);
}
if (result == 0){
s = get_absolute_name (s);
@ -81,7 +79,7 @@ my_mkdir (char *s, mode_t mode)
tree_add_entry (tree, s);
#endif
free (s);
g_free (s);
}
return result;
}
@ -102,7 +100,7 @@ int my_rmdir (char *s)
tree_remove_entry (tree, s);
#endif
free (s);
g_free (s);
}
return result;
}

Просмотреть файл

@ -11,7 +11,7 @@
#include <sys/stat.h>
#include <sys/types.h>
#include "regex.h"
#include "eregex.h"
/* This structure describes a context for file operations. It is used to update

Просмотреть файл

@ -25,16 +25,11 @@
#ifdef NEEDS_IO_H
# include <io.h>
#endif
#include "fs.h"
#include <malloc.h> /* For free() */
#include <sys/stat.h>
#include <sys/param.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include "global.h"
#include "mad.h"
#include "util.h"
#include "win.h"
#include "color.h"
#include "global.h"
@ -196,11 +191,11 @@ find_parameters (char **start_dir, char **pattern, char **content)
find_par_start:
if (!in_start_dir)
in_start_dir = strdup (".");
in_start_dir = g_strdup (".");
if (!in_start_name)
in_start_name = strdup (easy_patterns ? "*" : ".");
in_start_name = g_strdup (easy_patterns ? "*" : ".");
if (!in_contents)
in_contents = strdup ("");
in_contents = g_strdup ("");
find_dlg = create_dlg (0, 0, FIND_Y, FIND_X, dialog_colors,
common_dialog_callback, "[Find File]", "findfile",
@ -238,16 +233,16 @@ find_par_start:
#ifndef HAVE_GNOME
case B_TREE:
temp_dir = strdup (in_start->buffer);
temp_dir = g_strdup (in_start->buffer);
destroy_dlg (find_dlg);
free (in_start_dir);
g_free (in_start_dir);
if (strcmp (temp_dir, ".") == 0){
free (temp_dir);
temp_dir = strdup (cpanel->cwd);
g_free (temp_dir);
temp_dir = g_strdup (cpanel->cwd);
}
in_start_dir = tree (temp_dir);
if (in_start_dir)
free (temp_dir);
g_free (temp_dir);
else
in_start_dir = temp_dir;
/* Warning: Dreadful goto */
@ -257,20 +252,20 @@ find_par_start:
default:
return_value = 1;
*start_dir = strdup (in_start->buffer);
*pattern = strdup (in_name->buffer);
*start_dir = g_strdup (in_start->buffer);
*pattern = g_strdup (in_name->buffer);
free (in_contents);
g_free (in_contents);
if (in_with->buffer [0]){
*content = strdup (in_with->buffer);
in_contents = strdup (*content);
*content = g_strdup (in_with->buffer);
in_contents = g_strdup (*content);
} else
*content = in_contents = NULL;
free (in_start_dir);
in_start_dir = strdup (*start_dir);
free (in_start_name);
in_start_name = strdup (*pattern);
g_free (in_start_dir);
in_start_dir = g_strdup (*start_dir);
g_free (in_start_name);
in_start_name = g_strdup (*pattern);
}
destroy_dlg (find_dlg);
@ -283,8 +278,8 @@ push_directory (char *dir)
{
dir_stack *new;
new = xmalloc (sizeof (dir_stack), "find: push_directory");
new->name = strdup (dir);
new = g_new (dir_stack, 1);
new->name = g_strdup (dir);
new->prev = dir_stack_base;
dir_stack_base = new;
}
@ -298,7 +293,7 @@ pop_directory (void)
if (dir_stack_base){
name = dir_stack_base->name;
next = dir_stack_base->prev;
free (dir_stack_base);
g_free (dir_stack_base);
dir_stack_base = next;
return name;
} else
@ -324,18 +319,18 @@ insert_file (char *dir, char *file)
if (old_dir){
if (strcmp (old_dir, dir)){
free (old_dir);
old_dir = strdup (dir);
g_free (old_dir);
old_dir = g_strdup (dir);
dirname = listbox_add_item (find_list, 0, 0, dir, 0);
}
} else {
old_dir = strdup (dir);
old_dir = g_strdup (dir);
dirname = listbox_add_item (find_list, 0, 0, dir, 0);
}
tmp_name = copy_strings (" ", file, 0);
tmp_name = g_strconcat (" ", file, NULL);
listbox_add_item (find_list, 0, 0, tmp_name, dirname);
free (tmp_name);
g_free (tmp_name);
}
static void
@ -393,7 +388,7 @@ static void
search_content (Dlg_head *h, char *directory, char *filename)
{
struct stat s;
char buffer [128];
char buffer [BUF_SMALL];
char *fname, *p;
int file_fd, pipe, ignoring;
char c;
@ -401,19 +396,19 @@ search_content (Dlg_head *h, char *directory, char *filename)
pid_t pid;
static char *egrep_path;
fname = get_full_name (directory, filename);
fname = concat_dir_and_file (directory, filename);
if (mc_stat (fname, &s) != 0 && !S_ISREG (s.st_mode)){
free (fname);
g_free (fname);
return;
}
if (!S_ISREG (s.st_mode)){
free (fname);
g_free (fname);
return;
}
file_fd = mc_open (fname, O_RDONLY);
free (fname);
g_free (fname);
if (file_fd == -1)
return;
@ -432,7 +427,7 @@ search_content (Dlg_head *h, char *directory, char *filename)
return;
}
sprintf (buffer, _("Grepping in %s"), name_trunc (filename, FIND2_X_USE));
g_snprintf (buffer, sizeof (buffer), _("Grepping in %s"), name_trunc (filename, FIND2_X_USE));
label_set_text (status_label, buffer);
mc_refresh ();
@ -458,9 +453,9 @@ search_content (Dlg_head *h, char *directory, char *filename)
*p = 0;
ignoring = 1;
the_name = copy_strings (buffer, ":", filename, NULL);
the_name = g_strconcat (buffer, ":", filename, NULL);
find_add_match (h, directory, the_name);
free (the_name);
g_free (the_name);
} else {
if (p - buffer < (sizeof (buffer)-1) && ISASCII (c) && isdigit (c))
*p++ = c;
@ -523,12 +518,12 @@ do_search (struct Dlg_head *h)
}
if (find_ignore_dirs){
int found;
char *temp_dir = copy_strings (":", tmp, ":", 0);
char *temp_dir = g_strconcat (":", tmp, ":", NULL);
found = strstr (find_ignore_dirs, temp_dir) != 0;
free (temp_dir);
g_free (temp_dir);
if (found)
free (tmp);
g_free (tmp);
else
break;
} else
@ -536,12 +531,12 @@ do_search (struct Dlg_head *h)
}
strcpy (directory, tmp);
free (tmp);
g_free (tmp);
if (verbose){
char buffer [50];
char buffer [BUF_SMALL];
sprintf (buffer, _("Searching %s"), name_trunc (directory, FIND2_X_USE));
g_snprintf (buffer, sizeof (buffer), _("Searching %s"), name_trunc (directory, FIND2_X_USE));
label_set_text (status_label, buffer);
}
dirp = mc_opendir (directory);
@ -561,7 +556,7 @@ do_search (struct Dlg_head *h)
return;
}
tmp_name = get_full_name (directory, dp->d_name);
tmp_name = concat_dir_and_file (directory, dp->d_name);
if (subdirs_left){
mc_lstat (tmp_name, &tmp_stat);
@ -578,7 +573,7 @@ do_search (struct Dlg_head *h)
find_add_match (h, directory, dp->d_name);
}
free (tmp_name);
g_free (tmp_name);
dp = mc_readdir (dirp);
/* Displays the nice dot */
@ -624,17 +619,17 @@ view_edit_currently_selected_file (int unparsed_view, int edit)
line = 0;
}
if (dir [0] == '.' && dir [1] == 0)
fullname = strdup (filename);
fullname = g_strdup (filename);
else if (dir [0] == '.' && dir [1] == PATH_SEP)
fullname = get_full_name (dir+2, filename);
fullname = concat_dir_and_file (dir+2, filename);
else
fullname = get_full_name (dir, filename);
fullname = concat_dir_and_file (dir, filename);
if (edit)
do_edit_at_line (fullname, line);
else
view_file_at_line (fullname, unparsed_view, use_internal_view, line);
free (fullname);
g_free (fullname);
return MSG_HANDLED;
}
@ -701,7 +696,7 @@ init_find_vars (void)
char *dir;
if (old_dir){
free (old_dir);
g_free (old_dir);
old_dir = 0;
}
count = 0;
@ -709,7 +704,7 @@ init_find_vars (void)
/* Remove all the items in the stack */
while ((dir = pop_directory ()) != NULL)
free (dir);
g_free (dir);
}
static int
@ -810,14 +805,14 @@ find_file (char *start_dir, char *pattern, char *content, char **dirname, char
/* Remove all the items in the stack */
while ((dir = pop_directory ()) != NULL)
free (dir);
g_free (dir);
listbox_get_current (find_list, &file_tmp, &dir_tmp);
if (dir_tmp)
*dirname = strdup (dir_tmp);
*dirname = g_strdup (dir_tmp);
if (file_tmp)
*filename = strdup (file_tmp);
*filename = g_strdup (file_tmp);
if (return_value == B_PANELIZE && *filename){
int status, link_to_dir, stalled_link;
int next_free = 0;
@ -839,26 +834,26 @@ find_file (char *start_dir, char *pattern, char *content, char **dirname, char
continue;
dir = entry->data;
if (dir [0] == '.' && dir [1] == 0)
name = strdup (filename);
name = g_strdup (filename);
else if (dir [0] == '.' && dir [1] == PATH_SEP)
name = get_full_name (dir + 2, filename);
name = concat_dir_and_file (dir + 2, filename);
else
name = get_full_name (dir, filename);
name = concat_dir_and_file (dir, filename);
status = handle_path (list, name, &buf, next_free, &link_to_dir,
&stalled_link);
if (status == 0) {
free (name);
g_free (name);
continue;
}
if (status == -1) {
free (name);
g_free (name);
break;
}
/* don't add files more than once to the panel */
if (content_pattern && next_free > 0){
if (strcmp (list->list [next_free-1].fname, name) == 0) {
free (name);
g_free (name);
continue;
}
}
@ -896,7 +891,7 @@ find_file (char *start_dir, char *pattern, char *content, char **dirname, char
destroy_dlg (find_dlg);
do_search (0); /* force do_search to release resources */
if (old_dir){
free (old_dir);
g_free (old_dir);
old_dir = 0;
}
return return_value;
@ -917,8 +912,8 @@ do_find (void)
dirname = filename = NULL;
is_start = 0;
v = find_file (start_dir, pattern, content, &dirname, &filename);
free (start_dir);
free (pattern);
g_free (start_dir);
g_free (pattern);
if (v == B_ENTER){
if (dirname || filename){
@ -933,16 +928,16 @@ do_find (void)
select_item (cpanel);
}
if (dirname)
free (dirname);
g_free (dirname);
if (filename)
free (filename);
g_free (filename);
break;
}
if (content)
free (content);
g_free (content);
dir_and_file_set = dirname && filename;
if (dirname) free (dirname);
if (filename) free (filename);
if (dirname) g_free (dirname);
if (filename) g_free (filename);
if (v == B_CANCEL)
break;

Просмотреть файл

@ -23,8 +23,6 @@
#include <string.h>
#include "help.h"
#define BUFFER_SIZE 256
static int width; /* Output width in characters */
static int col = 0; /* Current output column */
static FILE *toc_file; /* TOC file */
@ -152,7 +150,7 @@ void print_string (char *buffer)
void printf_string (char *format, ...)
{
va_list args;
char buffer [BUFFER_SIZE];
char buffer [BUF_LARGE];
va_start (args, format);
vsprintf (buffer, format, args);
@ -163,7 +161,7 @@ void printf_string (char *format, ...)
int main (int argc, char **argv)
{
int len; /* Length of input line */
char buffer [BUFFER_SIZE]; /* Input line */
char buffer [BUF_LARGE]; /* Input line */
int i, j;
char *p;
int ignore_newline = 0;
@ -183,7 +181,7 @@ int main (int argc, char **argv)
/* Repeat for each input line */
while (!feof (stdin)){
/* Read a line */
if (!fgets (buffer, BUFFER_SIZE, stdin)){
if (!fgets (buffer, sizeof(buffer), stdin)){
break;
}
in_row ++;

Просмотреть файл

@ -1,6 +1,13 @@
#ifndef __GLOBAL_H
#define __GLOBAL_H
#include <stdlib.h> /* for free() and other usefull routins */
#include "fs.h"
#include <glib.h>
#include "mem.h"
#include "util.h"
#include "mad.h"
extern char *home_dir;
#ifdef min
@ -11,15 +18,22 @@ extern char *home_dir;
#undef max
#endif
#define min(x,y) (x>y ? y: x)
#define max(x,y) (x>y ? x: y)
#define min(x, y) ((x) > (y) ? (y) : (x))
#define max(x, y) ((x) > (y) ? (x) : (y))
/* Just for keeping Your's brains from invention a proper size of the buffer :-) */
#define BUF_10K 10240L
#define BUF_8K 8192L
#define BUF_4K 4096L
#define BUF_1K 1024L
#define BUF_LARGE BUF_1K
#define BUF_MEDIUM 512
#define BUF_SMALL 128
#define BUF_TINY 64
void refresh_screen (void *);
#ifndef HAVE_STRDUP
char *strdup (const char *);
#endif
/* AIX compiler doesn't understand '\e' */
#define ESC_CHAR '\033'
#define ESC_STR "\033"

Просмотреть файл

@ -41,14 +41,11 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <malloc.h>
#include <errno.h>
#include "mad.h"
#include "global.h"
#include "color.h"
#include "util.h"
#include "dialog.h"
#include "win.h"
#include "global.h"
#include "mouse.h"
#include "key.h" /* For mi_getch() */
#include "help.h"
@ -321,7 +318,7 @@ static void start_link_area (int x, int y, char *link_name)
message (0, _(" Warning "), _(" Internal bug: Double start of link area "));
/* Allocate memory for a new link area */
new = (Link_Area*) xmalloc (sizeof (Link_Area), "Help, link_area");
new = g_new (Link_Area, 1);
new->next = link_area;
link_area = new;
@ -353,7 +350,7 @@ static void clear_link_areas (void)
while (link_area){
current = link_area;
link_area = current -> next;
free (current);
g_free (current);
}
inside_link_area = 0;
}
@ -602,7 +599,7 @@ static int md_callback (Dlg_head *h, Widget *w, int msg, int par)
static Widget *mousedispatch_new (int y, int x, int yl, int xl)
{
Widget *w = xmalloc (sizeof (Widget), "disp_new");
Widget *w = g_new (Widget, 1);
init_widget (w, y, x, yl, xl,
(callback_fn) md_callback, 0, (mouse_h) help_event, NULL);
@ -756,7 +753,7 @@ static void
interactive_display_finish (void)
{
clear_link_areas ();
free (data);
g_free (data);
}
void

Просмотреть файл

@ -32,7 +32,6 @@
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <ctype.h>
#include <sys/types.h>
#include <sys/param.h>
@ -49,8 +48,7 @@
# include <io.h>
#endif
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -66,7 +64,6 @@
#include "panel.h" /* Needed for the externs */
#include "file.h"
#include "main.h"
#include "global.h"
#include "hotlist.h"
#include "key.h"
#include "command.h"
@ -163,7 +160,7 @@ static struct hotlist *new_hotlist (void)
{
struct hotlist *hl;
hl = xmalloc (sizeof (struct hotlist), "new-hotlist");
hl = g_new (struct hotlist, 1);
hl->type = 0;
hl->directory =
hl->label = 0;
@ -204,12 +201,12 @@ static INLINE void update_path_name ()
text = _("Subgroup - press ENTER to see list");
#ifndef HAVE_X
p = copy_strings (" ", current_group->label, " ", (char *)0);
p = g_strconcat (" ", current_group->label, " ", NULL);
if (!hotlist_state.moving)
label_set_text (pname_group, name_trunc (p, dlg->cols - (UX*2+4)));
else
label_set_text (movelist_group, name_trunc (p, dlg->cols - (UX*2+4)));
free (p);
g_free (p);
#endif
} else {
text = list->current->text;
@ -227,8 +224,8 @@ do { \
int i; \
\
if ((i = strlen (current->label) + 3) > buflen) { \
free (buf); \
buf = xmalloc (buflen = 1024 * (i/1024 + 1), "fill_listbox"); \
g_free (buf); \
buf = g_malloc (buflen = 1024 * (i/1024 + 1)); \
} \
buf[0] = '\0'; \
} while (0)
@ -240,7 +237,7 @@ static void fill_listbox (void)
static int buflen;
if (!buf)
buf = xmalloc (buflen = 1024, "fill_listbox");
buf = g_malloc (buflen = 1024);
buf[0] = '\0';
while (current){
@ -456,9 +453,9 @@ l1:
if (l_hotlist->current->data) {
struct hotlist *hlp = (struct hotlist*) l_hotlist->current->data;
if (hlp->type == HL_TYPE_ENTRY) {
char *tmp = copy_strings( "cd ", hlp->directory, NULL);
char *tmp = g_strconcat ( "cd ", hlp->directory, NULL);
stuff (input_w (cmdline), tmp, 0);
free (tmp);
g_free (tmp);
dlg_stop (h);
h->ret_value = B_CANCEL;
return 1;
@ -663,7 +660,7 @@ static void init_hotlist (int list_type)
static void init_movelist (int list_type, struct hotlist *item)
{
int i;
char *hdr = copy_strings (_("Moving "), item->label, 0);
char *hdr = g_strconcat (_("Moving "), item->label, NULL);
int movelist_cols = init_i18n_stuff (list_type, COLS - 6);
do_refresh ();
@ -673,7 +670,7 @@ static void init_movelist (int list_type, struct hotlist *item)
"movelist",
DLG_CENTER|DLG_GRID);
x_set_dialog_title (movelist_dlg, hdr);
free (hdr);
g_free (hdr);
#define XTRACT(i) BY-4+hotlist_but[i].y, BX+hotlist_but[i].x, hotlist_but[i].ret_cmd, hotlist_but[i].flags, hotlist_but[i].text, hotlist_button_callback, 0, hotlist_but[i].tkname
@ -714,7 +711,7 @@ static void hotlist_done (void)
static char *
find_group_section (struct hotlist *grp)
{
return copy_strings (grp->directory, ".Group", (char *)0);
return g_strconcat (grp->directory, ".Group", NULL);
}
@ -768,10 +765,10 @@ add2hotlist (char *label, char *directory, enum HotListType type, int pos)
if (hotlist_state.running && type != HL_TYPE_COMMENT) {
if (type == HL_TYPE_GROUP) {
char *lbl = copy_strings ("->", new->label, (char *)0);
char *lbl = g_strconcat ("->", new->label, NULL);
listbox_add_item (l_hotlist, pos, 0, lbl, new);
free (lbl);
g_free (lbl);
} else
listbox_add_item (l_hotlist, pos, 0, new->label, new);
listbox_select_entry (l_hotlist, l_hotlist->current);
@ -891,9 +888,9 @@ static void add_new_entry_cmd (void)
return;
if (ret == B_ENTER || ret == B_APPEND)
add2hotlist (strdup (title), strdup (url), HL_TYPE_ENTRY, 2);
add2hotlist (g_strdup (title),g_strdup (url), HL_TYPE_ENTRY, 2);
else
add2hotlist (strdup (title), strdup (url), HL_TYPE_ENTRY, 1);
add2hotlist (g_strdup (title),g_strdup (url), HL_TYPE_ENTRY, 1);
hotlist_state.modified = 1;
}
@ -979,17 +976,16 @@ void add_new_group_cmd (void)
void add2hotlist_cmd (void)
{
char *prompt, *label;
char* cp = _("Label for \"%s\":");
int l = strlen(cp);
char *cp = _("Label for \"%s\":");
int l = strlen (cp);
prompt = xmalloc (strlen (cpanel->cwd) + l, "add2hotlist_cmd");
sprintf (prompt, cp, name_trunc (cpanel->cwd, COLS-2*UX-(l+8)));
prompt = g_strdup_printf (cp, name_trunc (cpanel->cwd, COLS-2*UX-(l+8)));
label = input_dialog (_(" Add to hotlist "), prompt, cpanel->cwd);
free (prompt);
g_free (prompt);
if (!label || !*label)
return;
add2hotlist (label, strdup (cpanel->cwd), HL_TYPE_ENTRY, 0);
add2hotlist (label,g_strdup (cpanel->cwd), HL_TYPE_ENTRY, 0);
hotlist_state.modified = 1;
}
@ -1004,10 +1000,10 @@ static void remove_group (struct hotlist *grp)
remove_group (current);
if (current->label)
free (current->label);
g_free (current->label);
if (current->directory)
free (current->directory);
free (current);
g_free (current->directory);
g_free (current);
current = next;
}
@ -1021,14 +1017,14 @@ static void remove_from_hotlist (struct hotlist *entry)
char *header;
int result;
header = copy_strings (_(" Remove: "),
header = g_strconcat (_(" Remove: "),
name_trunc (entry->label, 30),
" ",
0);
NULL);
result = query_dialog (header, _("\n Group not empty.\n Remove it?"),
D_ERROR, 2,
_("&No"), _("&Yes"));
free (header);
g_free (header);
if (!result)
return;
@ -1040,10 +1036,10 @@ static void remove_from_hotlist (struct hotlist *entry)
unlink_entry (entry);
if (entry->label)
free (entry->label);
g_free (entry->label);
if (entry->directory)
free (entry->directory);
free (entry);
g_free (entry->directory);
g_free (entry);
/* now remove list entry from screen */
listbox_remove_current (l_hotlist, 1);
hotlist_state.modified = 1;
@ -1073,9 +1069,9 @@ char *hotlist_cmd (int vfs_or_hotlist)
case B_ENTER:
if (l_hotlist->current->data) {
struct hotlist *hlp = (struct hotlist*) l_hotlist->current->data;
target = strdup (hlp->directory);
target = g_strdup (hlp->directory);
} else
target = strdup (l_hotlist->current->text);
target = g_strdup (l_hotlist->current->text);
break;
}
@ -1099,15 +1095,15 @@ load_group (struct hotlist *grp)
while (profile_keys){
profile_keys = profile_iterator_next (profile_keys, &key, &value);
add2hotlist (strdup (value), strdup (key), HL_TYPE_GROUP, 0);
add2hotlist (g_strdup (value), g_strdup (key), HL_TYPE_GROUP, 0);
}
free (group_section);
g_free (group_section);
profile_keys = profile_init_iterator (grp->directory, profile_name);
while (profile_keys){
profile_keys = profile_iterator_next (profile_keys, &key, &value);
add2hotlist (strdup (value), strdup (key), HL_TYPE_ENTRY, 0);
add2hotlist (g_strdup (value),g_strdup (key), HL_TYPE_ENTRY, 0);
}
for (current = grp->head; current; current = current->next)
@ -1149,8 +1145,8 @@ static int hot_next_token ()
#define CHECK_BUF() \
do { \
if (tkn_length == tkn_buf_length) \
tkn_buf = tkn_buf ? (realloc (tkn_buf, tkn_buf_length += 1024)) \
: (malloc (tkn_buf_length = 1024)); \
tkn_buf = tkn_buf ? ( g_realloc (tkn_buf, tkn_buf_length += 1024)) \
: ( g_malloc (tkn_buf_length = 1024)); \
} while (0)
tkn_length = 0;
@ -1249,22 +1245,22 @@ hot_load_group (struct hotlist * grp)
switch (tkn) {
case TKN_GROUP:
CHECK_TOKEN(TKN_STRING);
new_grp = add2hotlist (strdup (tkn_buf), 0, HL_TYPE_GROUP, 0);
new_grp = add2hotlist (g_strdup (tkn_buf), 0, HL_TYPE_GROUP, 0);
SKIP_TO_EOL;
hot_load_group (new_grp);
current_group = grp;
break;
case TKN_ENTRY:
CHECK_TOKEN(TKN_STRING);
label = strdup (tkn_buf);
label = g_strdup (tkn_buf);
CHECK_TOKEN(TKN_URL);
CHECK_TOKEN(TKN_STRING);
url = strdup (tkn_buf);
url = g_strdup (tkn_buf);
add2hotlist (label, url, HL_TYPE_ENTRY, 0);
SKIP_TO_EOL;
break;
case TKN_COMMENT:
label = strdup (tkn_buf);
label = g_strdup (tkn_buf);
add2hotlist (label, 0, HL_TYPE_COMMENT, 0);
break;
case TKN_EOF:
@ -1297,22 +1293,22 @@ hot_load_file (struct hotlist * grp)
switch (tkn) {
case TKN_GROUP:
CHECK_TOKEN(TKN_STRING);
new_grp = add2hotlist (strdup (tkn_buf), 0, HL_TYPE_GROUP, 0);
new_grp = add2hotlist (g_strdup (tkn_buf), 0, HL_TYPE_GROUP, 0);
SKIP_TO_EOL;
hot_load_group (new_grp);
current_group = grp;
break;
case TKN_ENTRY:
CHECK_TOKEN(TKN_STRING);
label = strdup (tkn_buf);
label = g_strdup (tkn_buf);
CHECK_TOKEN(TKN_URL);
CHECK_TOKEN(TKN_STRING);
url = strdup (tkn_buf);
url = g_strdup (tkn_buf);
add2hotlist (label, url, HL_TYPE_ENTRY, 0);
SKIP_TO_EOL;
break;
case TKN_COMMENT:
label = strdup (tkn_buf);
label = g_strdup (tkn_buf);
add2hotlist (label, 0, HL_TYPE_COMMENT, 0);
break;
case TKN_EOL:
@ -1333,7 +1329,7 @@ clean_up_hotlist_groups (char *section)
void *profile_keys;
char *key, *value;
grp_section = copy_strings (section, ".Group", (char *)0);
grp_section = g_strconcat (section, ".Group", NULL);
if (profile_has_section (section, profile_name))
profile_clean_section (section, profile_name);
if (profile_has_section (grp_section, profile_name)) {
@ -1345,7 +1341,7 @@ clean_up_hotlist_groups (char *section)
}
profile_clean_section (grp_section, profile_name);
}
free (grp_section);
g_free (grp_section);
}
@ -1370,30 +1366,30 @@ void load_hotlist (void)
hotlist = new_hotlist ();
hotlist->type = HL_TYPE_GROUP;
hotlist->label = strdup (_(" Top level group "));
hotlist->label = g_strdup (_(" Top level group "));
hotlist->up = hotlist;
/*
* compatibility :-(
*/
hotlist->directory = strdup ("Hotlist");
hotlist->directory = g_strdup ("Hotlist");
grp_section = copy_strings ("Hotlist", ".Group", (char *)0);
grp_section = g_strconcat ("Hotlist", ".Group", NULL);
has_old_list = profile_has_section ("Hotlist", profile_name) ||
profile_has_section (grp_section, profile_name);
free (grp_section);
g_free (grp_section);
if ((hotlist_file = fopen (hotlist_file_name, "r")) == 0) {
int result;
char *msg;
msg = copy_strings (_("Hotlist is now kept in file ~/"),
msg = g_strconcat (_("Hotlist is now kept in file ~/"),
HOTLIST_FILENAME, "\n",
_("MC will load hotlist from ~/"),
PROFILE_NAME, "\n",
_("and then delete [Hotlist] section there"),
NULL);
message (0, _(" Hotlist Load "), msg);
free (msg);
g_free (msg);
load_group (hotlist);
hotlist_state.loaded = 1;
@ -1408,11 +1404,11 @@ void load_hotlist (void)
} else {
char *msg;
msg = copy_strings (_("MC was unable to write ~/"), HOTLIST_FILENAME,
msg = g_strconcat (_("MC was unable to write ~/"), HOTLIST_FILENAME,
_(" file, your old hotlist entries were not deleted"), NULL);
message (D_ERROR, _(" Hotlist Load "), msg);
free (msg);
g_free (msg);
}
} else {
hot_load_file (hotlist);
@ -1422,7 +1418,7 @@ void load_hotlist (void)
int result;
char *msg;
msg = copy_strings (
msg = g_strconcat (
_("You have ~/"), HOTLIST_FILENAME, _(" file and [Hotlist] section in ~/"), PROFILE_NAME, "\n",
_("Your ~/"), HOTLIST_FILENAME, _(" most probably was created\n"),
_("by an earlier development version of MC\nand is more actual than ~/"),
@ -1447,7 +1443,7 @@ void load_hotlist (void)
old = new_hotlist ();
old->type = HL_TYPE_GROUP;
old->label = copy_strings (_(" Entries from ~/"), PROFILE_NAME, NULL);
old->label = g_strconcat (_(" Entries from ~/"), PROFILE_NAME, NULL);
old->up = hotlist;
old->head = hotlist->head;
old->next = grp;
@ -1456,11 +1452,11 @@ void load_hotlist (void)
if (!save_hotlist ()){
char *str;
str = copy_strings (_("MC was unable to write ~/"), HOTLIST_FILENAME,
str = g_strconcat (_("MC was unable to write ~/"), HOTLIST_FILENAME,
_(" file your old hotlist entries were not deleted"), NULL);
message (D_ERROR, _(" Hotlist Load "), str);
free (str);
g_free (str);
} else
remove_old_list = 1;
hotlist_state.modified = 0;
@ -1493,7 +1489,7 @@ save_group (struct hotlist *grp)
current->label,
profile_name);
}
free (group_section);
g_free (group_section);
for (current = grp->head;
current && current->type == HL_TYPE_GROUP;
@ -1576,7 +1572,7 @@ int save_hotlist (void)
struct stat stat_buf;
if (!hotlist_state.readonly && hotlist_state.modified && hotlist_file_name) {
char *fbak = copy_strings (hotlist_file_name, ".bak", 0);
char *fbak = g_strconcat (hotlist_file_name, ".bak", NULL);
rename (hotlist_file_name, fbak);
if ((hotlist_file = fopen (hotlist_file_name, "w")) != 0) {
@ -1593,7 +1589,7 @@ int save_hotlist (void)
hotlist_state.modified = 0;
} else
rename (fbak, hotlist_file_name);
free (fbak);
g_free (fbak);
}
return saved;
@ -1607,20 +1603,20 @@ void done_hotlist (void)
if (hotlist){
if (hotlist->label)
free (hotlist->label);
g_free (hotlist->label);
if (hotlist->directory)
free (hotlist->directory);
free (hotlist);
g_free (hotlist->directory);
g_free (hotlist);
}
if (hotlist_file_name)
free (hotlist_file_name);
g_free (hotlist_file_name);
hotlist_file_name = 0;
hotlist = current_group = 0;
l_hotlist = 0;
current_group = 0;
if (tkn_buf)
free (tkn_buf);
g_free (tkn_buf);
}

Просмотреть файл

@ -22,9 +22,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <malloc.h>
#include "mad.h"
#include "util.h" /* statfs calls */
#include "global.h"
#include "mouse.h" /* Gpm_Event */
#include "color.h"
#include "dlg.h"
@ -260,7 +258,7 @@ static int info_callback (Dlg_head *h, WInfo *info, int msg, int par)
WInfo *info_new ()
{
WInfo *info = xmalloc (sizeof (WInfo), "panel_info");
WInfo *info = g_new (WInfo, 1);
init_widget (&info->widget, 0, 0, 0, 0, (callback_fn)
info_callback, (destroy_fn) info_destroy,

Просмотреть файл

@ -23,7 +23,6 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
@ -37,9 +36,6 @@
#include "tty.h"
#include <ctype.h>
#include <errno.h>
#include <malloc.h>
#include "util.h" /* For xmalloc prototype */
#include "mad.h" /* The memory debugger */
#include "global.h"
#include "mouse.h"
#include "key.h"
@ -107,7 +103,7 @@ void add_select_channel (int fd, select_fn callback, void *info)
{
SelectList *new;
new = xmalloc (sizeof (SelectList), "add_select_channel");
new = g_new (SelectList, 1);
new->fd = fd;
new->callback = callback;
new->info = info;
@ -126,7 +122,7 @@ void delete_select_channel (int fd)
prev->next = p->next;
else
select_list = p->next;
free (p);
g_free (p);
}
prev = p;
p = p->next;
@ -340,7 +336,7 @@ static key_def *create_sequence (char *seq, int code, int action)
key_def *base, *p, *attach;
for (base = attach = NULL; *seq; seq++){
p = xmalloc (sizeof (key_def), "create_sequence");
p = g_new (key_def, 1);
if (!base) base = p;
if (attach) attach->child = p;
@ -919,7 +915,7 @@ char *learn_key (void)
nodelay (stdscr, FALSE);
#endif
*p = 0;
return strdup (buffer);
return g_strdup (buffer);
}
/* xterm and linux console only: set keypad to numeric or application
@ -999,7 +995,7 @@ void k_dispose (key_def *k)
return;
k_dispose (k->child);
k_dispose (k->next);
free (k);
g_free (k);
}
void s_dispose (SelectList *sel)
@ -1008,7 +1004,7 @@ void s_dispose (SelectList *sel)
return;
s_dispose (sel->next);
free (sel);
g_free (sel);
}
void done_key ()

Просмотреть файл

@ -20,7 +20,6 @@
*/
#include <config.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
@ -41,10 +40,8 @@
# include <unistd.h>
#endif
#include <signal.h>
#include <glib.h>
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "key.h"
@ -901,14 +898,14 @@ void remove_dash (void)
char *get_nth_panel_name (int num)
{
static char buffer [20];
static char buffer [BUF_SMALL];
if (!num)
return "New Left Panel";
else if (num == 1)
return "New Right Panel";
else {
sprintf (buffer, "%ith Panel", num);
g_snprintf (buffer, sizeof (buffer), "%ith Panel", num);
return buffer;
}
}
@ -1102,14 +1099,14 @@ void swap_panels ()
if (panels [0].type == view_listing) {
if (!strcmp (panel1->panel_name, get_nth_panel_name (0))) {
free (panel1->panel_name);
panel1->panel_name = strdup (get_nth_panel_name (1));
g_free (panel1->panel_name);
panel1->panel_name = g_strdup (get_nth_panel_name (1));
}
}
if (panels [1].type == view_listing) {
if (!strcmp (panel2->panel_name, get_nth_panel_name (1))) {
free (panel2->panel_name);
panel2->panel_name = strdup (get_nth_panel_name (0));
g_free (panel2->panel_name);
panel2->panel_name = g_strdup (get_nth_panel_name (0));
}
}

Просмотреть файл

@ -24,14 +24,12 @@
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <sys/types.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <ctype.h>
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs and convert_controls */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -102,7 +100,7 @@ _("Please press the %s\n"
_(key_name_conv_tab [action - B_USER].longname));
mc_refresh ();
if (learnkeys [action - B_USER].sequence != NULL) {
free (learnkeys [action - B_USER].sequence);
g_free (learnkeys [action - B_USER].sequence);
learnkeys [action - B_USER].sequence = NULL;
}
seq = learn_key ();
@ -125,7 +123,7 @@ _("Please press the %s\n"
_(" You have entered \"%s\""), seq);
}
free (seq);
g_free (seq);
}
dlg_run_done (d);
@ -235,7 +233,7 @@ static void init_learn (void)
{
int x, y, i, j;
key_code_name_t *key;
char buffer [22];
char buffer [BUF_TINY];
static int i18n_flag = 0;
do_refresh ();
@ -277,7 +275,7 @@ static void init_learn (void)
y = UY;
for (key = key_name_conv_tab, j = 0; key->name != NULL &&
strcmp (key->name, "kpleft"); key++, j++);
learnkeys = (learnkey *) xmalloc (sizeof (learnkey) * j, "Learn keys");
learnkeys = g_new (learnkey, j);
x += ((j - 1) / ROWS) * COLSHIFT;
y += (j - 1) % ROWS;
learn_total = j;
@ -286,7 +284,7 @@ static void init_learn (void)
for (i = j - 1, key = key_name_conv_tab + j - 1; i >= 0; i--, key--) {
learnkeys [i].ok = 0;
learnkeys [i].sequence = NULL;
sprintf (buffer, "%-16s", _(key->longname));
g_snprintf (buffer, sizeof (buffer), "%-16s", _(key->longname));
add_widget (learn_dlg, learnkeys [i].button = (Widget *)
button_new (y, x, B_USER + i, NARROW_BUTTON, buffer, learn_button, 0, NULL));
add_widget (learn_dlg, learnkeys [i].label = (Widget *)
@ -317,7 +315,7 @@ learn_save (void)
{
int i;
int profile_changed = 0;
char *section = copy_strings ("terminal:", getenv ("TERM"), NULL);
char *section = g_strconcat ("terminal:", getenv ("TERM"), NULL);
for (i = 0; i < learn_total; i++) {
if (learnkeys [i].sequence != NULL) {

Просмотреть файл

@ -25,7 +25,6 @@
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <sys/types.h>
#include <sys/param.h>
#include <sys/stat.h>
@ -34,8 +33,7 @@
# include <pwd.h>
#endif
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -48,7 +46,6 @@
#include "panel.h" /* Needed for the externs */
#include "file.h"
#include "main.h"
#include "global.h"
#include "listmode.h"
#define UX 5
@ -267,7 +264,7 @@ collect_new_format (void)
char *last;
char *text, *extra;
newformat = xmalloc (1024, "collect_new_format");
newformat = g_malloc (1024);
if (radio_genwidth->sel)
strcpy (newformat, "full ");
else
@ -293,9 +290,9 @@ char *listmode_edit (char *oldlistformat)
char *newformat = NULL;
char *s;
s = strdup (oldlistformat);
s = g_strdup (oldlistformat);
init_listmode (s);
free (s);
g_free (s);
while (newformat == NULL)
{
@ -306,7 +303,7 @@ char *listmode_edit (char *oldlistformat)
switch (listmode_dlg->ret_value) {
case B_CANCEL:
newformat = strdup (oldlistformat);
newformat = g_strdup (oldlistformat);
break;
case B_ADD:

Просмотреть файл

@ -20,6 +20,8 @@
#include <config.h>
#include "mad.h"
#undef tempnam
#undef malloc
#undef calloc
#undef realloc
@ -28,10 +30,10 @@
#undef free
#undef g_malloc
#undef g_malloc0
#undef g_calloc
#undef g_realloc
#undef g_strdup
#undef g_strconcat
#undef g_free
#include <stdlib.h>
@ -64,17 +66,26 @@ typedef struct {
} mad_mem_area;
static mad_mem_area mem_areas [MAD_MAX_AREAS];
static FILE *memlog = stderr;
void *watch_free_pointer = 0;
void mad_set_debug (char *file)
{
if((memlog=fopen (file, "w+")) == NULL)
memlog = stderr;
}
/* This function is only called by the mad_check function */
static void mad_abort (char *message, int area, char *file, int line)
{
fprintf (stderr, "MAD: %s in area %d.\r\n", message, area);
fprintf (stderr, " Allocated in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: %s in area %d.\r\n", message, area);
fprintf (memlog, " Allocated in file \"%s\" at line %d.\r\n",
mem_areas [area].file, mem_areas [area].line);
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Core dumping...\r\n");
fprintf (memlog, "MAD: Core dumping...\r\n");
fflush (memlog);
kill (getpid (), 3);
}
@ -93,6 +104,7 @@ void mad_check (char *file, int line)
if (*(mem_areas [i].end_sig) != MAD_SIGNATURE)
mad_abort ("Overwrite error: Bad end signature", i, file, line);
}
fflush (memlog);
}
/* Allocates a memory area. Used instead of malloc and calloc. */
@ -108,10 +120,11 @@ void *mad_alloc (int size, char *file, int line)
break;
}
if (i >= MAD_MAX_AREAS){
fprintf (stderr, "MAD: Out of memory area handles. Increase the value of MAD_MAX_AREAS.\r\n");
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Out of memory area handles. Increase the value of MAD_MAX_AREAS.\r\n");
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Aborting...\r\n");
fprintf (memlog, "MAD: Aborting...\r\n");
fflush (memlog);
abort ();
}
@ -119,10 +132,11 @@ void *mad_alloc (int size, char *file, int line)
size = (size + 3) & (~3); /* Alignment */
area = (char*) g_malloc (size + 2 * sizeof (long));
if (!area){
fprintf (stderr, "MAD: Out of memory.\r\n");
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Out of memory.\r\n");
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Aborting...\r\n");
fprintf (memlog, "MAD: Aborting...\r\n");
fflush (memlog);
abort ();
}
@ -158,20 +172,22 @@ void *mad_realloc (void *ptr, int newsize, char *file, int line)
break;
}
if (i >= MAD_MAX_AREAS){
fprintf (stderr, "MAD: Attempted to realloc unallocated pointer: %p.\r\n", ptr);
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Attempted to realloc unallocated pointer: %p.\r\n", ptr);
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Aborting...\r\n");
fprintf (memlog, "MAD: Aborting...\r\n");
fflush (memlog);
abort ();
}
newsize = (newsize + 3) & (~3); /* Alignment */
area = (char*) g_realloc (mem_areas [i].start_sig, newsize + 2 * sizeof (long));
if (!area){
fprintf (stderr, "MAD: Out of memory.\r\n");
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Out of memory.\r\n");
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Aborting...\r\n");
fprintf (memlog, "MAD: Aborting...\r\n");
fflush (memlog);
abort ();
}
@ -189,6 +205,16 @@ void *mad_realloc (void *ptr, int newsize, char *file, int line)
return mem_areas [i].data;
}
/* Allocates a memory area. Used instead of malloc and calloc. */
void *mad_alloc0 (int size, char *file, int line)
{
char *t;
t = (char *) mad_alloc (size, file, line);
memset (t, 0, size);
return (void *) t;
}
/* Duplicates a character string. Used instead of strdup. */
char *mad_strdup (const char *s, char *file, int line)
{
@ -207,13 +233,15 @@ void mad_free (void *ptr, char *file, int line)
mad_check (file, line);
if (watch_free_pointer && ptr == watch_free_pointer){
fprintf (stderr, "MAD: Watch free pointer found in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Watch free pointer found in file \"%s\" at line %d.\r\n",
file, line);
fflush (memlog);
}
if (ptr == NULL){
fprintf (stderr, "MAD: Attempted to free a NULL pointer in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Attempted to free a NULL pointer in file \"%s\" at line %d.\r\n",
file, line);
fflush (memlog);
return;
}
@ -224,13 +252,14 @@ void mad_free (void *ptr, char *file, int line)
break;
}
if (i >= MAD_MAX_AREAS){
fprintf (stderr, "MAD: Attempted to free an unallocated pointer: %p.\r\n", ptr);
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Attempted to free an unallocated pointer: %p.\r\n", ptr);
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fprintf (stderr, "MAD: Aborting...\r\n");
fprintf (memlog, "MAD: Aborting...\r\n");
fflush (memlog);
abort ();
}
g_free (mem_areas [i].start_sig);
mem_areas [i].in_use = 0;
}
@ -258,11 +287,12 @@ void mad_finalize (char *file, int line)
for (i = 0; i < MAD_MAX_AREAS; i++){
if (! mem_areas [i].in_use)
continue;
fprintf (stderr, "MAD: Unfreed pointer: %p.\r\n", mem_areas [i].data);
fprintf (stderr, " Allocated in file \"%s\" at line %d.\r\n",
fprintf (memlog, "MAD: Unfreed pointer: %p.\r\n", mem_areas [i].data);
fprintf (memlog, " Allocated in file \"%s\" at line %d.\r\n",
mem_areas [i].file, mem_areas [i].line);
fprintf (stderr, " Discovered in file \"%s\" at line %d.\r\n",
fprintf (memlog, " Discovered in file \"%s\" at line %d.\r\n",
file, line);
fflush (memlog);
}
#endif
}

Просмотреть файл

@ -3,7 +3,7 @@
/* To prevent molesting these files with the malloc/calloc/free macros. */
#include <stdlib.h>
#include <malloc.h>
#include <malloc.h>
#ifdef HAVE_MAD
# define INLINE
@ -35,14 +35,25 @@
#define strdup(x) mad_strdup (x, __FILE__, __LINE__)
#define free(x) mad_free (x, __FILE__, __LINE__)
/* This defenitions are grabbed from GLib.h */
#define g_new(type, count) \
((type *) g_malloc ((unsigned) sizeof (type) * (count)))
#define g_new0(type, count) \
((type *) g_malloc0 ((unsigned) sizeof (type) * (count)))
#define g_renew(type, mem, count) \
((type *) g_realloc (mem, (unsigned) sizeof (type) * (count)))
#define g_malloc(x) mad_alloc (x, __FILE__, __LINE__)
#define g_malloc0(x) mad_alloc0 (x, __FILE__, __LINE__)
#define g_calloc(x, y) mad_alloc ((x) * (y), __FILE__, __LINE__)
#define g_realloc(x, y) mad_realloc (x, y, __FILE__, __LINE__)
#define g_strdup(x) mad_strdup (x, __FILE__, __LINE__)
#define g_free(x) mad_free (x, __FILE__, __LINE__)
void mad_set_debug (char *file);
void mad_check (char *file, int line);
void *mad_alloc (int size, char *file, int line);
void *mad_alloc0 (int size, char *file, int line);
void *mad_realloc (void *ptr, int newsize, char *file, int line);
char *mad_strdup (const char *s, char *file, int line);
void mad_free (void *ptr, char *file, int line);

Просмотреть файл

@ -88,11 +88,9 @@
/* Program include files */
#include "x.h"
#include "mad.h"
#include "dir.h"
#include "color.h"
#include "global.h"
#include "util.h"
#include "dialog.h"
#include "menu.h"
#include "file.h"
@ -100,7 +98,6 @@
#include "main.h"
#include "win.h"
#include "user.h"
#include "mem.h"
#include "mouse.h"
#include "option.h"
#include "tree.h"
@ -402,7 +399,7 @@ reload_panelized (WPanel *panel)
do_file_mark (panel, i, 0);
}
if (mc_lstat (list->list [i].fname, &list->list [i].buf)){
free (list->list [i].fname);
g_free (list->list [i].fname);
continue;
}
if (list->list [i].f.marked)
@ -429,13 +426,13 @@ update_one_panel_widget (WPanel *panel, int force_update, char *current_file)
panel->is_panelized = 0;
ftpfs_flushdir ();
bzero (&(panel->dir_stat), sizeof (panel->dir_stat));
memset (&(panel->dir_stat), 0, sizeof (panel->dir_stat));
}
/* If current_file == -1 (an invalid pointer) then preserve selection */
if (current_file == UP_KEEPSEL){
free_pointer = 1;
current_file = strdup (panel->dir.list [panel->selected].fname);
current_file = g_strdup (panel->dir.list [panel->selected].fname);
} else
free_pointer = 0;
@ -448,7 +445,7 @@ update_one_panel_widget (WPanel *panel, int force_update, char *current_file)
panel->dirty = 1;
if (free_pointer)
free (current_file);
g_free (current_file);
#ifdef HAVE_X
paint_panel (panel);
@ -568,13 +565,13 @@ static void parse_control_file (void)
return;
}
#endif
data = (char *) xmalloc (s.st_size+1, "main, parse_control_file");
data = (char *) g_malloc (s.st_size+1);
if (!data){
fclose (file);
return;
}
if (s.st_size != fread (data, 1, s.st_size, file)){
free (data);
g_free (data);
fclose (file);
return;
}
@ -632,7 +629,7 @@ static void parse_control_file (void)
current = strtok (NULL, " \t\n");
}
free (data);
g_free (data);
paint_panel (cpanel);
paint_panel (opanel);
}
@ -706,7 +703,7 @@ do_execute (const char *shell, const char *command, int flags)
char *old_vfs_dir = 0;
if (!vfs_current_is_local ())
old_vfs_dir = strdup (vfs_get_current_dir ());
old_vfs_dir = g_strdup (vfs_get_current_dir ());
#endif
save_cwds_stat ();
@ -768,7 +765,7 @@ do_execute (const char *shell, const char *command, int flags)
#ifdef USE_VFS
if (old_vfs_dir){
mc_chdir (old_vfs_dir);
free (old_vfs_dir);
g_free (old_vfs_dir);
}
#endif
@ -900,25 +897,23 @@ void
directory_history_add (WPanel * panel, char *s)
{
if (!panel->dir_history) {
panel->dir_history = malloc (sizeof (Hist));
memset (panel->dir_history, 0, sizeof (Hist));
panel->dir_history->text = strdup (s);
panel->dir_history = g_new0 (Hist, 1);
panel->dir_history->text = g_strdup (s);
return;
}
if (!strcmp (panel->dir_history->text, s))
return;
if (panel->dir_history->next) {
if (panel->dir_history->next->text) {
free (panel->dir_history->next->text);
g_free (panel->dir_history->next->text);
panel->dir_history->next->text = 0;
}
} else {
panel->dir_history->next = malloc (sizeof (Hist));
memset (panel->dir_history->next, 0, sizeof (Hist));
panel->dir_history->next = g_new0 (Hist, 1);
panel->dir_history->next->prev = panel->dir_history;
}
panel->dir_history = panel->dir_history->next;
panel->dir_history->text = strdup (s);
panel->dir_history->text = g_strdup (s);
panel_update_marks (panel);
}
@ -953,7 +948,7 @@ _do_panel_cd (WPanel *panel, char *new_dir, enum cd_enum cd_type)
vfsid oldvfsid;
struct vfs_stamping *parent;
#endif
olddir = strdup (panel->cwd);
olddir = g_strdup (panel->cwd);
translated_url = new_dir = vfs_translate_url (new_dir);
/* Convert *new_path to a suitable pathname, handle ~user */
@ -971,11 +966,11 @@ _do_panel_cd (WPanel *panel, char *new_dir, enum cd_enum cd_type)
if (mc_chdir (directory) == -1){
strcpy (panel->cwd, olddir);
free (olddir);
free (translated_url);
g_free (olddir);
g_free (translated_url);
return 0;
}
free (translated_url);
g_free (translated_url);
/* Success: save previous directory, shutdown status of previous dir */
strcpy (panel->lwd, olddir);
@ -1006,7 +1001,7 @@ _do_panel_cd (WPanel *panel, char *new_dir, enum cd_enum cd_type)
load_hint ();
panel_update_contents (panel);
free (olddir);
g_free (olddir);
return 1;
}
@ -1061,7 +1056,7 @@ directory_history_list (WPanel * panel)
r = _do_panel_cd (panel, s, cd_exact);
if (r)
directory_history_add (panel, panel->cwd);
free (s);
g_free (s);
}
}
}
@ -1141,10 +1136,10 @@ set_sort_to (WPanel *p, sortfn *sort_order)
if (sort_order == (sortfn *) unsorted){
char *current_file;
current_file = strdup (cpanel->dir.list [cpanel->selected].fname);
current_file = g_strdup (cpanel->dir.list [cpanel->selected].fname);
panel_reload (cpanel);
try_to_select (cpanel, current_file);
free (current_file);
g_free (current_file);
}
do_re_sort (p);
}
@ -1174,7 +1169,7 @@ tree_box (void)
sel_dir = tree (selection (cpanel)->fname);
if (sel_dir){
do_cd(sel_dir, cd_exact);
free (sel_dir);
g_free (sel_dir);
}
}
#endif
@ -1186,7 +1181,7 @@ static void
char *newmode;
newmode = listmode_edit ("half <type,>name,|,size:8,|,perm:4+");
message (0, " Listing format edit ", " New mode is \"%s\" ", newmode);
free (newmode);
g_free (newmode);
}
#endif
@ -1450,7 +1445,7 @@ translated_mc_chdir (char *dir)
newdir = vfs_translate_url (dir);
mc_chdir (newdir);
free (newdir);
g_free (newdir);
}
#ifndef PORT_HAS_CREATE_PANELS
@ -1556,7 +1551,7 @@ static void copy_readlink (WPanel *panel)
int i;
i = mc_readlink (p, buffer, MC_MAXPATHLEN);
free (p);
g_free (p);
if (i > 0) {
buffer [i] = 0;
stuff (input_w (cmdline), buffer, 0);
@ -1590,7 +1585,7 @@ void copy_prog_name (void)
} else
tmp = name_quote (selection (cpanel)->fname, 1);
stuff (input_w (cmdline), tmp, 1);
free (tmp);
g_free (tmp);
}
static void copy_tagged (WPanel *panel)
@ -1605,12 +1600,12 @@ static void copy_tagged (WPanel *panel)
if (panel->dir.list [i].f.marked) {
char *tmp = name_quote (panel->dir.list [i].fname, 1);
stuff (input_w (cmdline), tmp, 1);
free (tmp);
g_free (tmp);
}
} else {
char *tmp = name_quote (panel->dir.list [panel->selected].fname, 1);
stuff (input_w (cmdline), tmp, 1);
free (tmp);
g_free (tmp);
}
input_enable_update (input_w (cmdline));
}
@ -2085,7 +2080,7 @@ void load_hint ()
if ((hint = get_random_hint ())){
if (*hint)
set_hintbar (hint);
free (hint);
g_free (hint);
} else {
set_hintbar ("The Midnight Commander " VERSION
" (C) 1995-1997 the Free Software Foundation");
@ -2134,15 +2129,15 @@ prepend_cwd_on_local (char *filename)
if (vfs_file_is_local (filename)){
if (*filename == PATH_SEP) /* an absolute pathname */
return strdup (filename);
d = malloc (MC_MAXPATHLEN + strlen (filename) + 2);
return g_strdup (filename);
d = g_malloc (MC_MAXPATHLEN + strlen (filename) + 2);
mc_get_current_wd (d, MC_MAXPATHLEN);
l = strlen(d);
d[l++] = PATH_SEP;
strcpy (d + l, filename);
return canonicalize_pathname (d);
} else
return strdup (filename);
return g_strdup (filename);
}
#ifdef USE_INTERNAL_EDIT
@ -2171,7 +2166,7 @@ mc_maybe_editor_or_viewer (void)
edit (edit_one_file, 1);
}
#endif
free (path);
g_free (path);
midnight_shutdown = 1;
done_mc ();
return 1;
@ -2203,9 +2198,9 @@ do_nc (void)
/* destroy_dlg destroys even cpanel->cwd, so we have to save a copy :) */
if (print_last_wd) {
if (!vfs_current_is_local ())
last_wd_string = strdup (".");
last_wd_string = g_strdup (".");
else
last_wd_string = strdup (cpanel->cwd);
last_wd_string = g_strdup (cpanel->cwd);
}
done_mc ();
@ -2337,19 +2332,19 @@ OS_Setup ()
#endif /* ! HAVE_X */
shell = getenv ("SHELL");
if (!shell || !*shell)
shell = strdup (getpwuid (geteuid ())->pw_shell);
shell = g_strdup (getpwuid (geteuid ())->pw_shell);
if (!shell || !*shell)
shell = "/bin/sh";
sprintf (control_file, CONTROL_FILE, getpid ());
g_snprintf (control_file, sizeof (control_file), CONTROL_FILE, getpid ());
my_putenv ("MC_CONTROL_FILE", control_file);
/* This is the directory, where MC was installed, on Unix this is LIBDIR */
/* and can be overriden by the MC_LIBDIR environment variable */
if ((mc_libdir = getenv ("MC_LIBDIR")) != NULL) {
mc_home = strdup(mc_libdir);
mc_home = g_strdup (mc_libdir);
} else {
mc_home = strdup(LIBDIR);
mc_home = g_strdup (LIBDIR);
}
}
@ -2436,22 +2431,25 @@ print_mc_usage (void)
#endif
"-c, --color Force color mode.\n"
"-C, --colors Specify colors (use --help-colors to get a list).\n"
"-d, --nomouse Disable mouse support.\n"
#ifdef USE_INTERNAL_EDIT
"-e, --edit Startup the internal editor.\n"
#endif
"-d, --nomouse Disable mouse support.\n"
"-f, --libdir Print configured paths.\n"
"-h, --help Shows this help message.\n"
"-k, --resetsoft Reset softkeys (HP terminals only) to their terminfo/termcap\n"
" default.\n"
#ifdef USE_NETCODE
"-l, --ftplog file Log ftpfs commands to the file.\n"
#endif
#ifdef HAVE_MAD
"-M, --memory file [DEVEL-ONLY: Log MAD messages to the file.]\n"
#endif
"-P, --printwd At exit, print the last working directory.\n"
"-s, --slow Disables verbose operation (for slow terminals).\n"
#if defined(HAVE_SLANG) && !defined(OS2_NT)
"-t, --termcap Activate support for the TERMCAP variable.\n"
#endif
#ifdef USE_NETCODE
"-l, --ftplog file Log ftpfs commands to the file.\n"
#endif
#if defined(HAVE_SLANG) && defined(OS2_NT)
"-S, --createcmdile Create command file to set default directory upon exit.\n"
#endif
@ -2529,14 +2527,20 @@ process_args (int c, char *option_arg)
finish_program = 1;
break;
#ifdef USE_NETCODE
case 'l':
ftpfs_set_debug (option_arg);
break;
#endif
case 'm':
fprintf (stderr, _("Option -m is obsolete. Please look at Display Bits... in the Option's menu\n"));
finish_program = 1;
break;
#ifdef USE_NETCODE
case 'l':
ftpfs_set_debug (option_arg);
#ifdef HAVE_MAD
case 'M':
mad_set_debug (option_arg);
break;
#endif
@ -2626,6 +2630,9 @@ static struct poptOption argument_table [] = {
{ "help-colors", 'H', POPT_ARG_NONE, NULL, 'H' },
#ifdef USE_NETCODE
{ "ftplog", 'l', POPT_ARG_STRING, NULL, 'l' },
#endif
#ifdef HAVE_MAD
{ "memory", 'M', POPT_ARG_STRING, NULL, 'M' },
#endif
{ "libdir", 'f', POPT_ARG_NONE, NULL, 'f' },
{ NULL, 'm', POPT_ARG_NONE, NULL, 'm' },
@ -2728,19 +2735,19 @@ handle_args (int argc, char *argv [])
if (!STRNCOMP (base, "mce", 3) || !STRCOMP(base, "vi")) {
edit_one_file = "";
if (tmp)
edit_one_file = strdup (tmp);
edit_one_file = g_strdup (tmp);
} else
if (!STRNCOMP (base, "mcv", 3) || !STRCOMP(base, "view")) {
if (tmp)
view_one_file = strdup (tmp);
view_one_file = g_strdup (tmp);
} else {
/* sets the current dir and the other dir */
if (tmp) {
char buffer[MC_MAXPATHLEN + 2];
this_dir = strdup (tmp);
this_dir = g_strdup (tmp);
mc_get_current_wd (buffer, sizeof (buffer) - 2);
if ((tmp = poptGetArg (ctx)))
other_dir = strdup (tmp);
other_dir = g_strdup (tmp);
}
}
@ -2763,12 +2770,12 @@ static int
do_mc_filename_rename (char *mc_dir, char *o_name, char *n_name)
{
char *full_o_name = concat_dir_and_file (home_dir, o_name);
char *full_n_name = copy_strings (home_dir, MC_BASE, n_name, NULL);
char *full_n_name = g_strconcat (home_dir, MC_BASE, n_name, NULL);
int move;
move = 0 == rename (full_o_name, full_n_name);
free (full_o_name);
free (full_n_name);
g_free (full_o_name);
g_free (full_n_name);
return move;
}
@ -2807,7 +2814,7 @@ compatibility_move_mc_files (void)
char *mc_dir = concat_dir_and_file (home_dir, ".mc");
do_compatibility_move (mc_dir);
free (mc_dir);
g_free (mc_dir);
}
#endif
@ -2819,7 +2826,7 @@ mc_tree_store_load (void)
tree_file = concat_dir_and_file (home_dir, MC_TREE);
tree_store_init ();
tree_store_load (tree_file);
free (tree_file);
g_free (tree_file);
}
void
@ -2830,7 +2837,7 @@ mc_tree_store_save (void)
printf ("Saving tree!\n");
tree_file = concat_dir_and_file (home_dir, MC_TREE);
tree_store_save (tree_file);
free (tree_file);
g_free (tree_file);
}
int main (int argc, char *argv [])
@ -2917,7 +2924,7 @@ int main (int argc, char *argv [])
if (open (ttyname (0), O_RDWR) < 0)
if (open ("/dev/tty", O_RDWR) < 0) {
/* Try if stderr is not redirected as the last chance */
char *p = strdup (ttyname (0));
char *p = g_strdup (ttyname (0));
if (!strcmp (p, ttyname (2)))
dup2 (2, 1);
@ -2927,7 +2934,7 @@ int main (int argc, char *argv [])
"On some systems you may want to run # `which mc`\n"));
exit (1);
}
free (p);
g_free (p);
}
#endif
}
@ -3049,7 +3056,7 @@ int main (int argc, char *argv [])
#ifdef _OS_NT
/* On NT, home_dir is malloced */
free (home_dir);
g_free (home_dir);
#endif
#if defined(OS2_NT)
if (print_last_wd == 2){
@ -3072,7 +3079,7 @@ int main (int argc, char *argv [])
write (stdout_fd, ".", 1);
else
write (stdout_fd, last_wd_string, strlen (last_wd_string));
free (last_wd_string);
g_free (last_wd_string);
}
#ifdef HAVE_MAD

Просмотреть файл

@ -9,7 +9,7 @@
# endif /* not STDC_HEADERS and HAVE_MEMORY_H */
# ifndef index
#define index strchr
# define index strchr
# endif
# ifndef rindex

Просмотреть файл

@ -21,12 +21,9 @@
#include <stdarg.h>
#include <sys/types.h>
#include <ctype.h>
#include <malloc.h>
#include "mad.h"
#include "util.h"
#include "global.h"
#include "menu.h"
#include "dialog.h"
#include "global.h"
#include "color.h"
#include "main.h"
#include "mouse.h"
@ -54,13 +51,13 @@ Menu create_menu (char *name, menu_entry *entries, int count)
{
Menu menu;
menu = (Menu) xmalloc (sizeof (*menu), "create_menu");
menu = (Menu) g_malloc (sizeof (*menu));
menu->count = count;
menu->max_entry_len = 0;
menu->entries = entries;
#ifdef ENABLE_NLS
if (entries != (menu_entry*) 0)
if (entries != (menu_entry*) NULL)
{
register menu_entry* mp;
for (mp = entries; count--; mp++)
@ -73,7 +70,7 @@ Menu create_menu (char *name, menu_entry *entries, int count)
}
#endif /* ENABLE_NLS */
menu->name = strdup( _(name) );
menu->name = g_strdup ( _(name) );
menu_scan_hotkey(menu);
menu->start_x = 0;
return menu;
@ -517,15 +514,14 @@ menubar_arrange(WMenu* menubar)
void
destroy_menu (Menu menu)
{
free (menu->name);
free (menu);
g_free (menu->name);
g_free (menu);
}
WMenu *menubar_new (int y, int x, int cols, Menu menu [], int items)
{
WMenu *menubar = (WMenu *) xmalloc (sizeof (WMenu), "menubar_new");
WMenu *menubar = g_new0 (WMenu, 1); /* FIXME: subsel used w/o being set */
memset(menubar, 0, sizeof(*menubar)); /* FIXME: subsel used w/o being set */
init_widget (&menubar->widget, y, x, 1, cols,
(callback_fn) menubar_callback,
(destroy_fn) menubar_destroy,

Просмотреть файл

@ -30,13 +30,9 @@
#if (!defined(__IBMC__) && !defined(__IBMCPP__)) && !defined(HAS_NO_TERMIOS_H)
# include <termios.h>
#endif
#include <malloc.h>
#include <stdio.h>
#include "mad.h"
#include "global.h"
#include "mouse.h"
#include "global.h" /* ESC_STR */
#include "util.h" /* xmalloc */
#include "key.h" /* define sequence */
#include "tty.h" /* get ncurses header */
@ -100,7 +96,7 @@ int _nc_remove_key(struct tries **tree, unsigned short code)
}
if (ptr->value == code) {
*tree = 0;
free(ptr);
g_free (ptr);
return TRUE;
}
ptr = ptr->sibling;

Просмотреть файл

@ -25,7 +25,6 @@
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /* For malloc() */
#include <errno.h>
#include <sys/types.h>
#include <sys/param.h>
@ -38,8 +37,7 @@
# include <pwd.h>
#endif
#include "tty.h"
#include "mad.h"
#include "util.h" /* Needed for the externs */
#include "global.h"
#include "win.h"
#include "color.h"
#include "dlg.h"
@ -47,7 +45,6 @@
#include "dialog.h" /* For do_refresh() */
#include "setup.h" /* For profile_bname */
#include "profile.h" /* Load/save directories panelize */
#include "fs.h"
/* Needed for the extern declarations of integer parameters */
#define DIR_H_INCLUDE_HANDLE_DIRENT
@ -55,7 +52,6 @@
#include "panel.h" /* Needed for the externs */
#include "file.h"
#include "main.h"
#include "global.h"
#include "../vfs/vfs.h"
#include "panelize.h"
@ -241,13 +237,13 @@ static void add2panelize (char *label, char *command)
}
if (old == NULL){
panelize = malloc (sizeof (struct panelize));
panelize = g_new (struct panelize, 1);
panelize->label = label;
panelize->command = command;
panelize->next = current;
} else {
struct panelize *new;
new = malloc (sizeof (struct panelize));
new = g_new (struct panelize, 1);
new->label = label;
new->command = command;
old->next = new;
@ -267,11 +263,11 @@ add2panelize_cmd (void)
if (!label)
return;
if (!*label) {
free (label);
g_free (label);
return;
}
add2panelize (label, strdup(pname->buffer));
add2panelize (label, g_strdup (pname->buffer));
}
}
@ -289,9 +285,9 @@ static void remove_from_panelize (struct panelize *entry)
}
}
free (entry->label);
free (entry->command);
free (entry);
g_free (entry->label);
g_free (entry->command);
g_free (entry);
}
}
@ -328,10 +324,10 @@ external_panelize (void)
case B_ENTER:
target = pname->buffer;
if (target != NULL && *target) {
char *cmd = strdup (target);
char *cmd = g_strdup (target);
destroy_dlg (panelize_dlg);
do_external_panelize (cmd);
free (cmd);
g_free (cmd);
repaint_screen ();
return;
}
@ -348,18 +344,18 @@ void load_panelize (void)
profile_keys = profile_init_iterator (panelize_section, profile_name);
add2panelize (strdup (_("Other command")), strdup (""));
add2panelize (g_strdup (_("Other command")), g_strdup (""));
if (!profile_keys){
add2panelize (strdup (_("Find rejects after patching")), strdup ("find . -name \\*.rej -print"));
add2panelize (strdup (_("Find *.orig after patching")), strdup ("find . -name \\*.orig -print"));
add2panelize (strdup (_("Find SUID and SGID programs")), strdup ("find . \\( \\( -perm -04000 -a -perm +011 \\) -o \\( -perm -02000 -a -perm +01 \\) \\) -print"));
add2panelize (g_strdup (_("Find rejects after patching")), g_strdup ("find . -name \\*.rej -print"));
add2panelize (g_strdup (_("Find *.orig after patching")), g_strdup ("find . -name \\*.orig -print"));
add2panelize (g_strdup (_("Find SUID and SGID programs")), g_strdup ("find . \\( \\( -perm -04000 -a -perm +011 \\) -o \\( -perm -02000 -a -perm +01 \\) \\) -print"));
return;
}
while (profile_keys){
profile_keys = profile_iterator_next (profile_keys, &key, &value);
add2panelize (strdup (key), strdup (value));
add2panelize (g_strdup (key), g_strdup (value));
}
}
@ -385,9 +381,9 @@ void done_panelize (void)
for (; current; current = next){
next = current->next;
free (current->label);
free (current->command);
free (current);
g_free (current->label);
g_free (current->command);
g_free (current);
}
}
@ -437,7 +433,7 @@ void do_external_panelize (char *command)
if (status == -1)
break;
list->list [next_free].fnamelen = strlen (name);
list->list [next_free].fname = strdup (name);
list->list [next_free].fname = g_strdup (name);
file_mark (cpanel, next_free, 0);
list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link;

Просмотреть файл

@ -25,10 +25,7 @@
#include <config.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h> /* For free() and atoi() */
#include <sys/types.h>
#include "mad.h"
#include "util.h"
#include "global.h"
#include "profile.h"
@ -64,7 +61,7 @@ static int is_loaded (char *FileName, TSecHeader **section)
TProfile *p = Base;
while (p){
if (!strcasecmp (FileName, p->FileName)){
if (! g_strcasecmp (FileName, p->FileName)){
Current = p;
*section = p->Section;
return 1;
@ -86,7 +83,7 @@ str_untranslate_newline_dup (char *s)
l += (*p == '\n' || *p == TRANSLATION_CHAR);
p++;
}
q = p = malloc (l + 1);
q = p = g_malloc (l + 1);
if (!q)
return 0;
for (;;) {
@ -116,7 +113,7 @@ static char *
str_translate_newline_dup (char *s)
{
char *p, *q;
q = p = malloc (strlen (s) + 1);
q = p = g_malloc (strlen (s) + 1);
if (!q)
return 0;
while (*s) {
@ -168,7 +165,7 @@ static TSecHeader *load (char *file)
if (c == ']' || overflow){
*next = '\0';
next = CharBuffer;
SecHeader->AppName = strdup (CharBuffer);
SecHeader->AppName = g_strdup (CharBuffer);
state = IgnoreToEOL;
} else
*next++ = c;
@ -188,8 +185,7 @@ static TSecHeader *load (char *file)
TSecHeader *temp;
temp = SecHeader;
SecHeader = (TSecHeader *) xmalloc (sizeof (TSecHeader),
"KeyDef");
SecHeader = g_new (TSecHeader, 1);
SecHeader->link = temp;
SecHeader->Keys = 0;
state = OnSecHeader;
@ -210,9 +206,9 @@ static TSecHeader *load (char *file)
temp = SecHeader->Keys;
*next = '\0';
SecHeader->Keys = (TKeys *) xmalloc (sizeof (TKeys), "KD2");
SecHeader->Keys =g_new (TKeys, 1);
SecHeader->Keys->link = temp;
SecHeader->Keys->KeyName = strdup (CharBuffer);
SecHeader->Keys->KeyName = g_strdup (CharBuffer);
state = KeyValue;
next = CharBuffer;
} else {
@ -250,9 +246,9 @@ static void new_key (TSecHeader *section, char *KeyName, char *Value)
{
TKeys *key;
key = (TKeys *) xmalloc (sizeof (TKeys), "new_key");
key->KeyName = strdup (KeyName);
key->Value = strdup (Value);
key = g_new (TKeys, 1);
key->KeyName = g_strdup (KeyName);
key->Value = g_strdup (Value);
key->link = section->Keys;
section->Keys = key;
}
@ -267,9 +263,9 @@ GetSetProfileChar (int set, char *AppName, char *KeyName,
TKeys *key;
if (!is_loaded (FileName, &section)){
New = (TProfile *) xmalloc (sizeof (TProfile), "GetSetProfile");
New = g_new (TProfile, 1);
New->link = Base;
New->FileName = strdup (FileName);
New->FileName = g_strdup (FileName);
New->Section = load (FileName);
Base = New;
section = New->Section;
@ -278,14 +274,14 @@ GetSetProfileChar (int set, char *AppName, char *KeyName,
/* Start search */
for (; section; section = section->link){
if (section->AppName == 0 || strcasecmp (section->AppName, AppName))
if (section->AppName == 0 || g_strcasecmp (section->AppName, AppName))
continue;
for (key = section->Keys; key; key = key->link){
if (strcasecmp (key->KeyName, KeyName))
if ( g_strcasecmp (key->KeyName, KeyName))
continue;
if (set){
free (key->Value);
key->Value = strdup (Default);
g_free (key->Value);
key->Value = g_strdup (Default);
}
return key->Value;
}
@ -300,8 +296,8 @@ GetSetProfileChar (int set, char *AppName, char *KeyName,
/* Non existent section */
if (set && Default){
section = (TSecHeader *) xmalloc (sizeof (TSecHeader), "GSP3");
section->AppName = strdup (AppName);
section = g_new (TSecHeader, 1);
section->AppName = g_strdup (AppName);
section->Keys = 0;
new_key (section, KeyName, Default);
section->link = Current->Section;
@ -350,18 +346,18 @@ int GetProfileString (char * AppName, char * KeyName, char * Default,
int GetPrivateProfileInt (char * AppName, char * KeyName, int Default,
char * File)
{
static char IntBuf [15];
static char buf [15];
static char IntBuf [BUF_TINY];
static char buf [BUF_TINY];
sprintf (buf, "%d", Default);
g_snprintf (buf, sizeof (buf), "%d", Default);
/* Check the exact semantic with the SDK */
GetPrivateProfileString (AppName, KeyName, buf, IntBuf, 15, File);
if (!strcasecmp (IntBuf, "true"))
GetPrivateProfileString (AppName, KeyName, buf, IntBuf, BUF_TINY, File);
if (! g_strcasecmp (IntBuf, "true"))
return 1;
if (!strcasecmp (IntBuf, "yes"))
if (! g_strcasecmp (IntBuf, "yes"))
return 1;
return atoi (IntBuf);
return (int) atol (IntBuf);
}
#if 0
@ -392,7 +388,7 @@ static void dump_keys (FILE * profile, TKeys * p)
dump_keys (profile, p->link);
t = str_untranslate_newline_dup (p->Value);
fprintf (profile, "%s=%s\n", p->KeyName, t);
free (t);
g_free (t);
}
static void dump_sections (FILE *profile, TSecHeader *p)
@ -435,9 +431,9 @@ static void free_keys (TKeys *p)
if (!p)
return;
free_keys (p->link);
free (p->KeyName);
free (p->Value);
free (p);
g_free (p->KeyName);
g_free (p->Value);
g_free (p);
}
static void free_sections (TSecHeader *p)
@ -446,10 +442,10 @@ static void free_sections (TSecHeader *p)
return;
free_sections (p->link);
free_keys (p->Keys);
free (p->AppName);
g_free (p->AppName);
p->link = 0;
p->Keys = 0;
free (p);
g_free (p);
}
static void free_profile (TProfile *p)
@ -458,8 +454,8 @@ static void free_profile (TProfile *p)
return;
free_profile (p->link);
free_sections (p->Section);
free (p->FileName);
free (p);
g_free (p->FileName);
g_free (p);
}
void free_profile_name (char *s)
@ -490,16 +486,16 @@ void *profile_init_iterator (char *appname, char *file)
TSecHeader *section;
if (!is_loaded (file, &section)){
New = (TProfile *) xmalloc (sizeof (TProfile), "GetSetProfile");
New = g_new (TProfile, 1);
New->link = Base;
New->FileName = strdup (file);
New->FileName = g_strdup (file);
New->Section = load (file);
Base = New;
section = New->Section;
Current = New;
}
for (; section; section = section->link){
if (strcasecmp (section->AppName, appname))
if ( g_strcasecmp (section->AppName, appname))
continue;
return section->Keys;
}
@ -531,7 +527,7 @@ void profile_clean_section (char *appname, char *file)
/* won't be find by further walks of the structure */
for (; section; section = section->link){
if (strcasecmp (section->AppName, appname))
if ( g_strcasecmp (section->AppName, appname))
continue;
section->AppName [0] = 0;
}
@ -546,7 +542,7 @@ int profile_has_section (char *section_name, char *profile)
return 0;
}
for (; section; section = section->link){
if (strcasecmp (section->AppName, section_name))
if ( g_strcasecmp (section->AppName, section_name))
continue;
return 1;
}
@ -558,7 +554,7 @@ void profile_forget_profile (char *file)
TProfile *p;
for (p = Base; p; p = p->link){
if (strcasecmp (file, p->FileName))
if ( g_strcasecmp (file, p->FileName))
continue;
p->FileName [0] = 0;
}

Просмотреть файл

@ -18,13 +18,11 @@
#include <config.h>
#include <stdio.h> /* read, printf */
#include <stdlib.h> /* getenv */
#include <sys/types.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <malloc.h> /* malloc */
#ifndef SCO_FLAVOR
# include <sys/time.h> /* struct timeval */
@ -35,7 +33,7 @@
#endif
#include "tty.h" /* move, addch */
#include "util.h" /* is_printable */
#include "global.h"
#include "cons.saver.h"
int rxvt_extensions = 0;
@ -101,7 +99,7 @@ void show_rxvt_contents (int starty, unsigned char y1, unsigned char y2)
bytes = (y2 - y1) * (COLS + 1) + 1; /* *should* be the number of bytes read */
j = 0;
k = malloc (bytes);
k = g_malloc (bytes);
for (;;) {
int c;
c = rxvt_getc ();
@ -122,6 +120,6 @@ void show_rxvt_contents (int starty, unsigned char y1, unsigned char y2)
move (starty + (i / cols), 0);
addch (is_printable (k[i]) ? k[i] : ' ');
}
free (k);
g_free (k);
}

Просмотреть файл

@ -20,24 +20,15 @@
#include <config.h>
#include "tty.h"
#include "fs.h"
#include <sys/param.h>
#include <string.h>
#include <stdlib.h> /* For malloc() and free() */
#include <stdio.h>
#include <errno.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h> /* For chdir(), readlink() and getwd()/getcwd() */
#endif
/*#include "mc.h"*/
#include <glib.h>
#include "mem.h"
#include "mad.h"
#include "global.h"
#include "dir.h"
#include "util.h"
#include "panel.h"
#include "color.h"
#include "tree.h"
@ -152,7 +143,7 @@ delete_format (format_e *format)
while (format){
next = format->next;
free (format);
g_free (format);
format = next;
}
}
@ -272,34 +263,35 @@ string_file_permission (file_entry *fe, int len)
char *
string_file_nlinks (file_entry *fe, int len)
{
static char buffer [20];
static char buffer [BUF_TINY];
sprintf (buffer, "%16d", fe->buf.st_nlink);
g_snprintf (buffer, sizeof (buffer), "%16d", fe->buf.st_nlink);
return buffer;
}
char *
string_file_size (file_entry *fe, int len)
{
static char buffer [16];
static char buffer [BUF_TINY];
int i;
#ifdef HAVE_ST_RDEV
if (S_ISBLK (fe->buf.st_mode) || S_ISCHR (fe->buf.st_mode))
sprintf (buffer, "%3d,%3d", (int) ((fe->buf.st_rdev >> 8) & 0xff),
(int) (fe->buf.st_rdev & 0xff));
g_snprintf (buffer, sizeof (buffer), "%3d,%3d",
(int) ((fe->buf.st_rdev >> 8) & 0xff),
(int) (fe->buf.st_rdev & 0xff));
else
#endif
{
sprintf (buffer, "%lu", (unsigned long) fe->buf.st_size);
g_snprintf (buffer, sizeof (buffer), "%lu", (unsigned long) fe->buf.st_size);
if (len && (i = strlen (buffer)) > len) {
if (i - 2 > len) {
if (i - 5 > len)
sprintf (buffer, "%luG", (unsigned long) ((fe->buf.st_size) >> 30));
g_snprintf (buffer, sizeof (buffer), "%luG", (unsigned long) ((fe->buf.st_size) >> 30));
else
sprintf (buffer, "%luM", (unsigned long) ((fe->buf.st_size) >> 20));
g_snprintf (buffer, sizeof (buffer), "%luM", (unsigned long) ((fe->buf.st_size) >> 20));
} else
sprintf (buffer, "%luK", (unsigned long) ((fe->buf.st_size) >> 10));
g_snprintf (buffer, sizeof (buffer), "%luK", (unsigned long) ((fe->buf.st_size) >> 10));
}
}
return buffer;
@ -392,36 +384,36 @@ string_marked (file_entry *fe, int len)
char *
string_file_perm_octal (file_entry *fe, int len)
{
static char buffer [9];
static char buffer [10];
sprintf (buffer, "0%06o", fe->buf.st_mode);
g_snprintf (buffer, sizeof (buffer), "0%06o", fe->buf.st_mode);
return buffer;
}
char *
string_inode (file_entry *fe, int len)
{
static char buffer [9];
static char buffer [10];
sprintf (buffer, "%ld", (long) fe->buf.st_ino);
g_snprintf (buffer, sizeof (buffer), "%ld", (long) fe->buf.st_ino);
return buffer;
}
char *
string_file_ngid (file_entry *fe, int len)
{
static char buffer [9];
static char buffer [10];
sprintf (buffer, "%d", fe->buf.st_gid);
g_snprintf (buffer, sizeof (buffer), "%d", fe->buf.st_gid);
return buffer;
}
char *
string_file_nuid (file_entry *fe, int len)
{
static char buffer [9];
static char buffer [10];
sprintf (buffer, "%d", fe->buf.st_uid);
g_snprintf (buffer, sizeof (buffer), "%d", fe->buf.st_uid);
return buffer;
}
@ -657,13 +649,13 @@ display_mini_info (WPanel *panel)
/* Status displays total marked size */
if (panel->marked){
char buffer [100];
char buffer [BUF_SMALL];
char *p;
attrset (MARKED_COLOR);
printw ("%*s", panel->widget.cols-2, " ");
widget_move (&panel->widget, llines (panel)+3, 1);
sprintf (buffer, _(" %s bytes in %d file%s"),
g_snprintf (buffer, sizeof (buffer), _(" %s bytes in %d file%s"),
size_trunc_sep (panel->total), panel->marked,
panel->marked == 1 ? "" : "s");
p = buffer;
@ -684,7 +676,7 @@ display_mini_info (WPanel *panel)
link = concat_dir_and_file (panel->cwd, panel->dir.list [panel->selected].fname);
len = mc_readlink (link, link_target, MC_MAXPATHLEN);
free (link);
g_free (link);
if (len > 0){
link_target[len] = 0;
printw ("-> %-*s", panel->widget.cols - 5,
@ -868,7 +860,7 @@ Xtry_to_select (WPanel *panel, char *name)
for (i = 0; i < panel->count; i++){
if (strcmp (subdir, panel->dir.list [i].fname) == 0) {
do_select (panel, i);
free (subdir);
g_free (subdir);
return;
}
}
@ -876,7 +868,7 @@ Xtry_to_select (WPanel *panel, char *name)
/* Try to select a file near the file that is missing */
if (panel->selected >= panel->count)
do_select (panel, panel->count-1);
free (subdir);
g_free (subdir);
}
#ifndef PORT_HAS_PANEL_UPDATE_COLS
@ -915,9 +907,9 @@ panel_save_name (WPanel *panel)
/* If the program is shuting down */
if ((midnight_shutdown && auto_save_setup) || saving_setup)
return copy_strings (panel->panel_name, 0);
return g_strconcat (panel->panel_name, NULL);
else
return copy_strings ("Temporal:", panel->panel_name, 0);
return g_strconcat ("Temporal:", panel->panel_name, NULL);
}
static void
@ -941,21 +933,21 @@ panel_destroy (WPanel *p)
while (current){
old = current;
current = current->prev;
free (old->text);
free (old);
g_free (old->text);
g_free (old);
}
}
free (p->hist_name);
g_free (p->hist_name);
delete_format (p->format);
delete_format (p->status_format);
free (p->user_format);
g_free (p->user_format);
for (i = 0; i < LIST_TYPES; i++)
free (p->user_status_format [i]);
free (p->dir.list);
free (p->panel_name);
free (name);
g_free (p->user_status_format [i]);
g_free (p->dir.list);
g_free (p->panel_name);
g_free (name);
}
static void
@ -982,8 +974,7 @@ panel_new (char *panel_name)
char *section;
int i, err;
panel = xmalloc (sizeof (WPanel), "panel_new");
memset (panel, 0, sizeof (WPanel));
panel = g_new0 (WPanel, 1);
/* No know sizes of the panel at startup */
init_widget (&panel->widget, 0, 0, 0, 0, (callback_fn)
@ -996,11 +987,11 @@ panel_new (char *panel_name)
mc_get_current_wd (panel->cwd, sizeof (panel->cwd)-2);
strcpy (panel->lwd, ".");
panel->hist_name = copy_strings ("Dir Hist ", panel_name, 0);
panel->hist_name = g_strconcat ("Dir Hist ", panel_name, NULL);
panel->dir_history = history_get (panel->hist_name);
directory_history_add (panel, panel->cwd);
panel->dir.list = (file_entry *) malloc (MIN_FILES * sizeof (file_entry));
panel->dir.list = g_new (file_entry, MIN_FILES);
panel->dir.size = MIN_FILES;
panel->active = 0;
panel->filter = 0;
@ -1018,32 +1009,32 @@ panel_new (char *panel_name)
panel->status_format = 0;
panel->format_modified = 1;
panel->panel_name = strdup (panel_name);
panel->user_format = strdup (DEFAULT_USER_FORMAT);
panel->panel_name = g_strdup (panel_name);
panel->user_format = g_strdup (DEFAULT_USER_FORMAT);
for(i = 0; i < LIST_TYPES; i++)
panel->user_status_format [i] = strdup (DEFAULT_USER_FORMAT);
panel->user_status_format [i] = g_strdup (DEFAULT_USER_FORMAT);
panel->search_buffer [0] = 0;
panel->frame_size = frame_half;
section = copy_strings ("Temporal:", panel->panel_name, 0);
section = g_strconcat ("Temporal:", panel->panel_name, NULL);
if (!profile_has_section (section, profile_name)){
free (section);
section = strdup (panel->panel_name);
g_free (section);
section = g_strdup (panel->panel_name);
}
panel_load_setup (panel, section);
free (section);
g_free (section);
/* Load format strings */
err = set_panel_formats (panel);
if (err){
if (err & 0x01){
free (panel->user_format);
panel->user_format = strdup (DEFAULT_USER_FORMAT);
g_free (panel->user_format);
panel->user_format = g_strdup (DEFAULT_USER_FORMAT);
}
if (err & 0x02){
free (panel->user_status_format [panel->list_type]);
panel->user_status_format [panel->list_type] = strdup (DEFAULT_USER_FORMAT);
g_free (panel->user_status_format [panel->list_type]);
panel->user_status_format [panel->list_type] = g_strdup (DEFAULT_USER_FORMAT);
}
set_panel_formats (panel);
}
@ -1078,7 +1069,7 @@ panel_reload (WPanel *panel)
strcpy (panel->cwd, PATH_SEP_STR);
else
*last_slash = 0;
bzero (&(panel->dir_stat), sizeof (panel->dir_stat));
memset (&(panel->dir_stat), 0, sizeof (panel->dir_stat));
show_dir (panel);
}
@ -1223,7 +1214,7 @@ parse_display_format (WPanel *panel, char *format, char **error, int isstatus, i
while (*format){ /* format can be an empty string */
int found = 0;
darr = xmalloc (sizeof (format_e), "parse_display_format");
darr = g_new (format_e, 1);
/* I'm so ugly, don't look at me :-) */
if (!home)
@ -1303,7 +1294,7 @@ parse_display_format (WPanel *panel, char *format, char **error, int isstatus, i
delete_format (home);
old_char = format [pos];
format [pos] = 0;
*error = copy_strings(_("Unknow tag on display format: "), format, 0);
*error = g_strconcat (_("Unknow tag on display format: "), format, NULL);
format [pos] = old_char;
return 0;
}
@ -1399,7 +1390,7 @@ set_panel_formats (WPanel *p)
form = use_display_format (p, panel_format (p), &err, 0);
if (err){
free (err);
g_free (err);
retcode = 1;
}
else {
@ -1414,7 +1405,7 @@ set_panel_formats (WPanel *p)
form = use_display_format (p, mini_status_format (p), &err, 1);
if (err){
free (err);
g_free (err);
retcode += 2;
}
else {
@ -2061,13 +2052,13 @@ do_enter_on_file_entry (file_entry *fe)
#endif
{
char *tmp = name_quote (fe->fname, 0);
char *cmd = copy_strings (".", PATH_SEP_STR, tmp, 0);
char *cmd = g_strconcat (".", PATH_SEP_STR, tmp, NULL);
if (!confirm_execute || (query_dialog (_(" The Midnight Commander "),
_(" Do you really want to execute? "),
0, 2, _("&Yes"), _("&No")) == 0))
execute (cmd);
free (tmp);
free (cmd);
g_free (tmp);
g_free (cmd);
}
#ifdef USE_VFS
else {
@ -2080,7 +2071,7 @@ do_enter_on_file_entry (file_entry *fe)
if (!mc_setctl (tmp, MCCTL_EXTFS_RUN, NULL))
message (1, _(" Warning "), _(" No action taken "));
free (tmp);
g_free (tmp);
}
#endif /* USE_VFS */
return 1;
@ -2128,7 +2119,7 @@ chdir_other_panel (WPanel *panel)
move_down (panel);
free (new_dir);
g_free (new_dir);
}
static void
@ -2161,7 +2152,7 @@ chdir_to_readlink (WPanel *panel)
p[1] = 0;
}
if (*buffer == PATH_SEP)
new_dir = strdup (buffer);
new_dir = g_strdup (buffer);
else
new_dir = concat_dir_and_file (panel->cwd, buffer);
@ -2171,7 +2162,7 @@ chdir_to_readlink (WPanel *panel)
move_down (panel);
free (new_dir);
g_free (new_dir);
}
}
@ -2568,7 +2559,7 @@ panel_re_sort (WPanel *panel)
if (panel == NULL)
return;
filename = strdup (selection (panel)->fname);
filename = g_strdup (selection (panel)->fname);
unselect_item (panel);
do_sort (&panel->dir, panel->sort_type, panel->count-1, panel->reverse, panel->case_sensitive);
panel->selected = -1;
@ -2578,7 +2569,7 @@ panel_re_sort (WPanel *panel)
break;
}
}
free (filename);
g_free (filename);
panel->top_file = panel->selected - ITEMS (panel)/2;
if (panel->top_file < 0)
panel->top_file = 0;
@ -2598,10 +2589,10 @@ panel_set_sort_order (WPanel *panel, sortfn *sort_order)
if (sort_order == (sortfn *) unsorted){
char *current_file;
current_file = strdup (panel->dir.list [panel->selected].fname);
current_file = g_strdup (panel->dir.list [panel->selected].fname);
panel_reload (panel);
try_to_select (panel, current_file);
free (current_file);
g_free (current_file);
}
panel_re_sort (panel);
}

Просмотреть файл

@ -21,12 +21,9 @@
#include <sys/param.h>
#include <string.h>
#include "tty.h"
#include <stdlib.h>
#include <stdio.h>
#include "mad.h"
#include "dir.h"
#include "global.h"
#include "util.h" /* Functions and externs */
#include "dir.h"
#include "panel.h"
#include "main.h"
#include "tree.h"
@ -256,12 +253,12 @@ static struct {
void
panel_save_setup (WPanel *panel, char *section)
{
char buffer [40];
char buffer [BUF_TINY];
int i;
sprintf (buffer, "%d", panel->reverse);
g_snprintf (buffer, sizeof (buffer), "%d", panel->reverse);
save_string (section, "reverse", buffer, profile_name);
sprintf (buffer, "%d", panel->case_sensitive);
g_snprintf (buffer, sizeof (buffer), "%d", panel->case_sensitive);
save_string (section, "case_sensitive", buffer, profile_name);
for (i = 0; sort_names [i].key; i++)
if (sort_names [i].sort_type == (sortfn *) panel->sort_type){
@ -280,12 +277,12 @@ panel_save_setup (WPanel *panel, char *section)
panel->user_format, profile_name);
for (i = 0; i < LIST_TYPES; i++){
sprintf (buffer, "user_status%d", i);
g_snprintf (buffer, sizeof (buffer), "user_status%d", i);
save_string (section, buffer,
panel->user_status_format [i], profile_name);
}
sprintf (buffer, "%d", panel->user_mini_status);
g_snprintf (buffer, sizeof (buffer), "%d", panel->user_mini_status);
save_string (section, "user_mini_status", buffer,
profile_name);
}
@ -295,17 +292,17 @@ save_layout (void)
{
char *profile;
int i;
char buffer [6];
char buffer [BUF_TINY];
profile = concat_dir_and_file (home_dir, PROFILE_NAME);
/* Save integer options */
for (i = 0; layout [i].opt_name; i++){
sprintf (buffer, "%d", *layout [i].opt_addr);
g_snprintf (buffer, sizeof (buffer), "%d", *layout [i].opt_addr);
save_string ("Layout", layout [i].opt_name, buffer, profile);
}
free (profile);
g_free (profile);
}
void
@ -320,7 +317,7 @@ save_configure (void)
for (i = 0; options [i].opt_name; i++)
set_int (profile, options [i].opt_name, *options [i].opt_addr);
free (profile);
g_free (profile);
}
static void
@ -387,7 +384,7 @@ save_setup (void)
ftpfs_proxy_host, profile);
#endif
#endif
free (profile);
g_free (profile);
saving_setup = 0;
}
@ -395,7 +392,7 @@ void
panel_load_setup (WPanel *panel, char *section)
{
int i;
char buffer [40];
char buffer [BUF_TINY];
panel->reverse = load_int (section, "reverse", 0);
panel->case_sensitive = load_int (section, "case_sensitive", OS_SORT_CASE_SENSITIVE_DEFAULT);
@ -404,7 +401,7 @@ panel_load_setup (WPanel *panel, char *section)
load_string (section, "sort_order", "name", buffer, sizeof (buffer));
panel->sort_type = (sortfn *) sort_name;
for (i = 0; sort_names [i].key; i++)
if (strcasecmp (sort_names [i].key, buffer) == 0){
if ( g_strcasecmp (sort_names [i].key, buffer) == 0){
panel->sort_type = sort_names [i].sort_type;
break;
}
@ -413,7 +410,7 @@ panel_load_setup (WPanel *panel, char *section)
load_string (section, PORT_LIST_MODE_NAME, PORT_LIST_MODE_DEFAULT, buffer, sizeof (buffer));
panel->list_type = list_full;
for (i = 0; list_types [i].key; i++)
if (strcasecmp (list_types [i].key, buffer) == 0){
if ( g_strcasecmp (list_types [i].key, buffer) == 0){
panel->list_type = list_types [i].list_type;
break;
}
@ -423,18 +420,18 @@ panel_load_setup (WPanel *panel, char *section)
#endif
/* User formats */
if (panel->user_format){
free (panel->user_format);
g_free (panel->user_format);
panel->user_format = 0;
}
panel->user_format = strdup (get_profile_string (section, "user_format",
panel->user_format = g_strdup (get_profile_string (section, "user_format",
DEFAULT_USER_FORMAT,
profile_name));
for (i = 0; i < LIST_TYPES; i++){
if (panel->user_status_format [i])
free (panel->user_status_format [i]);
sprintf (buffer, "user_status%d", i);
g_free (panel->user_status_format [i]);
g_snprintf (buffer, sizeof (buffer), "user_status%d", i);
panel->user_status_format [i] =
strdup (get_profile_string (section, buffer,
g_strdup (get_profile_string (section, buffer,
DEFAULT_USER_FORMAT, profile_name));
}
@ -466,7 +463,7 @@ load_mode (char *section)
load_string (section, "display", "listing", buffer, sizeof (buffer));
for (i = 0; panel_types [i].opt_name; i++)
if (strcasecmp (panel_types [i].opt_name, buffer) == 0){
if ( g_strcasecmp (panel_types [i].opt_name, buffer) == 0){
mode = panel_types [i].opt_type;
break;
}
@ -477,13 +474,13 @@ load_mode (char *section)
static char *
do_load_string (char *s, char *ss, char *def)
{
char *buffer = xmalloc (128, "dls");
char *buffer = g_malloc (128);
char *p;
load_string (s, ss, def, buffer, 128);
p = strdup (buffer);
free (buffer);
p = g_strdup (buffer);
g_free (buffer);
return p;
}
@ -502,12 +499,12 @@ load_setup (void)
if (exist_file (buffer)){
profile = buffer;
} else if (exist_file (inifile)){
profile = strdup (inifile);
free (buffer);
profile = g_strdup (inifile);
g_free (buffer);
} else {
profile = buffer;
}
free (inifile);
g_free (inifile);
profile_name = profile;
@ -528,13 +525,13 @@ load_setup (void)
startup_left_mode = view_listing;
if (!other_dir){
buffer = (char*) malloc (MC_MAXPATHLEN);
buffer = (char*) g_malloc (MC_MAXPATHLEN);
load_string ("Dirs", "other_dir", ".", buffer,
MC_MAXPATHLEN);
if (vfs_file_is_local (buffer))
other_dir = buffer;
else
free (buffer);
g_free (buffer);
}
#ifdef USE_NETCODE
ftpfs_proxy_host = do_load_string ("Misc", "ftp_proxy_host", "gate");
@ -545,7 +542,7 @@ load_setup (void)
load_string ("Misc", "find_ignore_dirs", "", setup_color_string,
sizeof (setup_color_string));
if (setup_color_string [0])
find_ignore_dirs = copy_strings (":", setup_color_string, ":", 0);
find_ignore_dirs = g_strconcat (":", setup_color_string, ":", NULL);
/* The default color and the terminal dependent color */
load_string ("Colors", "base_color", "", setup_color_string,
@ -576,7 +573,7 @@ load_anon_passwd ()
load_string ("Misc", "ftpfs_password", "", buffer, sizeof (buffer));
if (buffer [0])
return strdup (buffer);
return g_strdup (buffer);
else
return 0;
}
@ -585,7 +582,7 @@ load_anon_passwd ()
void done_setup (void)
{
free (profile_name);
g_free (profile_name);
done_hotlist ();
done_panelize ();
/* directory_history_free (); */
@ -602,10 +599,10 @@ load_keys_from_section (char *terminal, char *profile_name)
if (!terminal)
return;
section_name = copy_strings ("terminal:", terminal, 0);
section_name = g_strconcat ("terminal:", terminal, NULL);
profile_keys = profile_init_iterator (section_name, profile_name);
if (!profile_keys){
free (section_name);
g_free (section_name);
return;
}
@ -615,9 +612,9 @@ load_keys_from_section (char *terminal, char *profile_name)
valcopy = convert_controls (value);
if (key_code)
define_sequence (key_code, valcopy, MCKEY_NOACTION);
free (valcopy);
g_free (valcopy);
}
free (section_name);
g_free (section_name);
return;
}
@ -632,5 +629,5 @@ void load_key_defs (void)
/* We don't want a huge database loaded in core */
free_profile_name (libfile);
free (libfile);
g_free (libfile);
}

Просмотреть файл

@ -27,9 +27,8 @@
#include <signal.h>
#include <string.h>
#include "tty.h"
#include "mad.h"
#include "global.h"
#include "color.h"
#include "util.h"
#include "mouse.h" /* Gpm_Event is required in key.h */
#include "key.h" /* define_sequence */
#include "main.h" /* extern: force_colors */
@ -274,13 +273,13 @@ slang_reset_softkeys (void)
int key;
char *send;
char *display = " ";
char tmp[100];
char tmp[BUF_SMALL];
for ( key = 1; key < 9; key++ ) {
sprintf ( tmp, "k%d", key);
g_snprintf (tmp, sizeof (tmp), "k%d", key);
send = (char *) SLtt_tgetstr (tmp);
if (send) {
sprintf(tmp, "\033&f%dk%dd%dL%s%s", key,
g_snprintf(tmp, sizeof (tmp), "\033&f%dk%dd%dL%s%s", key,
strlen(display), strlen(send), display, send);
SLtt_write_string (tmp);
}
@ -394,11 +393,11 @@ try_alloc_color_pair (char *fg, char *bg)
break;
p = p->next;
}
p->next = malloc (sizeof (c));
p->next = g_new (struct colors_avail, 1);
p = p->next;
p->next = 0;
p->fg = fg ? strdup (fg) : 0;
p->bg = bg ? strdup (bg) : 0;
p->fg = fg ? g_strdup (fg) : 0;
p->bg = bg ? g_strdup (bg) : 0;
if (!fg)
/* Index in color_map array = COLOR_INDEX - 1 */
fg = color_map[EDITOR_NORMAL_COLOR_INDEX - 1].fg;

Просмотреть файл

@ -207,7 +207,7 @@ void init_subshell (void)
/* {{{ Local variables */
/* This must be remembered across calls to init_subshell() */
static char pty_name[40];
static char pty_name[BUF_SMALL];
int pty_slave;
/* Braindead tcsh can't redirect output to a file descriptor? */
@ -264,14 +264,14 @@ void init_subshell (void)
/* {{{ Initialise the pty's I/O buffer */
pty_buffer_size = INITIAL_PTY_BUFFER_SIZE;
pty_buffer = (char *) malloc (pty_buffer_size);
pty_buffer = (char *) g_malloc (pty_buffer_size);
/* }}} */
/* {{{ Create a pipe for receiving the subshell's CWD */
if (subshell_type == TCSH)
{
sprintf (tcsh_fifo, "/tmp/mc.pipe.%d", getpid ());
g_snprintf (tcsh_fifo, sizeof (tcsh_fifo), "/tmp/mc.pipe.%d", getpid ());
if (mkfifo (tcsh_fifo, 0600) == -1)
{
perror (__FILE__": mkfifo");
@ -493,20 +493,20 @@ void init_subshell (void)
switch (subshell_type)
{
char precmd[80];
char precmd[BUF_SMALL];
case BASH:
sprintf (precmd, " PROMPT_COMMAND='pwd>&%d;kill -STOP $$'\n",
g_snprintf (precmd, sizeof (precmd), " PROMPT_COMMAND='pwd>&%d;kill -STOP $$'\n",
subshell_pipe[WRITE]);
goto write_it;
case ZSH:
sprintf (precmd, "precmd(){ pwd>&%d;kill -STOP $$ }\n",
g_snprintf (precmd, sizeof (precmd), "precmd(){ pwd>&%d;kill -STOP $$ }\n",
subshell_pipe[WRITE]);
goto write_it;
case TCSH:
sprintf (precmd, "alias precmd 'echo $cwd:q >>%s;kill -STOP $$'\n", tcsh_fifo);
g_snprintf (precmd, sizeof (precmd), "alias precmd 'echo $cwd:q >>%s;kill -STOP $$'\n", tcsh_fifo);
write_it:
write (subshell_pty, precmd, strlen (precmd));
@ -617,7 +617,7 @@ int read_subshell_prompt (int how)
if (subshell_prompt == NULL) /* First time through */
{
subshell_prompt = (char *) malloc (prompt_size);
subshell_prompt = (char *) g_malloc (prompt_size);
*subshell_prompt = '\0';
prompt_pos = 0;
}
@ -656,7 +656,7 @@ int read_subshell_prompt (int how)
subshell_prompt[prompt_pos++] = pty_buffer[i];
if (prompt_pos == prompt_size)
subshell_prompt = (char *) realloc (subshell_prompt,
subshell_prompt = (char *) g_realloc (subshell_prompt,
prompt_size *= 2);
}
@ -705,10 +705,10 @@ int exit_subshell (void)
else
{
if (subshell_type == TCSH)
sprintf (pty_buffer, " echo -n Jobs:>/tmp/mc.pipe.%d;jobs>/tmp/"
g_snprintf (pty_buffer, sizeof (pty_buffer), " echo -n Jobs:>/tmp/mc.pipe.%d;jobs>/tmp/"
"mc.pipe.%d;kill -STOP $$\n", getpid (), getpid ());
else
sprintf (pty_buffer, " echo -n Jobs:>&%d;jobs>&%d;kill -STOP $$\n",
g_snprintf (pty_buffer, sizeof (pty_buffer), " echo -n Jobs:>&%d;jobs>&%d;kill -STOP $$\n",
subshell_pipe[WRITE], subshell_pipe[WRITE]);
write (subshell_pty, pty_buffer, strlen (pty_buffer));
@ -735,7 +735,7 @@ int exit_subshell (void)
if (quit && subshell_type == TCSH)
{
/* We abuse of pty_buffer here, but it doesn't matter at this stage */
sprintf (pty_buffer, "/tmp/mc.pipe.%d", getpid ());
g_snprintf (pty_buffer, sizeof (pty_buffer), "/tmp/mc.pipe.%d", getpid ());
if (unlink (pty_buffer) == -1)
perror (__FILE__": couldn't remove named pipe /tmp/mc.pipe.NNN");
}
@ -767,7 +767,7 @@ void do_subshell_chdir (char *directory, int do_update, int reset_prompt)
if (*directory) {
temp = name_quote (directory, 0);
write (subshell_pty, temp, strlen (temp));
free (temp);
g_free (temp);
} else {
write (subshell_pty, "/", 1);
}
@ -1030,7 +1030,7 @@ static int pty_open_master (char *pty_name)
ptr = pty_name+9;
for (num=0;;num++)
{
sprintf(ptr,"%d",num); /* surpriiise ... SCO lacks itoa() */
g_snprintf(ptr, 9, "%d",num); /* surpriiise ... SCO lacks itoa() */
/* Try to open master */
if ((pty_master = open (pty_name, O_RDWR)) == -1)
if (errno == ENOENT) /* Different from EIO */

Просмотреть файл

@ -31,9 +31,7 @@
#include <errno.h>
#include <stdio.h>
#include "tty.h"
#include "mad.h"
#include "global.h"
#include "util.h"
#include "color.h"
#include "dialog.h"
#include "dir.h"
@ -106,7 +104,7 @@ static tree_entry *tree_append_entry (WTree *tree, char *name)
/* We assume the directory is not yet in the list */
new = xmalloc (sizeof (tree_entry), "tree, tree_entry");
new = g_new (tree_entry, 1);
if (!tree->store->tree_first){
/* Empty list */
tree->store->tree_first = new;
@ -119,7 +117,7 @@ static tree_entry *tree_append_entry (WTree *tree, char *name)
tree->store->tree_last = new;
/* Calculate attributes */
new->name = strdup (name);
new->name = g_strdup (name);
len = strlen (new->name);
new->sublevel = 0;
for (i = 0; i < len; i++)
@ -169,7 +167,7 @@ void tree_destroy (WTree *tree)
tree_store_destroy ();
if (tree->tree_shown){
free (tree->tree_shown);
g_free (tree->tree_shown);
tree->tree_shown = 0;
}
tree->selected_ptr = NULL;
@ -183,7 +181,7 @@ void load_tree (WTree *tree)
filename = concat_dir_and_file (home_dir, MC_TREE);
v = tree_store_load (filename);
free (filename);
g_free (filename);
tree->selected_ptr = tree->store->tree_first;
@ -198,7 +196,7 @@ void save_tree (WTree *tree)
filename = concat_dir_and_file (home_dir, MC_TREE);
error = tree_store_save (filename);
free (filename);
g_free (filename);
if (error){
fprintf (stderr, _("Can't open the %s file for writing:\n%s\n"), MC_TREE,
@ -260,9 +258,9 @@ void show_tree (WTree *tree)
}
if (tree->tree_shown)
free (tree->tree_shown);
tree->tree_shown = (tree_entry**)xmalloc (sizeof (tree_entry*)*tree_lines,
"tree, show_tree");
g_free (tree->tree_shown);
tree->tree_shown = g_new (tree_entry*, tree_lines);
for (i = 0; i < tree_lines; i++)
tree->tree_shown [i] = NULL;
if (tree->store->tree_first)
@ -646,7 +644,7 @@ void tree_copy (WTree *tree, char *default_dest)
if (!tree->selected_ptr)
return;
sprintf (cmd_buf, _("Copy \"%s\" directory to:"),
g_snprintf (cmd_buf, sizeof(cmd_buf), _("Copy \"%s\" directory to:"),
name_trunc (tree->selected_ptr->name, 50));
dest = input_expand_dialog (_(" Copy "), cmd_buf, default_dest);
if (!dest || !*dest){
@ -658,14 +656,14 @@ void tree_copy (WTree *tree, char *default_dest)
copy_dir_dir (ctx, tree->selected_ptr->name, dest, 1, 0, 0, 0, &count, &bytes);
file_op_context_destroy (ctx);
free (dest);
g_free (dest);
}
static void tree_help_cmd (void)
{
char *hlpfile = concat_dir_and_file (mc_home, "mc.hlp");
interactive_display (hlpfile, "[Directory Tree]");
free (hlpfile);
g_free (hlpfile);
}
static int tree_copy_cmd (WTree *tree)
@ -684,7 +682,7 @@ void tree_move (WTree *tree, char *default_dest)
if (!tree->selected_ptr)
return;
sprintf (cmd_buf, _("Move \"%s\" directory to:"),
g_snprintf (cmd_buf, sizeof (cmd_buf), _("Move \"%s\" directory to:"),
name_trunc (tree->selected_ptr->name, 50));
dest = input_expand_dialog (_(" Move "), cmd_buf, default_dest);
if (!dest || !*dest){
@ -693,12 +691,12 @@ void tree_move (WTree *tree, char *default_dest)
if (stat (dest, &buf)){
message (1, _(" Error "), _(" Can't stat the destination \n %s "),
unix_error_string (errno));
free (dest);
g_free (dest);
return;
}
if (!S_ISDIR (buf.st_mode)){
message (1, _(" Error "), _(" The destination isn't a directory "));
free (dest);
g_free (dest);
return;
}
@ -707,7 +705,7 @@ void tree_move (WTree *tree, char *default_dest)
move_dir_dir (ctx, tree->selected_ptr->name, dest, &count, &bytes);
file_op_context_destroy (ctx);
free (dest);
g_free (dest);
}
static int
@ -750,14 +748,12 @@ tree_rmdir_cmd (WTree *tree)
if (mc_chdir (PATH_SEP_STR))
return;
if (confirm_delete){
char *cmd_buf;
char *buf;
int result;
cmd_buf = xmalloc (strlen (tree->selected_ptr->name) + 20,
"tree, rmdir_cmd");
sprintf (cmd_buf, _(" Delete %s? "), tree->selected_ptr->name);
result = query_dialog (_(" Delete "), cmd_buf, 3, 2, _("&Yes"), _("&No"));
free (cmd_buf);
buf = g_strdup_printf (_(" Delete %s? "), tree->selected_ptr->name);
result = query_dialog (_(" Delete "), buf, 3, 2, _("&Yes"), _("&No"));
g_free (buf);
if (result != 0){
return;
}
@ -1059,7 +1055,7 @@ tree_callback (Dlg_head *h, WTree *tree, int msg, int par)
WTree *
tree_new (int is_panel, int y, int x, int lines, int cols)
{
WTree *tree = xmalloc (sizeof (WTree), "tree_new");
WTree *tree = g_new (WTree, 1);
init_widget (&tree->widget, y, x, lines, cols, tcallback,
(destroy_fn) tree_destroy, (mouse_h) event_callback, NULL);

Просмотреть файл

@ -41,14 +41,10 @@
#include <errno.h>
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include "fs.h"
#include "../vfs/vfs.h"
#include "util.h"
#include "mad.h"
#include "global.h"
#include "treestore.h"
#include "../vfs/vfs.h"
#ifdef OS2_NT
# include <io.h>
#endif
@ -155,8 +151,8 @@ tree_store_destroy (void)
while (current){
old = current;
current = current->next;
free (old->name);
free (old);
g_free (old->name);
g_free (old);
}
ts.tree_first = NULL;
@ -167,7 +163,7 @@ tree_store_destroy (void)
static char *
decode (char *buffer)
{
char *res = strdup (buffer);
char *res = g_strdup (buffer);
char *p, *q;
for (p = q = res; *p; p++, q++){
@ -275,7 +271,7 @@ tree_store_load (char *name)
e->scanned = scanned;
strcpy (oldname, name);
}
free (name);
g_free (name);
}
fclose (file);
}
@ -302,7 +298,7 @@ encode (char *string)
special_chars++;
}
res = malloc (p - string + special_chars + 1);
res = g_malloc (p - string + special_chars + 1);
for (p = string, q = res; *p; p++, q++){
if (*p != '\n' && *p != '\\'){
*q = *p;
@ -346,12 +342,12 @@ tree_store_save (char *name)
char *encoded = encode (current->name + common);
i = fprintf (file, "%d:%d %s\n", current->scanned, common, encoded);
free (encoded);
g_free (encoded);
} else {
char *encoded = encode (current->name);
i = fprintf (file, "%d:%s\n", current->scanned, encoded);
free (encoded);
g_free (encoded);
}
if (i == EOF){
@ -390,7 +386,7 @@ tree_store_add_entry (char *name)
return current; /* Already in the list */
/* Not in the list -> add it */
new = xmalloc (sizeof (tree_entry), "ts, tree_entry");
new = g_new (tree_entry, 1);
if (!current){
/* Append to the end of the list */
if (!ts.tree_first){
@ -419,7 +415,7 @@ tree_store_add_entry (char *name)
}
/* Calculate attributes */
new->name = strdup (name);
new->name = g_strdup (name);
len = strlen (new->name);
new->sublevel = 0;
for (i = 0; i < len; i++)
@ -447,7 +443,7 @@ tree_store_add_entry (char *name)
if (new->sublevel > 1){
/* Let's check if the parent directory is in the tree */
char *parent = strdup (new->name);
char *parent = g_strdup (new->name);
int i;
for (i = strlen (parent) - 1; i > 1; i--){
@ -457,7 +453,7 @@ tree_store_add_entry (char *name)
break;
}
}
free (parent);
g_free (parent);
}
tree_store_dirty (TRUE);
@ -494,8 +490,8 @@ remove_entry (tree_entry *entry)
ts.tree_last = entry->prev;
/* Free the memory used by the entry */
free (entry->name);
free (entry);
g_free (entry->name);
g_free (entry);
return ret;
}
@ -552,7 +548,7 @@ tree_store_mark_checked (const char *subname)
(subname [1] == 0 || (subname [1] == '.' && subname [2] == 0)))
return;
if (ts.check_name [0] == PATH_SEP && ts.check_name [1] == 0)
name = copy_strings (PATH_SEP_STR, subname, 0);
name = g_strconcat (PATH_SEP_STR, subname, NULL);
else
name = concat_dir_and_file (ts.check_name, subname);
@ -566,7 +562,7 @@ tree_store_mark_checked (const char *subname)
current = tree_store_add_entry (name);
tree_store_notify_add (current);
}
free (name);
g_free (name);
/* Clear the deletion mark from the subdirectory and its children */
base = current;
@ -607,12 +603,12 @@ tree_store_start_check (char *path)
return NULL;
current = tree_store_add_entry (path);
ts.check_name = strdup (path);
ts.check_name = g_strdup (path);
return current;
}
ts.check_name = strdup (path);
ts.check_name = g_strdup (path);
retval = current;
@ -665,7 +661,7 @@ tree_store_end_check (void)
remove_entry (old);
}
free (ts.check_name);
g_free (ts.check_name);
ts.check_name = NULL;
}
@ -696,7 +692,7 @@ tree_store_rescan (char *dir)
if (S_ISDIR (buf.st_mode))
tree_store_mark_checked (dp->d_name);
}
free (full_name);
g_free (full_name);
}
mc_closedir (dirp);
}
@ -778,7 +774,7 @@ tree_store_opendir (char *path)
if (entry->next == NULL)
return NULL;
scan = xmalloc (sizeof (tree_scan), "");
scan = g_new (tree_scan, 1);
scan->base = entry;
scan->current = entry->next;
scan->sublevel = entry->next->sublevel;
@ -816,5 +812,5 @@ tree_store_closedir (tree_scan *scanner)
{
g_assert (scanner != NULL);
free (scanner);
g_free (scanner);
}

Просмотреть файл

@ -21,14 +21,10 @@
# include <io.h>
#endif
#include "tty.h"
#include <stdlib.h> /* For free() */
#include "fs.h"
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include "mad.h"
#include "util.h"
#include "global.h"
#include "dialog.h"
#include "color.h"
@ -152,17 +148,17 @@ int check_format_var (char *p, char **v)
}
/* Copy the variable name */
var_name = xmalloc (dots - p, "check_format_var");
var_name = g_malloc (dots - p);
strncpy (var_name, p+4, dots-2 - (p+3));
var_name [dots-2 - (p+3)] = 0;
value = getenv (var_name);
if (value){
*v = strdup (value);
*v = g_strdup (value);
return q-p;
}
free (var_name);
var_name = xmalloc (q - dots + 1, "check_format_var_2");
g_free (var_name);
var_name = g_malloc (q - dots + 1);
strncpy (var_name, dots, q - dots + 1);
var_name [q-dots] = 0;
*v = var_name;
@ -197,7 +193,7 @@ char *expand_format (char c, int quote)
quote_func = fake_name_quote;
if (c == '%')
return strdup ("%");
return g_strdup ("%");
if (islower (c))
panel = cpanel;
@ -205,7 +201,7 @@ char *expand_format (char c, int quote)
if (get_other_type () == view_listing){
panel = other_panel;
} else
return strdup ("");
return g_strdup ("");
}
if (!panel)
panel = cpanel;
@ -234,12 +230,12 @@ char *expand_format (char c, int quote)
if (panel->dir.list [i].f.marked)
length += strlen (panel->dir.list [i].fname) + 1;
block = xmalloc (length*2+1, "expand_format");
block = g_malloc (length*2+1);
*block = 0;
for (i = 0; i < panel->count; i++)
if (panel->dir.list [i].f.marked){
strcat (block, tmp = (*quote_func) (panel->dir.list [i].fname, 0));
free (tmp);
g_free (tmp);
strcat (block, " ");
if (c == 'u')
do_file_mark (panel, i, 0);
@ -247,7 +243,7 @@ char *expand_format (char c, int quote)
return block;
} /* sub case block */
} /* switch */
return strdup ("");
return g_strdup ("");
}
/* Checks for shell patterns defination */
@ -505,7 +501,7 @@ execute_menu_command (char *s)
#ifdef OS2_NT
/* OS/2 and NT requires the command to end in .cmd */
file_name = copy_strings (file_name, ".cmd", NULL);
file_name = g_strconcat (file_name, ".cmd", NULL);
#endif
if ((cmd_file_fd = open (file_name, O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600)) == -1){
message (1, MSG_ERROR, _(" Can't create temporary command file \n %s "),
@ -544,10 +540,10 @@ execute_menu_command (char *s)
}
if (do_quote) {
fputs (tmp = name_quote (parameter, 0), cmd_file);
free (tmp);
g_free (tmp);
} else
fputs (parameter, cmd_file);
free (parameter);
g_free (parameter);
} else {
int len = strlen (prompt);
@ -569,7 +565,7 @@ execute_menu_command (char *s)
else{
char *text = expand_format (*commands, do_quote);
fputs (text, cmd_file);
free (text);
g_free (text);
}
} else {
if (*commands == '%') {
@ -630,12 +626,12 @@ void user_menu_cmd (void)
return;
}
menu = strdup (MC_LOCAL_MENU);
menu = g_strdup (MC_LOCAL_MENU);
if (!exist_file (menu) || !menu_file_own (menu)){
free (menu);
g_free (menu);
menu = concat_dir_and_file (home_dir, MC_HOME_MENU);
if (!exist_file (menu)){
free (menu);
g_free (menu);
menu = concat_dir_and_file (mc_home, MC_GLOBAL_MENU);
}
}
@ -643,10 +639,10 @@ void user_menu_cmd (void)
if ((data = load_file (menu)) == NULL){
message (1, MSG_ERROR, _(" Can't open file %s \n %s "),
menu, unix_error_string (errno));
free (menu);
g_free (menu);
return;
}
free (menu);
g_free (menu);
max_cols = 0;
for (i = 0; i < MAX_ENTRIES; i++)
@ -732,5 +728,5 @@ void user_menu_cmd (void)
easy_patterns = old_patterns;
do_refresh ();
free (data);
g_free (data);
}

Просмотреть файл

@ -26,7 +26,6 @@
#if defined(__os2__) /* OS/2 need io.h! .ado */
# include <io.h>
#endif
#include <stdlib.h>
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@ -65,22 +64,13 @@
# include <sys/ioctl.h>
#endif
#include <glib.h> /* For funny new functions */
#include "fs.h"
#include "mountlist.h"
/* From dialog.h (not wanting to include it as
it requires including a lot of other files, too) */
int message (int error, char *header, char *text, ...);
#include "mad.h"
#if defined(HAVE_RX_H) && defined(HAVE_REGCOMP)
#include <rx.h>
#else
#include <regex.h>
#endif
#include "util.h"
#include "global.h"
#include "profile.h"
#include "user.h" /* expand_format */
@ -96,15 +86,6 @@ int tilde_trunc = 1;
struct mount_entry *mount_list = NULL;
#ifndef HAVE_STRDUP
char *strdup (const char *s)
{
char *t = malloc (strlen (s)+1);
strcpy (t, s);
return t;
}
#endif
#ifndef VFS_STANDALONE
int is_printable (int c)
{
@ -175,7 +156,7 @@ name_quote (const char *s, int quote_percent)
{
char *ret, *d;
d = ret = xmalloc (strlen (s)*2 + 2 + 1, "quote_name");
d = ret = g_malloc (strlen (s)*2 + 2 + 1);
if (*s == '-') {
*d++ = '.';
*d++ = '/';
@ -220,7 +201,7 @@ name_quote (const char *s, int quote_percent)
char *
fake_name_quote (const char *s, int quote_percent)
{
return strdup (s);
return g_strdup (s);
}
/* If passed an empty txt (this usually means that there is an error)
@ -260,19 +241,19 @@ char *name_trunc (char *txt, int trunc_len)
char *size_trunc (long int size)
{
static char x [30];
static char x [BUF_TINY];
long int divisor = 1;
char *xtra = "";
if (size > 999999999L){
divisor = 1024;
xtra = "kb";
xtra = "Kb";
if (size/divisor > 999999999L){
divisor = 1024*1024;
xtra = "Mb";
}
}
sprintf (x, "%ld%s", (size/divisor), xtra);
g_snprintf (x, sizeof (x), "%ld%s", (size/divisor), xtra);
return x;
}
@ -420,7 +401,7 @@ char *convert_pattern (char *pattern, int match_type, int do_group)
int was_wildcard = 0;
if (easy_patterns){
new_pattern = malloc (MC_MAXPATHLEN);
new_pattern = g_malloc (MC_MAXPATHLEN);
d = new_pattern;
if (match_type == match_file)
*d++ = '^';
@ -455,7 +436,7 @@ char *convert_pattern (char *pattern, int match_type, int do_group)
*d = 0;
return new_pattern;
} else
return strdup (pattern);
return g_strdup (pattern);
}
int regexp_match (char *pattern, char *string, int match_type)
@ -468,11 +449,11 @@ int regexp_match (char *pattern, char *string, int match_type)
if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type){
if (old_pattern){
regfree (&r);
free (old_pattern);
g_free (old_pattern);
}
pattern = convert_pattern (pattern, match_type, 0);
if (regcomp (&r, pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS)) {
free (pattern);
g_free (pattern);
return -1;
}
old_pattern = pattern;
@ -531,9 +512,9 @@ int get_int (char *file, char *key, int def)
int set_int (char *file, char *key, int value)
{
char buffer [30];
char buffer [BUF_TINY];
sprintf (buffer, "%d", value);
g_snprintf (buffer, sizeof (buffer), "%d", value);
return WritePrivateProfileString (app_text, key, buffer, file);
}
@ -555,7 +536,7 @@ char *load_file (char *filename)
if ((data_file = fopen (filename, "r")) == NULL){
return 0;
}
data = (char *) xmalloc (s.st_size+1, "util, load_file");
data = (char *) g_malloc (s.st_size+1);
read_size = fread (data, 1, s.st_size, data_file);
data [read_size] = 0;
fclose (data_file);
@ -563,7 +544,7 @@ char *load_file (char *filename)
if (read_size > 0)
return data;
else {
free (data);
g_free (data);
return 0;
}
}
@ -605,7 +586,7 @@ char *file_date_pck (time_t when)
char *extract_line (char *s, char *top)
{
static char tmp_line [500];
static char tmp_line [BUF_MEDIUM];
char *t = tmp_line;
while (*s && *s != '\n' && (t - tmp_line) < sizeof (tmp_line)-1 && s < top)
@ -648,30 +629,16 @@ char * _icase_search (char *text, char *data, int *lng)
char *x_basename (char *s)
{
char *where;
return ((where = strrchr (s, PATH_SEP)))? where + 1 : s;
}
char *get_full_name (char *dir, char *file)
{
int i;
char *d = malloc (strlen (dir) + strlen (file) + 2);
strcpy (d, dir);
i = strlen (dir);
if (dir [i - 1] != PATH_SEP || dir [i] != 0)
strcat (d, PATH_SEP_STR);
file = x_basename (file);
strcat (d, file);
return d;
return ((where = strrchr (s, PATH_SEP))) ? where + 1 : s;
}
void my_putenv (char *name, char *data)
{
char *full;
full = xmalloc (strlen (name) + strlen (data) + 2, "util, my_putenv");
sprintf (full, "%s=%s", name, data);
full = g_strdup_printf ("%s=%s", name, data);
putenv (full);
/* WARNING: NEVER FREE THE full VARIABLE!!!!!!!!!!!!!!!!!!!!!!!! */
/* It is used by putenv. Freeing it will corrupt the environment */
}
@ -683,7 +650,7 @@ static void my_putenv_expand (char *name, char macro_code)
data = expand_format (macro_code);
my_putenv (name, data);
free (data);
g_free (data);
}
/* Puts some status information in to the environment so that
@ -703,53 +670,13 @@ static void prepare_environment (void)
char *unix_error_string (int error_num)
{
static char buffer [256];
char *error_msg;
static char buffer [BUF_LARGE];
#ifdef HAVE_STRERROR
error_msg = strerror (error_num);
#else
extern int sys_nerr;
extern char *sys_errlist [];
if ((0 <= error_num) && (error_num < sys_nerr))
error_msg = sys_errlist[error_num];
else
error_msg = "strange errno";
#endif
sprintf (buffer, "%s (%d)", error_msg, error_num);
g_snprintf (buffer, sizeof (buffer), "%s (%d)",
g_strerror (error_num), error_num);
return buffer;
}
char *copy_strings (const char *first, ...)
{
va_list ap;
long len;
char *data, *result;
if (!first)
return 0;
len = strlen (first) + 1;
va_start (ap, first);
while ((data = va_arg (ap, char *)) != 0)
len += strlen (data);
result = g_malloc (len);
va_end (ap);
va_start (ap, first);
strcpy (result, first);
while ((data = va_arg (ap, char *)) != 0)
strcat (result, data);
va_end (ap);
return result;
}
#ifndef VFS_STANDALONE
long blocks2kilos (int blocks, int bsize)
{
@ -819,24 +746,6 @@ char *strip_ctrl_codes (char *s)
return s;
}
#ifndef HAVE_STRCASECMP
/* At least one version of HP/UX lacks this */
/* Assumes ASCII encoding */
int strcasecmp (const char *s, const char *d)
{
register signed int result;
while (1){
if (result = (0x20 | *s) - (0x20 | *d))
break;
if (!*s)
return 0;
s++;
d++;
}
return result;
}
#endif /* HAVE_STRCASECMP */
#endif /* VFS_STANDALONE */
/* getwd is better than getcwd, the later uses a popen ("pwd"); */
@ -989,7 +898,7 @@ decompress_command_and_arg (int type, char **cmd, char **flags)
/* Hooks */
void add_hook (Hook **hook_list, void (*hook_fn)(void *), void *data)
{
Hook *new_hook = xmalloc (sizeof (Hook), "add_hook");
Hook *new_hook = g_new (Hook, 1);
new_hook->hook_fn = hook_fn;
new_hook->next = *hook_list;
@ -1021,7 +930,7 @@ void execute_hooks (Hook *hook_list)
for (hook_list = p; hook_list;){
p = hook_list;
hook_list = hook_list->next;
free (p);
g_free (p);
}
}
@ -1034,7 +943,7 @@ void delete_hook (Hook **hook_list, void (*hook_fn)(void *))
for (current = *hook_list; current; current = next){
next = current->next;
if (current->hook_fn == hook_fn)
free (current);
g_free (current);
else
add_hook (&new_list, current->hook_fn, current->hook_data);
}
@ -1057,14 +966,14 @@ void wipe_password (char *passwd)
for (;*p ; p++)
*p = 0;
free (passwd);
g_free (passwd);
}
/* Convert "\E" -> esc character and ^x to control-x key and ^^ to ^ key */
/* Returns a newly allocated string */
char *convert_controls (char *s)
{
char *valcopy = strdup (s);
char *valcopy = g_strdup (s);
char *p, *q;
/* Parse the escape special character */
@ -1119,8 +1028,8 @@ char *resolve_symlinks (char *path)
if (*path != PATH_SEP)
return NULL;
r = buf = xmalloc (MC_MAXPATHLEN, "resolve symlinks");
buf2 = xmalloc (MC_MAXPATHLEN, "resolve symlinks");
r = buf = g_malloc (MC_MAXPATHLEN);
buf2 = g_malloc (MC_MAXPATHLEN);
*r++ = PATH_SEP;
*r = 0;
p = path;
@ -1134,8 +1043,8 @@ char *resolve_symlinks (char *path)
c = *q;
*q = 0;
if (mc_lstat (path, &mybuf) < 0) {
free (buf);
free (buf2);
g_free (buf);
g_free (buf2);
*q = c;
return NULL;
}
@ -1144,8 +1053,8 @@ char *resolve_symlinks (char *path)
else {
len = mc_readlink (path, buf2, MC_MAXPATHLEN);
if (len < 0) {
free (buf);
free (buf2);
g_free (buf);
g_free (buf2);
*q = c;
return NULL;
}
@ -1170,7 +1079,7 @@ char *resolve_symlinks (char *path)
strcpy (buf, PATH_SEP_STR);
else if (*(r - 1) == PATH_SEP && r != buf + 1)
*(r - 1) = 0;
free (buf2);
g_free (buf2);
return buf;
}
@ -1189,7 +1098,7 @@ char *diff_two_paths (char *first, char *second)
if (j) {
second = resolve_symlinks (second);
if (second == NULL) {
free (first);
g_free (first);
return buf;
}
}
@ -1214,21 +1123,21 @@ char *diff_two_paths (char *first, char *second)
currlen = (i + 1) * 3 + strlen (q) + 1;
if (j) {
if (currlen < prevlen)
free (buf);
g_free (buf);
else {
free (first);
free (second);
g_free (first);
g_free (second);
return buf;
}
}
p = buf = xmalloc (currlen, "diff 2 paths");
p = buf = g_malloc (currlen);
prevlen = currlen;
for (; i >= 0; i--, p += 3)
strcpy (p, "../");
strcpy (p, q);
}
free (first);
free (second);
g_free (first);
g_free (second);
return buf;
}
@ -1271,13 +1180,76 @@ int truncate (const char *path, long size)
#endif
#endif /* VFS_STANDALONE */
/* If filename is NULL, then we just append PATH_SEP to the dir */
char *
concat_dir_and_file (const char *dir, const char *file)
{
int l = strlen (dir);
if (dir [l-1] == PATH_SEP)
return copy_strings (dir, file, 0);
int i = strlen (dir);
if (dir [i-1] == PATH_SEP)
return g_strconcat (dir, file, NULL);
else
return copy_strings (dir, PATH_SEP_STR, file, 0);
return g_strconcat (dir, PATH_SEP_STR, file, NULL);
}
#ifdef HAVE_MAD
char *mad_strconcat (const char *first, ...)
{
va_list ap;
long len;
char *data, *result;
if (!first)
return 0;
len = strlen (first) + 1;
va_start (ap, first);
while ((data = va_arg (ap, char *)) != 0)
len += strlen (data);
result = g_malloc (len);
va_end (ap);
va_start (ap, first);
strcpy (result, first);
while ((data = va_arg (ap, char *)) != 0)
strcat (result, data);
va_end (ap);
return result;
}
/* This two functions grabbed from GLib's gstrfuncs.c */
char*
mad_strdup_vprintf (const char *format, va_list args1)
{
char *buffer;
va_list args2;
G_VA_COPY (args2, args1);
buffer = g_new (char, g_printf_string_upper_bound (format, args1));
vsprintf (buffer, format, args2);
va_end (args2);
return buffer;
}
char*
mad_strdup_printf (const char *format, ...)
{
char *buffer;
va_list args;
va_start (args, format);
buffer = g_strdup_vprintf (format, args);
va_end (args);
return buffer;
}
#endif /* HAVE_MAD */

Просмотреть файл

@ -7,7 +7,7 @@
/* String managing functions */
#if defined(SCO_FLAVOR) && defined(__GNUC__)
extern char* strdup(const char*);
extern char*g_strdup (const char*);
#endif
int is_printable (int c);
@ -23,8 +23,6 @@ char *string_perm (mode_t mode_bits);
char *strip_home_and_password(char *dir);
char *extension (char *);
char *split_extension (char *, int pad);
char *get_full_name (char *dir, char *file);
char *concat_dir_and_file (const char *dir, const char *file);
char *unix_error_string (int error_num);
char *skip_separators (char *s);
@ -37,21 +35,18 @@ char *resolve_symlinks (char *path);
char *diff_two_paths (char *first, char *second);
int set_nonblocking (int fd);
#ifndef HAVE_STRCASECMP
int strcasecmp (const char *s, const char *d);
#endif
char *x_basename (char *s);
extern int align_extensions;
#ifdef HAVE_MAD
char *copy_strings (const char *first, ...);
#else
void *do_xmalloc (int);
#define xmalloc(a,b) g_malloc(a)
#define copy_strings g_strconcat
char *g_strconcat (const char *first, ...);
void *g_malloc (unsigned long);
char *mad_strconcat (const char *first, ...);
char *mad_strdup_printf (const char *format, ...);
char *mad_strdup_vprintf (const char *format, va_list args);
#define g_strconcat mad_strconcat
#define g_strdup_printf mad_strdup_printf
#define g_strdup_vprintf mad_strdup_vprintf
#endif
/* Profile managing functions */

Просмотреть файл

@ -23,7 +23,6 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@ -62,12 +61,10 @@
#ifdef __QNX__
# include <unix.h> /* exec*() from <process.h> */
#endif
#include "util.h"
#include "global.h"
#include "fsusage.h"
#include "fsusage.h"
#include "mountlist.h"
#include "mad.h"
#include "dialog.h" /* message() */
#include "../vfs/vfs.h" /* mc_read() */
#include "x.h"
@ -108,10 +105,11 @@ void init_groups (void)
pwd = getpwuid (current_user_uid=getuid ());
current_user_gid = (pug = xmalloc (sizeof (user_in_groups), "init_groups"));
current_user_gid->gid = getgid (); current_user_gid->next = 0;
current_user_gid = (pug = g_new (user_in_groups, 1));
current_user_gid->gid = getgid ();
current_user_gid->next = NULL;
if (pwd == 0)
if (pwd == NULL)
return;
setgrent ();
@ -119,10 +117,10 @@ void init_groups (void)
for (i = 0; grp->gr_mem[i]; i++)
if (!strcmp (pwd->pw_name,grp->gr_mem[i]))
{
cug = xmalloc (sizeof (user_in_groups), "init_groups");
cug = g_new (user_in_groups, 1);
cug->gid = grp->gr_gid;
pug->next = cug;
cug->next = 0;
cug->next = NULL;
pug = cug;
break;
}
@ -152,7 +150,7 @@ delete_groups (void)
while (cug){
pug = cug->next;
free (cug);
g_free (cug);
cug = pug;
}
}
@ -193,8 +191,8 @@ static void i_cache_add (int id, int_cache *cache, int size, char *text,
int *last)
{
if (cache [*last].string)
free (cache [*last].string);
cache [*last].string = strdup (text);
g_free (cache [*last].string);
cache [*last].string = g_strdup (text);
cache [*last].index = id;
*last = ((*last)+1) % size;
}
@ -202,7 +200,7 @@ static void i_cache_add (int id, int_cache *cache, int size, char *text,
char *get_owner (int uid)
{
struct passwd *pwd;
static char ibuf [8];
static char ibuf [10];
char *name;
static int uid_last;
@ -215,7 +213,7 @@ char *get_owner (int uid)
return pwd->pw_name;
}
else {
sprintf (ibuf, "%d", uid);
g_snprintf (ibuf, sizeof (ibuf), "%d", uid);
return ibuf;
}
}
@ -223,7 +221,7 @@ char *get_owner (int uid)
char *get_group (int gid)
{
struct group *grp;
static char gbuf [8];
static char gbuf [10];
char *name;
static int gid_last;
@ -235,7 +233,7 @@ char *get_group (int gid)
i_cache_add (gid, gid_cache, GID_CACHE_SIZE, grp->gr_name, &gid_last);
return grp->gr_name;
} else {
sprintf (gbuf, "%d", gid);
g_snprintf (gbuf, sizeof (gbuf), "%d", gid);
return gbuf;
}
}
@ -322,7 +320,7 @@ char *tilde_expand (char *directory)
int len;
if (*directory != '~')
return strdup (directory);
return g_strdup (directory);
directory++;
@ -337,11 +335,11 @@ char *tilde_expand (char *directory)
p = "";
passwd = getpwnam (directory);
} else {
name = xmalloc (p - directory + 1, "tilde_expand");
name = g_malloc (p - directory + 1);
strncpy (name, directory, p - directory);
name [p - directory] = 0;
passwd = getpwnam (name);
free (name);
g_free (name);
}
}
@ -350,7 +348,7 @@ char *tilde_expand (char *directory)
return 0;
len = strlen (passwd->pw_dir) + strlen (p) + 2;
directory = xmalloc (len, "tilde_expand");
directory = g_malloc (len);
strcpy (directory, passwd->pw_dir);
strcat (directory, PATH_SEP_STR);
strcat (directory, p);
@ -744,7 +742,7 @@ putenv (const char *string)
if (*ep == NULL){
static char **last_environ = NULL;
char **new_environ = (char **) malloc ((size + 2) * sizeof (char *));
char **new_environ = g_new (char *, size + 2);
if (new_environ == NULL)
return -1;
(void) memcpy ((void *) new_environ, (void *) __environ,
@ -752,7 +750,7 @@ putenv (const char *string)
new_environ[size] = (char *) string;
new_environ[size + 1] = NULL;
if (last_environ != NULL)
free ((void *) last_environ);
g_free ((void *) last_environ);
last_environ = new_environ;
__environ = new_environ;
}

Просмотреть файл

@ -46,20 +46,15 @@
# include <unistd.h>
#endif
#include <ctype.h> /* For toupper() */
#include <stdlib.h> /* atoi() */
#include <malloc.h>
#include <errno.h>
#include <limits.h>
#include <sys/param.h>
#include "mem.h"
#include "mad.h"
#include "util.h"
#include "global.h"
#include "dlg.h" /* Needed by widget.h */
#include "widget.h" /* Needed for buttonbar_new */
#include "color.h"
#include "dialog.h"
#include "mouse.h"
#include "global.h"
#include "help.h"
#include "key.h" /* For mi_getch() */
#include "layout.h"
@ -70,7 +65,6 @@
#else
# include <regex.h>
#endif
#include "fs.h"
#include "../vfs/vfs.h"
#include "dir.h"
#include "panel.h" /* Needed for current_panel and other_panel */
@ -101,6 +95,8 @@ int max_dirt_limit =
10;
#endif
extern Hook *idle_hook;
/* Our callback */
static int view_callback (Dlg_head *h, WView *view, int msg, int par);
@ -170,9 +166,9 @@ free_file (WView *view)
/* Block_ptr may be zero if the file was a file with 0 bytes */
if (view->growing_buffer && view->block_ptr){
for (i = 0; i < view->blocks; i++){
free (view->block_ptr [i].data);
g_free (view->block_ptr [i].data);
}
free (view->block_ptr);
g_free (view->block_ptr);
}
}
@ -187,7 +183,7 @@ view_done (WView *view)
/* alex: release core, used to replace mmap */
if (!view->mmapping && !view->growing_buffer && view->data != NULL){
free(view->data);
g_free (view->data);
view->data = NULL;
}
@ -195,9 +191,9 @@ view_done (WView *view)
if (view->localcopy)
mc_ungetlocalcopy (view->filename, view->localcopy, 0);
free_file (view);
free (view->filename);
g_free (view->filename);
if (view->command)
free (view->command);
g_free (view->command);
}
view->view_active = 0;
default_hex_mode = view->hex_mode;
@ -227,15 +223,15 @@ get_byte (WView *view, int byte_index)
if (view->growing_buffer){
if (page > view->blocks){
tmp = xmalloc (sizeof (block_ptr_t) * page, "get_byte");
tmp = g_new (block_ptr_t, page);
if (view->block_ptr){
bcopy (view->block_ptr, tmp, sizeof (block_ptr_t) *
view->blocks);
free (view->block_ptr);
g_free (view->block_ptr);
}
view->block_ptr = tmp;
for (i = view->blocks; i < page; i++){
char *p = malloc (VIEW_PAGE_SIZE);
char *p = g_malloc (VIEW_PAGE_SIZE);
view->block_ptr [i].data = p;
if (!p)
return '\n';
@ -338,7 +334,7 @@ put_editkey (WView *view, unsigned char key)
}
if (!node) {
node = (struct hexedit_change_node *)
xmalloc(sizeof(struct hexedit_change_node), "HexEdit");
g_new (struct hexedit_change_node, 1);
if (node) {
#ifndef HAVE_MMAP
@ -367,7 +363,7 @@ free_change_list (WView *view)
while (n) {
view->change_list = n->next;
free (n);
g_free (n);
n = view->change_list;
}
view->file_dirty = 0;
@ -402,11 +398,11 @@ view_ok_to_quit (WView *view)
return 1;
query_set_sel (1);
text = copy_strings (_("File: \n\n "), view->filename,
text = g_strconcat (_("File: \n\n "), view->filename,
_("\n\nhas been modified, do you want to save the changes?\n"), NULL);
r = query_dialog (_(" Save changes "), text, 2, 3, _("&Yes"), _("&No"), _("&Cancel"));
free (text);
g_free (text);
switch (r) {
case 0:
@ -429,7 +425,7 @@ set_view_init_error (WView *view, char *msg)
view->last_byte = 0;
if (msg){
view->bytes_read = strlen (msg);
return strdup (msg);
return g_strdup (msg);
}
return 0;
}
@ -476,15 +472,15 @@ static char *load_view_file (WView *view, char *filename)
{
if ((view->file = mc_open (filename, O_RDONLY)) < 0){
set_view_init_error (view, 0);
return (copy_strings (_(" Can't open file \""),
return ( g_strconcat (_(" Can't open file \""),
filename, "\"\n ",
unix_error_string (errno), " ", 0));
unix_error_string (errno), " ", NULL));
}
if (mc_fstat (view->file, &view->s) < 0){
set_view_init_error (view, 0);
close_view_file (view);
return copy_strings (_(" Can't stat file \n "),
unix_error_string (errno), " ", 0);
return g_strconcat (_(" Can't stat file \n "),
unix_error_string (errno), " ", NULL);
}
if (S_ISDIR (view->s.st_mode) || S_ISSOCK (view->s.st_mode)
|| S_ISFIFO (view->s.st_mode)){
@ -515,12 +511,12 @@ no_mmap:
* file into memory (alex@bcs.zaporizhzhe.ua). Also, mmap can fail
* for any reason, so we use this as fallback (pavel@ucw.cz) */
view->data = (unsigned char*) xmalloc (view->s.st_size, "load_view_file");
view->data = (unsigned char*) g_malloc (view->s.st_size);
if (view->data == NULL
|| mc_lseek(view->file,0,0) != 0
|| mc_read(view->file, view->data, view->s.st_size) != view->s.st_size){
if (view->data != NULL)
free(view->data);
g_free (view->data);
close_view_file (view);
return init_growing_view (view, 0, filename);
}
@ -568,8 +564,8 @@ do_view_init (WView *view, char *_command, char *_file, int start_line)
int fd;
fd = mc_open(_file, O_RDONLY);
if (_file[0] && view->viewer_magic_flag && (is_gunzipable (fd, &type)) != 0)
view->filename = copy_strings (_file, decompress_extension(type), NULL);
else view->filename = strdup (_file);
view->filename = g_strconcat (_file, decompress_extension(type), NULL);
else view->filename = g_strdup (_file);
mc_close(fd);
}
@ -581,14 +577,14 @@ do_view_init (WView *view, char *_command, char *_file, int start_line)
if (error){
if (!view->have_frame){
message (1, MSG_ERROR, error);
free (error);
g_free (error);
return -1;
}
}
view->view_active = 1;
if (_command)
view->command = strdup (_command);
view->command = g_strdup (_command);
else
view->command = 0;
view->search_start = view->start_display = view->start_save = view->first;
@ -779,7 +775,7 @@ display (WView *view)
/* Optionally, display a ruler */
if ((!view->hex_mode) && (ruler)){
char r_buff[4];
char r_buff[10];
int cl;
view_set_color (view, BOLD_COLOR);
@ -797,7 +793,7 @@ display (WView *view)
r_buff[0] = '*';
view_add_character (view, r_buff[0]);
if ((cl != 0) && (cl % 10) == 0){
sprintf(r_buff, "%03d", cl);
g_snprintf(r_buff, sizeof (r_buff), "%03d", cl);
if (ruler == 1)
widget_move (view, row + 1, c - 1);
else
@ -828,7 +824,7 @@ display (WView *view)
for (;row < height && from < view->last_byte; row++){
/* Print the hex offset */
sprintf (hex_buff, "%05X", (int) (from - view->first));
g_snprintf (hex_buff, sizeof (hex_buff), "%05X", (int) (from - view->first));
widget_move (view, row, frame_shift);
view_add_string (view, hex_buff);
@ -1346,10 +1342,10 @@ grow_string_buffer (char *text, int *size)
/* The grow steps */
*size += 160;
new = xmalloc (*size, "grow_string_buffer");
new = g_malloc (*size);
if (text){
strncpy (new, text, old_size);
free (text);
g_free (text);
} else {
*new = 0;
}
@ -1466,7 +1462,7 @@ search (WView *view, char *text, int (*search)(WView *, char *, char *, int))
search_update_steps (view);
update_activate = 0;
for (; ; isatbeg = 1, free (s)){
for (; ; isatbeg = 1, g_free (s)){
#ifdef PORT_HAS_FLUSH_EVENTS
static int count;
@ -1527,7 +1523,7 @@ search (WView *view, char *text, int (*search)(WView *, char *, char *, int))
view->start_display = t;
}
free (s);
g_free (s);
break;
}
disable_interrupt_key ();
@ -1687,7 +1683,7 @@ static int regexp_view_search (WView *view, char *pattern, char *string, int mat
if (!old_pattern || strcmp (old_pattern, pattern) || old_type != match_type){
if (old_pattern){
regfree (&r);
free (old_pattern);
g_free (old_pattern);
old_pattern = 0;
}
for (i = 0; pattern[i] != 0; i++){
@ -1701,7 +1697,7 @@ static int regexp_view_search (WView *view, char *pattern, char *string, int mat
message (1, MSG_ERROR, _(" Invalid regular expression "));
return -1;
}
old_pattern = strdup (pattern);
old_pattern = g_strdup (pattern);
old_type = match_type;
}
if (regexec (&r, string, 1, pmatch, 0) != 0)
@ -1744,7 +1740,7 @@ static void help_cmd (void)
{
char *hlpfile = concat_dir_and_file (mc_home, "mc.hlp");
interactive_display (hlpfile, "[Internal File Viewer]");
free (hlpfile);
g_free (hlpfile);
/*
view_refresh (0);
*/
@ -1820,7 +1816,7 @@ toggle_hexedit_mode(WView *view)
void
goto_line (WView *view)
{
char *line, prompt [100];
char *line, prompt [BUF_SMALL];
int i, oldline = 1;
int saved_wrap_mode = view->wrap_mode;
@ -1828,15 +1824,15 @@ goto_line (WView *view)
for (i = view->first; i < view->start_display; i++)
if (get_byte (view, i) == '\n')
oldline ++;
sprintf (prompt, _(" The current line number is %d.\n"
g_snprintf (prompt, sizeof (prompt), _(" The current line number is %d.\n"
" Enter the new line number:"), oldline);
line = input_dialog (_(" Goto line "), prompt, "");
if (line){
if (*line){
move_to_top (view);
view_move_forward (view, atoi (line) - 1);
view_move_forward (view, atol (line) - 1);
}
free (line);
g_free (line);
}
view->dirty++;
view->wrap_mode = saved_wrap_mode;
@ -1863,7 +1859,7 @@ regexp_search (WView *view, int direction)
return;
}
if (old)
free (old);
g_free (old);
old = regexp;
#if 0
/* Mhm, do we really need to load all the file in the core? */
@ -1895,7 +1891,7 @@ normal_search (WView *view, int direction)
return;
}
if (old)
free (old);
g_free (old);
old = exp;
view->direction = direction;
@ -1919,17 +1915,17 @@ change_viewer (WView *view)
if (*view->filename) {
altered_magic_flag = 1;
view->viewer_magic_flag = !view->viewer_magic_flag;
s = strdup (view->filename);
s = g_strdup (view->filename);
if (view->command)
t = strdup (view->command);
t = g_strdup (view->command);
else
t = 0;
view_done (view);
view_init (view, t, s, 0);
free (s);
g_free (s);
if (t)
free (t);
g_free (t);
view_labels (view);
view->dirty++;
view_update (view);
@ -2431,7 +2427,7 @@ view_callback (Dlg_head *h, WView *v, int msg, int par)
WView *
view_new (int y, int x, int cols, int lines, int is_panel)
{
WView *view = xmalloc (sizeof (WView), "view_new");
WView *view = g_new (WView, 1);
init_widget (&view->widget, y, x, lines, cols,
(callback_fn) view_callback,

Просмотреть файл

@ -28,12 +28,9 @@
#include <config.h>
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#include "tty.h"
#include <ctype.h>
#include "mad.h"
#include "global.h"
#include "util.h"
#include "color.h"
#include "mouse.h"
#include "dlg.h"
@ -78,7 +75,7 @@ static int
button_callback (Dlg_head *h, WButton *b, int Msg, int Par)
{
#ifndef HAVE_X
char *txt, buf[256];
char *txt, buf[BUF_SMALL];
#endif
int stop = 0;
int off = 0;
@ -136,15 +133,15 @@ button_callback (Dlg_head *h, WButton *b, int Msg, int Par)
switch (b->flags){
case DEFPUSH_BUTTON:
sprintf (buf, "[< %s >]", b->text);
g_snprintf (buf, sizeof(buf), "[< %s >]", b->text);
off = 3;
break;
case NORMAL_BUTTON:
sprintf (buf, "[ %s ]", b->text);
g_snprintf (buf, sizeof(buf), "[ %s ]", b->text);
off = 2;
break;
case NARROW_BUTTON:
sprintf (buf, "[%s]", b->text);
g_snprintf (buf, sizeof(buf), "[%s]", b->text);
off = 1;
break;
case HIDDEN_BUTTON:
@ -196,7 +193,7 @@ static void
button_destroy (WButton *b)
{
x_destroy_cmd (b);
free (b->text);
g_free (b->text);
}
static int
@ -246,7 +243,7 @@ WButton *
button_new (int y, int x, int action, int flags, char *text,
int (*callback)(int, void *), void *callback_data, char *tkname)
{
WButton *b = xmalloc (sizeof (WButton), "new_button");
WButton *b = g_new (WButton, 1);
init_widget (&b->widget, y, x, 1, button_len (text, flags),
(callback_fn) button_callback,
@ -255,7 +252,7 @@ button_new (int y, int x, int action, int flags, char *text,
b->action = action;
b->flags = flags;
b->selected = 0;
b->text = strdup (text);
b->text = g_strdup (text);
b->callback = callback;
b->callback_data = callback_data;
widget_want_hotkey (b->widget, 1);
@ -269,8 +266,8 @@ button_new (int y, int x, int action, int flags, char *text,
void
button_set_text (WButton *b, char *text)
{
free (b->text);
b->text = strdup (text);
g_free (b->text);
b->text = g_strdup (text);
b->widget.cols = button_len (text, b->flags);
button_scan_hotkey(b);
#ifdef HAVE_X
@ -419,7 +416,7 @@ radio_event (Gpm_Event *event, WRadio *r)
WRadio *
radio_new (int y, int x, int count, char **texts, int use_hotkey, char *tkname)
{
WRadio *r = xmalloc (sizeof (WRadio), "radio_new");
WRadio *r = g_new (WRadio, 1);
int i, max, m;
/* Compute the longest string */
@ -518,20 +515,20 @@ static void
check_destroy (WCheck *c)
{
x_destroy_cmd (c);
free (c->text);
g_free (c->text);
}
WCheck *
check_new (int y, int x, int state, char *text, char *tkname)
{
WCheck *c = xmalloc (sizeof (WCheck), "check_new");
WCheck *c = g_new (WCheck, 1);
char *s, *t;
init_widget (&c->widget, y, x, 1, strlen (text),
(callback_fn)check_callback,
(destroy_fn)check_destroy, (mouse_h) check_event, tkname);
c->state = state ? C_BOOL : 0;
c->text = strdup (text);
c->text = g_strdup (text);
c->hotkey = 0;
c->hotpos = -1;
widget_want_hotkey (c->widget, 1);
@ -607,10 +604,10 @@ label_set_text (WLabel *label, char *text)
return; /* Flickering is not nice */
if (label->text){
free (label->text);
g_free (label->text);
}
if (text){
label->text = strdup (text);
label->text = g_strdup (text);
if (label->auto_adjust_cols) {
newcols = strlen (text);
if (newcols > label->widget.cols)
@ -634,18 +631,18 @@ label_destroy (WLabel *l)
{
x_destroy_cmd (l);
if (l->text)
free (l->text);
g_free (l->text);
}
WLabel *
label_new (int y, int x, char *text, char *tkname)
{
WLabel *l = xmalloc (sizeof (WLabel), "label_new");
WLabel *l = g_new (WLabel, 1);
init_widget (&l->widget, y, x, 1, 1,
(callback_fn) label_callback,
(destroy_fn) label_destroy, NULL, tkname);
l->text = text ? strdup (text) : 0;
l->text = text ? g_strdup (text) : 0;
l->auto_adjust_cols = 1;
l->transparent = 0;
widget_want_cursor (l->widget, 0);
@ -745,7 +742,7 @@ gauge_destroy (WGauge *g)
WGauge *
gauge_new (int y, int x, int shown, int max, int current, char *tkname)
{
WGauge *g = xmalloc (sizeof (WGauge), "gauge_new");
WGauge *g = g_new (WGauge, 1);
init_widget (&g->widget, y, x, 1, gauge_len,
(callback_fn) gauge_callback,
@ -896,9 +893,11 @@ int num_history_items_recorded = 60;
Hist *history_get (char *input_name)
{
int i;
Hist *old = 0, *new = 0;
Hist *old, *new;
char *profile;
old = new = NULL;
if (!num_history_items_recorded) /* this is how to disable */
return 0;
if (!input_name)
@ -907,21 +906,20 @@ Hist *history_get (char *input_name)
return 0;
profile = concat_dir_and_file (home_dir, HISTORY_FILE_NAME);
for (i = 0;; i++) {
char key_name[32];
char this_entry[1024];
sprintf (key_name, "%d", i);
char key_name[BUF_TINY];
char this_entry[BUF_LARGE];
g_snprintf (key_name, sizeof (key_name), "%d", i);
GetPrivateProfileString (input_name, key_name, "", this_entry, sizeof (this_entry), profile);
if (!*this_entry)
break;
new = xmalloc (sizeof (Hist), "history_get");
memset (new, 0, sizeof (Hist));
new->text = strdup (this_entry);
new = g_new0 (Hist, 1);
new->text = g_strdup (this_entry);
new->prev = old; /* set up list pointers */
if (old)
old->next = new;
old = new;
}
free (profile);
g_free (profile);
return new; /* return pointer to last entry in list */
}
@ -961,14 +959,14 @@ void history_put (char *input_name, Hist *h)
/* probably aren't any null entries, but lets be sure */
if (*(h->text)){
char key_name[32];
sprintf (key_name, "%d", i++);
char key_name[BUF_TINY];
g_snprintf (key_name, sizeof(key_name), "%d", i++);
WritePrivateProfileString (input_name, key_name, h->text, profile);
}
}
h = h->next;
}
free (profile);
g_free (profile);
}
#else
void history_put (char *input_name, Hist *h)
@ -1073,7 +1071,7 @@ char *show_hist (Hist *history, int widget_x, int widget_y)
if (query_dlg->ret_value != B_CANCEL) {
listbox_get_current (query_list, &q, NULL);
if (q)
r = strdup (q);
r = g_strdup (q);
}
destroy_dlg (query_dlg);
return r;
@ -1085,7 +1083,7 @@ static void do_show_hist (WInput * in)
r = show_hist (in->history, in->widget.x, in->widget.y);
if (r) {
assign_text (in, r);
free (r);
g_free (r);
}
}
@ -1112,15 +1110,15 @@ input_destroy (WInput *in)
while (current){
old = current;
current = current->prev;
free (old->text);
free (old);
g_free (old->text);
g_free (old);
}
}
x_destroy_cmd (in);
free (in->buffer);
g_free (in->buffer);
free_completions (in);
if (in->history_name)
free (in->history_name);
g_free (in->history_name);
}
static char disable_update = 0;
@ -1152,14 +1150,14 @@ push_history (WInput *in, char *text)
in->history = in->history->next;
if (!strcmp (in->history->text, text))
return 1;
new = xmalloc (sizeof (Hist), "push_history");
new = g_new (Hist, 1);
in->history->next = new;
} else
new = xmalloc (sizeof (Hist), "push_history");
new = g_new (Hist, 1);
in->need_push = 0;
new->next = 0;
new->prev = in->history;
new->text = strdup (text);
new->text = g_strdup (text);
in->history = new;
return 2;
}
@ -1189,14 +1187,14 @@ insert_char (WInput *in, int c_code)
in->need_push = 1;
if (strlen (in->buffer)+1 == in->current_max_len){
/* Expand the buffer */
char *narea = xmalloc(in->current_max_len + in->field_len, "string expansion");
char *narea = g_malloc (in->current_max_len + in->field_len);
if (narea){
char *p = in->buffer;
strcpy (narea, in->buffer);
in->buffer = narea;
in->current_max_len += in->field_len;
free (p);
g_free (p);
}
}
if (strlen (in->buffer)+1 < in->current_max_len){
@ -1315,9 +1313,9 @@ copy_region (WInput *in, int x_first, int x_last)
return;
if (kill_buffer)
free (kill_buffer);
g_free (kill_buffer);
kill_buffer = xmalloc (last-first + 1, "copy_region");
kill_buffer = g_malloc (last-first + 1);
strncpy (kill_buffer, in->buffer+first, last-first);
kill_buffer [last-first] = 0;
}
@ -1398,8 +1396,8 @@ static void
kill_line (WInput *in)
{
if (kill_buffer)
free (kill_buffer);
kill_buffer = strdup (&in->buffer [in->point]);
g_free (kill_buffer);
kill_buffer = g_strdup (&in->buffer [in->point]);
in->buffer [in->point] = 0;
}
@ -1407,8 +1405,8 @@ void
assign_text (WInput *in, char *text)
{
free_completions (in);
free (in->buffer);
in->buffer = strdup (text); /* was in->buffer->text */
g_free (in->buffer);
in->buffer = g_strdup (text); /* was in->buffer->text */
in->current_max_len = strlen (in->buffer) + 1;
in->point = strlen (in->buffer);
in->mark = 0;
@ -1684,7 +1682,7 @@ input_event (Gpm_Event *event, WInput *in)
WInput *
input_new (int y, int x, int color, int len, char *def_text, char *tkname)
{
WInput *in = xmalloc (sizeof (WInput), "input_new");
WInput *in = g_new (WInput, 1);
int initial_buffer_len;
init_widget (&in->widget, y, x, 1, len,
@ -1696,7 +1694,7 @@ input_new (int y, int x, int color, int len, char *def_text, char *tkname)
in->history_name = 0;
if (tkname && PORT_WIDGET_WANTS_HISTORY){
if (*tkname) {
in->history_name = strdup (tkname);
in->history_name = g_strdup (tkname);
in->history = history_get (tkname);
}
}
@ -1713,7 +1711,7 @@ input_new (int y, int x, int color, int len, char *def_text, char *tkname)
INPUT_COMPLETE_FILENAMES | INPUT_COMPLETE_HOSTNAMES |
INPUT_COMPLETE_VARIABLES | INPUT_COMPLETE_USERNAMES;
in->current_max_len = initial_buffer_len;
in->buffer = xmalloc (initial_buffer_len, "create_input: in->buffer");
in->buffer = g_malloc (initial_buffer_len);
in->color = color;
in->field_len = len;
in->first = 1;
@ -1895,8 +1893,8 @@ listbox_remove_list (WListbox *l)
while (l->count--) {
q = p->next;
free (p->text);
free (p);
g_free (p->text);
g_free (p);
p = q;
}
l->pos = l->count = 0;
@ -1949,8 +1947,8 @@ listbox_remove_current (WListbox *l, int force)
l->list = l->top = l->current = 0;
}
free (p->text);
free (p);
g_free (p->text);
g_free (p);
}
/* Makes *e the selected entry (sets current and pos) */
@ -2194,8 +2192,8 @@ listbox_destroy (WListbox *l)
x_destroy_cmd (l);
for (i = 0; i < l->count; i++){
n = p->next;
free (p->text);
free (p);
g_free (p->text);
g_free (p);
p = n;
}
}
@ -2204,7 +2202,7 @@ WListbox *
listbox_new (int y, int x, int width, int height,
int action, lcback callback, char *tkname)
{
WListbox *l = xmalloc (sizeof (WListbox), "listbox_new");
WListbox *l = g_new (WListbox, 1);
extern int slow_terminal;
init_widget (&l->widget, y, x, height, width,
@ -2279,8 +2277,8 @@ listbox_add_item (WListbox *l, enum append_pos pos, int hotkey, char *text,
if (listbox_search_text (l, text))
return 0;
entry = xmalloc (sizeof (WLEntry), "listbox_add_item");
entry->text = strdup (text);
entry = g_new (WLEntry, 1);
entry->text = g_strdup (text);
entry->data = data;
entry->hotkey = hotkey;
@ -2379,7 +2377,7 @@ buttonbar_destroy (WButtonBar *bb)
for (i = 0; i < 10; i++){
if (bb->labels [i].text)
free (bb->labels [i].text);
g_free (bb->labels [i].text);
}
}
@ -2404,7 +2402,7 @@ WButtonBar *
buttonbar_new (int visible)
{
int i;
WButtonBar *bb = xmalloc (sizeof (WButtonBar), "buttonbar_new");
WButtonBar *bb = g_new (WButtonBar, 1);
init_widget (&bb->widget, LINES-1, 0, 1, COLS,
(callback_fn) buttonbar_callback,
@ -2425,9 +2423,9 @@ void
set_label_text (WButtonBar *bb, int index, char *text)
{
if (bb->labels [index-1].text)
free (bb->labels [index-1].text);
g_free (bb->labels [index-1].text);
bb->labels [index-1].text = strdup (text);
bb->labels [index-1].text = g_strdup (text);
}
/* paneletc is either the panel widget, or info or view or tree widget */

Просмотреть файл

@ -18,22 +18,18 @@
#include <config.h>
#include "tty.h"
#include <stdio.h>
#include <stdlib.h> /* For free() */
#include <string.h>
#if (!defined(__IBMC__) && !defined(__IBMCPP__)) && !defined(HAS_NO_TERMIOS_H)
# include <termios.h>
#endif
#include "mad.h"
#include "global.h"
#include "color.h"
#include "mouse.h"
#include "util.h" /* For xmalloc() */
#include "dlg.h"
#include "widget.h"
#include "win.h"
#include "key.h" /* XCTRL and ALT macros */
#include "layout.h"
#include "global.h"
/* "$Id$" */
@ -60,9 +56,9 @@ void sprint_bytesize (char *buffer, int size, int scale)
}
}
if (scale > 0)
sprintf (buffer, "%4d %cb", size, scales[scale]);
g_snprintf (buffer, 10, "%4d %cb", size, scales[scale]);
else
sprintf (buffer, "%4d b ", size);
g_snprintf (buffer, 10, "%4d b ", size);
}
void print_bytesize (int size, int scale)
@ -283,7 +279,7 @@ int lookup_key (char *keyname)
int i;
for (i = 0; key_name_conv_tab [i].code; i++){
if (strcasecmp (key_name_conv_tab [i].name, keyname))
if ( g_strcasecmp (key_name_conv_tab [i].name, keyname))
continue;
return key_name_conv_tab [i].code;
}

Просмотреть файл

@ -33,12 +33,9 @@
#include <config.h>
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#include "tty.h"
#include <stdarg.h>
#include "mad.h"
#include "global.h"
#include "util.h"
#include "win.h"
#include "color.h"
#include "mouse.h"
@ -110,7 +107,7 @@ static int listbox_callback (Dlg_head *h, int id, int msg)
Listbox *create_listbox_window (int cols, int lines, char *title, char *help)
{
int xpos, ypos, len;
Listbox *listbox = xmalloc (sizeof (Listbox), "create_listbox_window");
Listbox *listbox = g_new (Listbox, 1);
char* cancel_string = _("&Cancel");
/* Adjust sizes */
@ -157,7 +154,7 @@ int run_listbox (Listbox *l)
else
val = l->list->pos;
destroy_dlg (l->dlg);
free (l);
g_free (l);
return val;
}
@ -369,7 +366,7 @@ Chooser *new_chooser (int lines, int cols, char *help, int flags)
Chooser *c;
int button_lines;
c = (Chooser *) xmalloc (sizeof (Chooser), "new_chooser");
c =g_new (Chooser, 1);
c->dialog = create_dlg (0, 0, lines, cols, dialog_colors, common_dialog_callback,
help, "chooser", DLG_CENTER | DLG_GRID);
@ -535,7 +532,7 @@ int quick_dialog_skip (QuickDialog *qd, int nskip)
break;
case quick_input:
*qw->str_result = strdup (((WInput *) qw->the_widget)->buffer);
*qw->str_result = g_strdup (((WInput *) qw->the_widget)->buffer);
break;
}
}
@ -704,7 +701,7 @@ char *input_expand_dialog (char *header, char *text, char *def_text)
if (result){
expanded = tilde_expand (result);
if (expanded){
free (result);
g_free (result);
return expanded;
} else
return result;