summaryrefslogtreecommitdiffstats
path: root/mga-bg-res/mga-bg-res.c
diff options
context:
space:
mode:
Diffstat (limited to 'mga-bg-res/mga-bg-res.c')
-rw-r--r--mga-bg-res/mga-bg-res.c82
1 files changed, 0 insertions, 82 deletions
diff --git a/mga-bg-res/mga-bg-res.c b/mga-bg-res/mga-bg-res.c
deleted file mode 100644
index 6061587..0000000
--- a/mga-bg-res/mga-bg-res.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-
-#define PATH "/usr/share/mga/backgrounds/"
-#define DSTLINK PATH"default.jpg"
-#define SRCLINK_PREFIX PATH"Mageia-Default-"
-#define SRCLINK_SUFFIX ".jpg"
-#define SRCLINK SRCLINK_PREFIX"%s"SRCLINK_SUFFIX
-#define RESSIZE 20
-#define SRCSIZE (RESSIZE+strlen(SRCLINK_PREFIX)+strlen(SRCLINK_SUFFIX) + 1)
-#define ALLOWCHARS "0123456789x"
-
-int main(int argc, char* argv[]) {
- char src[SRCSIZE];
- char res[RESSIZE];
- int l;
-
- // check argument
- if (argc != 2) {
- fprintf(stderr, "Need a resolution argument, eg: '1920x1080'.\n");
- return 1;
- }
-
- // get the res (max RESSIZE)
- l = snprintf(res, RESSIZE, argv[1]);
- if (l < 5) {
- fprintf(stderr, "Malformed resolution argument, eg: '1920x1080'.\n");
- return 2;
- }
-
- // to be sure, set the last char as 0
- if (l < RESSIZE)
- res[l] = 0;
- else
- res[RESSIZE-1] = 0;
-
- // check if the resolution contains acceptable chars
- l = strspn(res, ALLOWCHARS);
- if (l < 5) {
- fprintf(stderr, "Malformed resolution argument, eg: '1920x1080'.\n");
- return 2;
- }
-
- // to be sure, set the last char as 0
- if (l < RESSIZE)
- res[l] = 0;
- else
- res[RESSIZE-1] = 0;
-
- // create target string
- if (snprintf(src, SRCSIZE, SRCLINK, res) < 0) {
- fprintf(stderr, "Unknown error determining symlink target.\n");
- return 3;
- }
-
- // check if symlink target exists
- if (access(src, F_OK) < 0) {
- fprintf(stderr, "No image for this resolution.\n");
- return 0;
- }
-
- // set symlink
- if (symlink(src, DSTLINK) < 0) {
- if (errno != EEXIST) {
- fprintf(stderr, "Symlink could not be set: %s.\n", strerror(errno));
- return 4;
- }
-
- // since the destination exists, remove and try again
- if (unlink(DSTLINK) < 0) {
- fprintf(stderr, "Symlink could not be forced: %s.\n", strerror(errno));
- return 5;
- }
- if (symlink(src, DSTLINK) < 0) {
- fprintf(stderr, "Unknown error during forced symlink: %s.\n", strerror(errno));
- return 6;
- }
- }
- return 0;
-}