mktemp rewrited
This commit is contained in:
parent
944ede280c
commit
76dfcb5328
2
build.sh
2
build.sh
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
PROJECT_DIR=$(pwd)
|
||||
CFLAGS="-pedantic -s -Os -Wall -Wextra -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm"
|
||||
CFLAGS="-pedantic -s -Os -flto -Werror -Wall -Wextra -I$PROJECT_DIR -I$PROJECT_DIR/include/libmu -lm"
|
||||
projects="console-tools coreutils sysutils sysutils-linux findutils networking miscutils shell loginutils procps"
|
||||
CC=cc
|
||||
|
||||
|
|
|
@ -10,11 +10,10 @@ typedef struct {
|
|||
} MU_MOUNT_OPTS;
|
||||
|
||||
#if defined(__BSD__)
|
||||
/* Todo */
|
||||
#define MS_RDONLY MNT_RDONLY
|
||||
#define MS_REMOUNT 0
|
||||
#define MS_SYNCHRONOUS MNT_SYNCHRONOUS
|
||||
#define MS_NODEV 0
|
||||
#define MS_NODEV MNT_NODEV
|
||||
#endif
|
||||
|
||||
MU_MOUNT_OPTS mu_options[] = {
|
||||
|
@ -45,7 +44,6 @@ unsigned long mu_parse_opts(char *str) {
|
|||
token = strtok(NULL, ",");
|
||||
}
|
||||
|
||||
printf("%lu\n", opt);
|
||||
return opt;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include "make_path.h"
|
||||
|
||||
int make_temp_dir(char *tmp) {
|
||||
if (!mkdtemp(tmp)) {
|
||||
|
@ -45,7 +46,6 @@ int make_temp_file(char *tmp) {
|
|||
|
||||
int main(int argc, char **argv) {
|
||||
unsigned int d_flag = 0;
|
||||
unsigned int flag = 0;
|
||||
char *path = NULL;
|
||||
|
||||
int opt;
|
||||
|
@ -68,37 +68,31 @@ int main(int argc, char **argv) {
|
|||
argv += optind;
|
||||
argc -= optind;
|
||||
|
||||
if (argc == 0) {
|
||||
if (path == NULL) {
|
||||
path = getenv("TMPDIR");
|
||||
if (!path || path[0] == '\0')
|
||||
path = "/tmp/";
|
||||
}
|
||||
|
||||
if (chdir(path)) {
|
||||
fprintf(stderr, "mktemp: %s\n", strerror(errno));
|
||||
char *x = mu_make_path("mktemp", path, (argc == 0) ? "tmp.XXXXXX" : argv[0]);
|
||||
if (x == NULL)
|
||||
return 1;
|
||||
}
|
||||
|
||||
flag = 1;
|
||||
}
|
||||
|
||||
else
|
||||
path = "";
|
||||
|
||||
char def[] = "tmp.XXXXXX";
|
||||
char *x = (argc == 0) ? def : argv[0];
|
||||
|
||||
if (d_flag) {
|
||||
if (make_temp_dir(x))
|
||||
if (make_temp_dir(x)) {
|
||||
free(x);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
if (make_temp_file(x))
|
||||
if (make_temp_file(x)) {
|
||||
free(x);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
printf("%s%c%s\n", path, (flag) ? '/' : 0, x);
|
||||
puts(x);
|
||||
free(x);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
echo ./*.c $CFLAGS $OUTPUT | xargs $CC
|
|
@ -1,5 +0,0 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue