ln.c: error_msg(str)->error_msg(%s, str) - remove standart "feature" for hackers
reduce 100 bytes don't care in sum
}
/* Prepend '-' to the first argument if required */
- if (argv[1][0] != '-') {
- char *tmp;
-
- bb_xasprintf(&tmp, "-%s", argv[1]);
- argv[1] = tmp;
- }
+ if (argv[1][0] != '-')
+ argv[1] = bb_xasprintf("-%s", argv[1]);
/* Initialise default values */
tar_handle = init_handle();
static void tostring (VALUE *v)
{
if (v->type == integer) {
- bb_xasprintf (&(v->u.s), "%d", v->u.i);
+ v->u.s = bb_xasprintf ("%d", v->u.i);
v->type = string;
}
}
src_name = src;
}
if (!(flag & LN_SYMLINK) && stat(*argv, &statbuf)) {
- bb_perror_msg(*argv);
+ bb_perror_msg("%s", *argv);
status = EXIT_FAILURE;
free(src_name);
continue;
}
if (flag & LN_BACKUP) {
- char *backup = NULL;
- bb_xasprintf(&backup, "%s%s", src, suffix);
+ char *backup;
+ backup = bb_xasprintf("%s%s", src, suffix);
if (rename(src, backup) < 0 && errno != ENOENT) {
- bb_perror_msg(src);
+ bb_perror_msg("%s", src);
status = EXIT_FAILURE;
free(backup);
continue;
{
char *s;
const char *tpl;
- char *prog;
char *p = string_copy(fsck_path);
struct stat st;
tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s");
for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) {
- bb_xasprintf(&prog, tpl, s, type);
- if (stat(prog, &st) == 0) break;
- free(prog);
+ s = bb_xasprintf(tpl, s, type);
+ if (stat(s, &st) == 0) break;
+ free(s);
}
free(p);
- return(s ? prog : NULL);
+ return(s);
}
static int progress_active(void)
return ENOMEM;
memset(inst, 0, sizeof(struct fsck_instance));
- bb_xasprintf(&prog, "fsck.%s", type);
+ prog = bb_xasprintf("fsck.%s", type);
argv[0] = prog;
argc = 1;
/* Update our search path to include uncommon directories. */
if (oldpath) {
- bb_xasprintf(&fsck_path, "%s:%s", fsck_prefix_path, oldpath);
+ fsck_path = bb_xasprintf("%s:%s", fsck_prefix_path, oldpath);
} else {
fsck_path = string_copy(fsck_prefix_path);
}
/* Update our PATH to include /sbin */
if (oldpath) {
- char *newpath;
-
- bb_xasprintf(&newpath, "%s:%s", PATH_SET, oldpath);
- putenv(newpath);
+ putenv (bb_xasprintf("%s:%s", PATH_SET, oldpath));
} else
putenv (PATH_SET);
extern size_t bb_strlen(const char *string);
#define strlen(x) bb_strlen(x)
-void bb_xasprintf(char **string_ptr, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
-
+char *bb_xasprintf(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
#define FAIL_DELAY 3
extern void change_identity ( const struct passwd *pw );
/*
- Copyright (C) 2002 Vladimir Oleynik <dzo@simtreas.ru>
+ Copyright (C) 2002,2005 Vladimir Oleynik <dzo@simtreas.ru>
*/
#include <stdlib.h>
#include <stdarg.h>
#include "libbb.h"
-void bb_xasprintf(char **string_ptr, const char *format, ...)
+char *bb_xasprintf(const char *format, ...)
{
va_list p;
int r;
+ char *string_ptr;
va_start(p, format);
- r = vasprintf(string_ptr, format, p);
+ r = vasprintf(&string_ptr, format, p);
va_end(p);
if (r < 0) {
bb_perror_msg_and_die("bb_xasprintf");
}
+ return string_ptr;
}
extern char *concat_path_file(const char *path, const char *filename)
{
- char *outbuf;
char *lc;
if (!path)
lc = last_char_is(path, '/');
while (*filename == '/')
filename++;
- bb_xasprintf(&outbuf, "%s%s%s", path, (lc==NULL ? "/" : ""), filename);
-
- return outbuf;
+ return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
}
args [0] = bb_get_last_path_component ( bb_xstrdup ( shell ));
- if ( loginshell ) {
- char *args0;
- bb_xasprintf ( &args0, "-%s", args [0] );
- args [0] = args0;
- }
+ if ( loginshell )
+ args [0] = bb_xasprintf ("-%s", args [0]);
if ( command ) {
args [argno++] = "-c";
{
char *cmd;
- bb_xasprintf(&cmd, "addgroup -g %d %s", gid, login);
+ cmd = bb_xasprintf("addgroup -g %d %s", gid, login);
system(cmd);
free(cmd);
}
for (i = 0; i <= num_flines; i++) {
safe_strncpy(current_line, flines[i], 256);
- bb_xasprintf(&flines[i],"%5d %s", i + 1, current_line);
+ flines[i] = bb_xasprintf("%5d %s", i + 1, current_line);
}
}
static char *insert_highlights (char *line, int start, int end) {
- char *new_line;
-
- bb_xasprintf(&new_line, "%.*s%s%.*s%s%s", start, line, HIGHLIGHT,
+ return bb_xasprintf("%.*s%s%.*s%s%s", start, line, HIGHLIGHT,
end - start, line + start, NORMAL, line + end);
- return new_line;
}
static char *process_regex_on_line(char *line, regex_t *pattern) {
if (S_ISDIR(st.st_mode)) {
dev_t st_dev = st.st_dev;
ino_t st_ino = st.st_ino;
- char *p;
- bb_xasprintf(&p, "%s/..", arg);
+ char *p = bb_xasprintf("%s/..", arg);
+
if (stat(p, &st) == 0) {
short ret = (st_dev != st.st_dev) ||
(st_dev == st.st_dev && st_ino == st.st_ino);
#if defined(CONFIG_FEATURE_2_6_MODULES)
if (k_version > 4)
- bb_xasprintf(&m_fullName, "%s.ko", tmp);
+ m_fullName = bb_xasprintf("%s.ko", tmp);
else
#endif
- bb_xasprintf(&m_fullName, "%s.o", tmp);
+ m_fullName = bb_xasprintf("%s.o", tmp);
if (!m_name) {
m_name = tmp;
}
}
- bb_xasprintf(&buf, "run-parts /etc/network/if-%s.d", opt);
+ buf = bb_xasprintf("run-parts /etc/network/if-%s.d", opt);
if ((*exec)(buf) != 1) {
return 0;
}
return -2;
}
- bb_xasprintf(&tmpname, "%s%.*s", PROC_PATH, (equals - name), name);
+ tmpname = bb_xasprintf("%s%.*s", PROC_PATH, (equals - name), name);
outname = bb_xstrdup(tmpname + strlen(PROC_PATH));
while ((cptr = strchr(tmpname, '.')) != NULL)
/* Null usernames should result in all users as possible completions. */
if ( /*!userlen || */ !strncmp(ud, entry->pw_name, userlen)) {
- bb_xasprintf(&temp, "~%s/", entry->pw_name);
+ temp = bb_xasprintf("~%s/", entry->pw_name);
matches = xrealloc(matches, (nm + 1) * sizeof(char *));
matches[nm++] = temp;