]> git.tuebingen.mpg.de Git - dss.git/commitdiff
Merge branch 'refs/heads/t/short-log'
authorAndre Noll <maan@tuebingen.mpg.de>
Tue, 14 Nov 2017 15:08:52 +0000 (16:08 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Tue, 14 Nov 2017 15:10:04 +0000 (16:10 +0100)
A few patches which change dss_log() to only print the time stamp
and the function if dss is executing the "run" subcommand.

Cooking for a week.

* refs/heads/t/short-log:
  Subcommand sensitive logging.
  Save the subcommand pointer in a global variable.
  main(): Don't initialize user data pointer.

14 files changed:
.gitignore
INSTALL
Makefile
NEWS
README
df.c
dss.c
dss.dia [deleted file]
dss.suite
file.h
gcc-compat.h
mklogo [new file with mode: 0755]
snap.h
tv.c

index 977f1dc03ba9e4c5c1e6f557d99abfc48df34999..1bb2a256e58d29073cf553ece92b355f5bf2ef7b 100644 (file)
@@ -1,7 +1,9 @@
 Makefile.deps
-*.[oa]
-cmdline.[ch]
+*.o
+*.swp
 dss.lsg.*
 dss
 dss.1
 dss.1.html
+dss.png
+index.html
diff --git a/INSTALL b/INSTALL
index 8c70c34a20e57cb6e87ab47e97391ff297ed1609..09d8505b3a46d5381a8626fd462ee7a6fd149af5 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -24,7 +24,7 @@ to install in /usr/local, or
 
 to install in /somewhere/else.
 
-Also make sure that [rsync](http://rsync.samba.org/) is installed on
+Also make sure that [rsync](https://rsync.samba.org/) is installed on
 your system. Version 2.6.1 or newer is required.
 
 Examples:
@@ -70,7 +70,7 @@ system boundaries and increases the number of snapshots.
                rsync-option "--exclude-from=/etc/dss.exclude"
                # don't cross filesystem boundaries
                rsync-option "--one-file-system"
-               # maintain 2^6 - 1 = 63 snaphots
+               # maintain 2^6 - 1 = 63 snapshots
                num-intervals "6"
 
 The /etc/dss.exclude file could look like this (see rsync(1) for
index a8e045c2e755673d1aa28062684c2096db4ef818..f5c34af7b590145c99d3a8ced9b2badfd7179048 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -37,8 +37,8 @@ dss: $(dss_objects)
 %.o: %.c Makefile
        $(CC) -c $(DSS_CPPFLAGS) $(CPPFLAGS) $(DSS_CFLAGS) $(CFLAGS) $<
 
-%.png: %.dia
-       dia -e $@ -t png $<
+dss.png: mklogo
+       ./mklogo > $@
 
 %.lsg.h: %.suite
        lopsubgen --gen-h=$@ < $<
diff --git a/NEWS b/NEWS
index 755cad21834cc7b6d150746e6555544d706802c6..fc80e8e6535045fc321b2e9be932b8f224177337 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,10 +7,13 @@ x.y.z (to be announced)
  - The --no-resume option has been removed.
 
  - The gengetopt option parser has been replaced by the
- [lopsub](http://people.tuebingen.mpg.de/~maan/lopsub) library. Hence
+ [lopsub](http://people.tuebingen.mpg.de/maan/lopsub) library. Hence
  lopsub must be installed to compile this package. Also help2man is
  no longer required since lopsub has built-in roff support.
 
+ - New subcommand "configtest" to check the command line options and
+ the configuration file for syntactic correctness.
+
  - "make install" will install the executable and the man page.
 
  - In run mode, dss no longer exits successfully if another instance
@@ -21,6 +24,11 @@ x.y.z (to be announced)
  - CFLAGS, CPPFLAGS and LDFLAGS can now be used to override the flags
  of the build system.
 
+ - For all subcommands other than "run", timestamps and function names
+ are omitted from the log output.
+
+ - The dss logo is now created with ImageMagick rather than dia.
+
 ------------------
 0.1.7 (2017-04-17)
 ------------------
diff --git a/README b/README
index c5abb2923cc7ca9cd415ccdcbce9dd56ece4d0fd..79b88898348ead8869b62590d548e848072a20fe 100644 (file)
--- a/README
+++ b/README
@@ -11,7 +11,7 @@ configured, and there is no database to maintain.
 
 dss is also user-friendly because users can browse the snapshot
 directories without admin intervention and see the contents of the file
-system at the various times a snapshot was taken. Each snaphot looks
+system at the various times a snapshot was taken. Each snapshot looks
 like a full backup, so users can easily restore accidentally removed
 files by using their favorite file browser to simply copy files from
 the snapshot directory back to the live system.
diff --git a/df.c b/df.c
index 003becccddebe5231289afb63c5c527c550357b1..82d14ba9863a5975fd0b9ef46313ec5fd720becf 100644 (file)
--- a/df.c
+++ b/df.c
@@ -18,7 +18,7 @@
 
 int get_disk_space(const char *path, struct disk_space *result)
 {
-       /* using floats allows to not care about integer overflows */
+       /* With floats we don't need to care about integer overflows. */
        float total_blocks, available_blocks, blocksize;
        float total_inodes, available_inodes;
 
diff --git a/dss.c b/dss.c
index c6c48f51889fc1c5c7e7a1e44c550a262886f8a7..6353fbe79df9b7b38f92d6e6c6fba1fa80399f5b 100644 (file)
--- a/dss.c
+++ b/dss.c
@@ -300,6 +300,7 @@ static int send_signal(int sig)
                dss_msg("%d\n", (int)pid);
                return 0;
        }
+       DSS_NOTICE_LOG(("sending signal %d to pid %d\n", sig, (int)pid));
        ret = kill(pid, sig);
        if (ret < 0)
                return -ERRNO_TO_DSS_ERROR(errno);
@@ -520,7 +521,7 @@ static struct snapshot *find_orphaned_snapshot(struct snapshot_list *sl)
        struct snapshot *s;
        int i;
 
-       DSS_DEBUG_LOG(("looking for orphaned snapshots\n"));
+       DSS_DEBUG_LOG(("looking for old incomplete snapshots\n"));
        FOR_EACH_SNAPSHOT(s, i, sl) {
                if (snapshot_is_being_created(s))
                        continue;
@@ -734,6 +735,7 @@ static int try_to_free_disk_space(void)
        if (!low_disk_space)
                goto out;
        DSS_WARNING_LOG(("disk space low and nothing obvious to remove\n"));
+       why = "oldest";
        victim = find_oldest_removable_snapshot(&sl);
        if (victim)
                goto remove;
@@ -1701,6 +1703,13 @@ static int com_ls(void)
 }
 EXPORT_CMD_HANDLER(ls);
 
+static int com_configtest(void)
+{
+       printf("Syntax Ok\n");
+       return 0;
+}
+EXPORT_CMD_HANDLER(configtest);
+
 static int setup_signal_handling(void)
 {
        int ret;
@@ -1742,7 +1751,7 @@ static void show_subcommand_summary(void)
        for (i = 1; (cmd = lls_cmd(i, dss_suite)); i++) {
                const char *name = lls_command_name(cmd);
                const char *purpose = lls_purpose(cmd);
-               printf("%-10s%s\n", name, purpose);
+               printf("%-11s%s\n", name, purpose);
        }
        exit(EXIT_SUCCESS);
 }
diff --git a/dss.dia b/dss.dia
deleted file mode 100644 (file)
index a02f700..0000000
--- a/dss.dia
+++ /dev/null
@@ -1,960 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
-  <dia:diagramdata>
-    <dia:attribute name="background">
-      <dia:color val="#ffffff"/>
-    </dia:attribute>
-    <dia:attribute name="pagebreak">
-      <dia:color val="#000099"/>
-    </dia:attribute>
-    <dia:attribute name="paper">
-      <dia:composite type="paper">
-        <dia:attribute name="name">
-          <dia:string>#A4#</dia:string>
-        </dia:attribute>
-        <dia:attribute name="tmargin">
-          <dia:real val="2.8222000598907471"/>
-        </dia:attribute>
-        <dia:attribute name="bmargin">
-          <dia:real val="2.8222000598907471"/>
-        </dia:attribute>
-        <dia:attribute name="lmargin">
-          <dia:real val="2.8222000598907471"/>
-        </dia:attribute>
-        <dia:attribute name="rmargin">
-          <dia:real val="2.8222000598907471"/>
-        </dia:attribute>
-        <dia:attribute name="is_portrait">
-          <dia:boolean val="true"/>
-        </dia:attribute>
-        <dia:attribute name="scaling">
-          <dia:real val="1"/>
-        </dia:attribute>
-        <dia:attribute name="fitto">
-          <dia:boolean val="false"/>
-        </dia:attribute>
-      </dia:composite>
-    </dia:attribute>
-    <dia:attribute name="grid">
-      <dia:composite type="grid">
-        <dia:attribute name="width_x">
-          <dia:real val="1"/>
-        </dia:attribute>
-        <dia:attribute name="width_y">
-          <dia:real val="1"/>
-        </dia:attribute>
-        <dia:attribute name="visible_x">
-          <dia:int val="1"/>
-        </dia:attribute>
-        <dia:attribute name="visible_y">
-          <dia:int val="1"/>
-        </dia:attribute>
-        <dia:composite type="color"/>
-      </dia:composite>
-    </dia:attribute>
-    <dia:attribute name="color">
-      <dia:color val="#d8e5e5"/>
-    </dia:attribute>
-    <dia:attribute name="guides">
-      <dia:composite type="guides">
-        <dia:attribute name="hguides"/>
-        <dia:attribute name="vguides"/>
-      </dia:composite>
-    </dia:attribute>
-  </dia:diagramdata>
-  <dia:layer name="New layer 1" visible="true" active="true">
-    <dia:object type="Standard - Box" version="0" id="O0">
-      <dia:attribute name="obj_pos">
-        <dia:point val="13.1551,5.70485"/>
-      </dia:attribute>
-      <dia:attribute name="obj_bb">
-        <dia:rectangle val="13.1051,5.65485;29.4092,11.5949"/>
-      </dia:attribute>
-      <dia:attribute name="elem_corner">
-        <dia:point val="13.1551,5.70485"/>
-      </dia:attribute>
-      <dia:attribute name="elem_width">
-        <dia:real val="16.204140120230058"/>
-      </dia:attribute>
-      <dia:attribute name="elem_height">
-        <dia:real val="5.8400708047529699"/>
-      </dia:attribute>
-      <dia:attribute name="border_width">
-        <dia:real val="0.10000000149011612"/>
-      </dia:attribute>
-      <dia:attribute name="border_color">
-        <dia:color val="#ffff00"/>
-      </dia:attribute>
-      <dia:attribute name="inner_color">
-        <dia:color val="#ffff00"/>
-      </dia:attribute>
-      <dia:attribute name="show_background">
-        <dia:boolean val="true"/>
-      </dia:attribute>
-    </dia:object>
-    <dia:group>
-      <dia:object type="Standard - Box" version="0" id="O1">
-        <dia:attribute name="obj_pos">
-          <dia:point val="13.5072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="13.4572,6.02489;17.3572,11.2249"/>
-        </dia:attribute>
-        <dia:attribute name="elem_corner">
-          <dia:point val="13.5072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="elem_width">
-          <dia:real val="3.8000000000000007"/>
-        </dia:attribute>
-        <dia:attribute name="elem_height">
-          <dia:real val="5.0999999999999996"/>
-        </dia:attribute>
-        <dia:attribute name="border_width">
-          <dia:real val="0.10000000149011612"/>
-        </dia:attribute>
-        <dia:attribute name="border_color">
-          <dia:color val="#cbd4fa"/>
-        </dia:attribute>
-        <dia:attribute name="inner_color">
-          <dia:color val="#cbd4fa"/>
-        </dia:attribute>
-        <dia:attribute name="show_background">
-          <dia:boolean val="true"/>
-        </dia:attribute>
-      </dia:object>
-      <dia:object type="Standard - Box" version="0" id="O2">
-        <dia:attribute name="obj_pos">
-          <dia:point val="17.4072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="17.3572,6.02489;21.2572,11.2249"/>
-        </dia:attribute>
-        <dia:attribute name="elem_corner">
-          <dia:point val="17.4072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="elem_width">
-          <dia:real val="3.8000000000000007"/>
-        </dia:attribute>
-        <dia:attribute name="elem_height">
-          <dia:real val="5.0999999999999996"/>
-        </dia:attribute>
-        <dia:attribute name="border_width">
-          <dia:real val="0.10000000149011612"/>
-        </dia:attribute>
-        <dia:attribute name="border_color">
-          <dia:color val="#90a5fe"/>
-        </dia:attribute>
-        <dia:attribute name="inner_color">
-          <dia:color val="#90a5fe"/>
-        </dia:attribute>
-        <dia:attribute name="show_background">
-          <dia:boolean val="true"/>
-        </dia:attribute>
-      </dia:object>
-      <dia:object type="Standard - Box" version="0" id="O3">
-        <dia:attribute name="obj_pos">
-          <dia:point val="21.3072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="21.2572,6.02489;25.1572,11.2249"/>
-        </dia:attribute>
-        <dia:attribute name="elem_corner">
-          <dia:point val="21.3072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="elem_width">
-          <dia:real val="3.8000000000000007"/>
-        </dia:attribute>
-        <dia:attribute name="elem_height">
-          <dia:real val="5.0999999999999996"/>
-        </dia:attribute>
-        <dia:attribute name="border_width">
-          <dia:real val="0.10000000149011612"/>
-        </dia:attribute>
-        <dia:attribute name="border_color">
-          <dia:color val="#5e78f6"/>
-        </dia:attribute>
-        <dia:attribute name="inner_color">
-          <dia:color val="#5e78f6"/>
-        </dia:attribute>
-        <dia:attribute name="show_background">
-          <dia:boolean val="true"/>
-        </dia:attribute>
-      </dia:object>
-      <dia:object type="Standard - Box" version="0" id="O4">
-        <dia:attribute name="obj_pos">
-          <dia:point val="25.2072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="25.1572,6.02489;29.0572,11.2249"/>
-        </dia:attribute>
-        <dia:attribute name="elem_corner">
-          <dia:point val="25.2072,6.07489"/>
-        </dia:attribute>
-        <dia:attribute name="elem_width">
-          <dia:real val="3.8000000000000007"/>
-        </dia:attribute>
-        <dia:attribute name="elem_height">
-          <dia:real val="5.0999999999999996"/>
-        </dia:attribute>
-        <dia:attribute name="border_width">
-          <dia:real val="0.10000000149011612"/>
-        </dia:attribute>
-        <dia:attribute name="border_color">
-          <dia:color val="#0000ff"/>
-        </dia:attribute>
-        <dia:attribute name="inner_color">
-          <dia:color val="#0910f4"/>
-        </dia:attribute>
-        <dia:attribute name="show_background">
-          <dia:boolean val="true"/>
-        </dia:attribute>
-      </dia:object>
-      <dia:group>
-        <dia:group>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O5">
-            <dia:attribute name="obj_pos">
-              <dia:point val="25.3046,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="25.2546,9.69613;25.7177,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="25.3046,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O6">
-            <dia:attribute name="obj_pos">
-              <dia:point val="25.7677,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="25.7177,9.69613;26.1809,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="25.7677,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O7">
-            <dia:attribute name="obj_pos">
-              <dia:point val="26.2309,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="26.1809,9.69613;26.644,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="26.2309,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O8">
-            <dia:attribute name="obj_pos">
-              <dia:point val="26.694,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="26.644,9.69613;27.1072,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="26.694,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O9">
-            <dia:attribute name="obj_pos">
-              <dia:point val="27.1572,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="27.1072,9.69613;27.5703,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="27.1572,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O10">
-            <dia:attribute name="obj_pos">
-              <dia:point val="27.6203,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="27.5703,9.69613;28.0335,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="27.6203,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O11">
-            <dia:attribute name="obj_pos">
-              <dia:point val="28.0835,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="28.0335,9.69613;28.4966,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="28.0835,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O12">
-            <dia:attribute name="obj_pos">
-              <dia:point val="28.5466,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="28.4966,9.69613;28.9598,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="28.5466,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-        </dia:group>
-        <dia:group>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O13">
-            <dia:attribute name="obj_pos">
-              <dia:point val="21.8026,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="21.7526,9.69613;22.2157,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="21.8026,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O14">
-            <dia:attribute name="obj_pos">
-              <dia:point val="22.6179,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="22.5679,9.69613;23.0311,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="22.6179,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O15">
-            <dia:attribute name="obj_pos">
-              <dia:point val="23.4333,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="23.3833,9.69613;23.8464,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="23.4333,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O16">
-            <dia:attribute name="obj_pos">
-              <dia:point val="24.2486,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="24.1986,9.69613;24.6618,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="24.2486,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-        </dia:group>
-        <dia:object type="Geometric - Perfect Circle" version="1" id="O17">
-          <dia:attribute name="obj_pos">
-            <dia:point val="15.2256,9.74613"/>
-          </dia:attribute>
-          <dia:attribute name="obj_bb">
-            <dia:rectangle val="15.1756,9.69613;15.6388,10.1593"/>
-          </dia:attribute>
-          <dia:attribute name="meta">
-            <dia:composite type="dict"/>
-          </dia:attribute>
-          <dia:attribute name="elem_corner">
-            <dia:point val="15.2256,9.74613"/>
-          </dia:attribute>
-          <dia:attribute name="elem_width">
-            <dia:real val="0.3631490811886362"/>
-          </dia:attribute>
-          <dia:attribute name="elem_height">
-            <dia:real val="0.3631490811886362"/>
-          </dia:attribute>
-          <dia:attribute name="line_width">
-            <dia:real val="0.10000000149011612"/>
-          </dia:attribute>
-          <dia:attribute name="line_colour">
-            <dia:color val="#000000"/>
-          </dia:attribute>
-          <dia:attribute name="fill_colour">
-            <dia:color val="#ff0000"/>
-          </dia:attribute>
-          <dia:attribute name="show_background">
-            <dia:boolean val="true"/>
-          </dia:attribute>
-          <dia:attribute name="line_style">
-            <dia:enum val="0"/>
-            <dia:real val="1"/>
-          </dia:attribute>
-          <dia:attribute name="flip_horizontal">
-            <dia:boolean val="false"/>
-          </dia:attribute>
-          <dia:attribute name="flip_vertical">
-            <dia:boolean val="false"/>
-          </dia:attribute>
-          <dia:attribute name="subscale">
-            <dia:real val="1"/>
-          </dia:attribute>
-        </dia:object>
-        <dia:group>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O18">
-            <dia:attribute name="obj_pos">
-              <dia:point val="18.3889,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="18.3389,9.69613;18.8021,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="18.3889,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.3631490811886362"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-          <dia:object type="Geometric - Perfect Circle" version="1" id="O19">
-            <dia:attribute name="obj_pos">
-              <dia:point val="19.8623,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="obj_bb">
-              <dia:rectangle val="19.8123,9.69613;20.2754,10.1593"/>
-            </dia:attribute>
-            <dia:attribute name="meta">
-              <dia:composite type="dict"/>
-            </dia:attribute>
-            <dia:attribute name="elem_corner">
-              <dia:point val="19.8623,9.74613"/>
-            </dia:attribute>
-            <dia:attribute name="elem_width">
-              <dia:real val="0.36314908118863798"/>
-            </dia:attribute>
-            <dia:attribute name="elem_height">
-              <dia:real val="0.36314908118863798"/>
-            </dia:attribute>
-            <dia:attribute name="line_width">
-              <dia:real val="0.10000000149011612"/>
-            </dia:attribute>
-            <dia:attribute name="line_colour">
-              <dia:color val="#000000"/>
-            </dia:attribute>
-            <dia:attribute name="fill_colour">
-              <dia:color val="#ff0000"/>
-            </dia:attribute>
-            <dia:attribute name="show_background">
-              <dia:boolean val="true"/>
-            </dia:attribute>
-            <dia:attribute name="line_style">
-              <dia:enum val="0"/>
-              <dia:real val="1"/>
-            </dia:attribute>
-            <dia:attribute name="flip_horizontal">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="flip_vertical">
-              <dia:boolean val="false"/>
-            </dia:attribute>
-            <dia:attribute name="subscale">
-              <dia:real val="1"/>
-            </dia:attribute>
-          </dia:object>
-        </dia:group>
-      </dia:group>
-      <dia:object type="Standard - Line" version="0" id="O20">
-        <dia:attribute name="obj_pos">
-          <dia:point val="14.4506,9.23568"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="14.4006,8.90478;28.1138,9.56659"/>
-        </dia:attribute>
-        <dia:attribute name="conn_endpoints">
-          <dia:point val="14.4506,9.23568"/>
-          <dia:point val="28.002,9.23568"/>
-        </dia:attribute>
-        <dia:attribute name="numcp">
-          <dia:int val="1"/>
-        </dia:attribute>
-        <dia:attribute name="line_color">
-          <dia:color val="#ffffff"/>
-        </dia:attribute>
-        <dia:attribute name="line_width">
-          <dia:real val="0.10000000000000001"/>
-        </dia:attribute>
-        <dia:attribute name="end_arrow">
-          <dia:enum val="3"/>
-        </dia:attribute>
-        <dia:attribute name="end_arrow_length">
-          <dia:real val="0.5"/>
-        </dia:attribute>
-        <dia:attribute name="end_arrow_width">
-          <dia:real val="0.5"/>
-        </dia:attribute>
-      </dia:object>
-      <dia:object type="Standard - Text" version="1" id="O21">
-        <dia:attribute name="obj_pos">
-          <dia:point val="19.8922,8.37201"/>
-        </dia:attribute>
-        <dia:attribute name="obj_bb">
-          <dia:rectangle val="19.8922,6.86701;22.6222,8.68701"/>
-        </dia:attribute>
-        <dia:attribute name="text">
-          <dia:composite type="text">
-            <dia:attribute name="string">
-              <dia:string>#DSS#</dia:string>
-            </dia:attribute>
-            <dia:attribute name="font">
-              <dia:font family="Serif" style="80" name="Times-Bold"/>
-            </dia:attribute>
-            <dia:attribute name="height">
-              <dia:real val="1.8584333549302243"/>
-            </dia:attribute>
-            <dia:attribute name="pos">
-              <dia:point val="19.8922,8.37201"/>
-            </dia:attribute>
-            <dia:attribute name="color">
-              <dia:color val="#ffffff"/>
-            </dia:attribute>
-            <dia:attribute name="alignment">
-              <dia:enum val="0"/>
-            </dia:attribute>
-          </dia:composite>
-        </dia:attribute>
-        <dia:attribute name="valign">
-          <dia:enum val="3"/>
-        </dia:attribute>
-      </dia:object>
-    </dia:group>
-  </dia:layer>
-</dia:diagram>
index e69cc28630c8a39359cba3aead33ab3b847011a8..95dd30ff9dc7ea5963957aad8e809a57d0277c52 100644 (file)
--- a/dss.suite
+++ b/dss.suite
@@ -34,7 +34,7 @@ caption = Subcommands
                        However, there is one exception to this rule: The run subcommand
                        re-reads the configuration file when it receives the HUP signal. In
                        this case the options in the config file override any options that
-                       were previously given at the command line. This allows to change the
+                       were previously given at the command line. This allows changing the
                        configuration of a running dss process by sending SIGHUP.
                [/help]
        [option loglevel]
@@ -312,8 +312,8 @@ caption = Subcommands
                typestr = percent
                default_val = 2
                [help]
-                       This is like --min-free-mb but allows to specify the amount of
-                       free disk space as a percentage. It is not recommended to set both
+                       This is like --min-free-mb but the amount of free disk space
+                       is specified as a percentage. It is not recommended to set both
                        --min-free-mb and --min-free-percent to zero as this will cause your
                        file system to fill up quickly.
                [/help]
@@ -475,6 +475,14 @@ caption = Subcommands
 
                        Sending SIGHUP causes the running dss process to reload its config file.
                [/help]
+[subcommand configtest]
+       purpose = run a configuration file syntax test
+       [description]
+               This command checks the command line options and the configuration
+               file for syntactic correctness. It either reports "Syntax Ok" and
+               exits successfully or prints information about the first syntax error
+               detected and terminates with exit code 1.
+       [/description]
 
 [section copyright]
        Written by Andre Noll
diff --git a/file.h b/file.h
index 140a505ba01b1fe3adb3614e118103517a722384..f82643a57fe961d3d1f67c837b69f794670188d0 100644 (file)
--- a/file.h
+++ b/file.h
@@ -5,17 +5,7 @@
  */
 int for_each_subdir(int (*func)(const char *, void *), void *private_data);
 __must_check int mark_fd_nonblocking(int fd);
-/**
- * A wrapper for rename(2).
- *
- * \param old_path The source path.
- * \param new_path The destination path.
- *
- * \return Standard.
- *
- * \sa rename(2).
- */
-_static_inline_ int dss_rename(const char *old_path, const char *new_path)
+static inline int dss_rename(const char *old_path, const char *new_path)
 {
        if (rename(old_path, new_path) >= 0)
                return 1;
index a15b0cef5c0f4b10672ab8a620429438baa1e1c2..258a3cb279b7e9045da566a17f9f7d8f52f6b40d 100644 (file)
@@ -2,24 +2,12 @@
        defined(__GNUC__) && \
        (__GNUC__ > maj || (__GNUC__ == maj && __GNUC_MINOR__ >= min))
 
-#if HAVE_GNUC(2,5)
-# define __noreturn    __attribute__ ((noreturn))
-#else
-# define __noreturn
-#endif
-
 #if HAVE_GNUC(3,0)
 # define __malloc      __attribute__ ((malloc))
 #else
 # define __malloc
 #endif
 
-#if HAVE_GNUC(2,7)
-# define __a_unused    __attribute__ ((unused))
-#else
-# define __a_unused
-#endif
-
 /* 
  * p is the number of the "format string" parameter, and q is 
  * the number of the first variadic parameter 
 # define __printf(p,q)
 #endif
 
-/*
- * as direct use of __printf(p,q) confuses doxygen, here are two extra macros
- * for those values p,q that are actually used by paraslash.
- */
 #define  __printf_1_2 __printf(1,2)
-#define  __printf_2_3 __printf(2,3)
 
 #if HAVE_GNUC(3,3)
 # define __must_check  __attribute__ ((warn_unused_result))
 #else
 # define __must_check  /* no warn_unused_result */
 #endif
-
-#define _static_inline_ static inline
diff --git a/mklogo b/mklogo
new file mode 100755 (executable)
index 0000000..54c8c95
--- /dev/null
+++ b/mklogo
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+# Script for Image Magick that writes the dss logo in png format
+# to stdout.
+
+set -u
+
+width=320
+height=110
+border=5
+radius1=4
+radius2=5
+circle_y=90
+arrow_y=70
+text_x=128
+text_y=55
+pointsize=36
+
+declare -a circle arrow rectangle text
+
+make_circles()
+{
+       local inner='stroke black fill red circle'
+       local outer='stroke black fill black circle'
+       local num=1
+       local idx=0
+       local y=$circle_y
+       local step x0 i j idx num
+
+       for ((i = 0; i < 4; i++)); do
+               step=$(((width / 4 + num) / (num + 1)))
+               x0=$((border + width / 4 * i))
+               for ((j = 1; j <= $num; j++)); do
+                       x=$((x0 + j * $step))
+                       circle[$idx]='-draw'; let idx++
+                       circle[$idx]="$outer $x,$y,$((x + radius2)),$y"; let idx++
+                       circle[$idx]='-draw'; let idx++
+                       circle[$idx]="$inner $x,$y,$((x + radius1)),$y"; let idx++
+               done
+               num=$((num * 2))
+       done
+       #echo "${circle[@]}"; exit 0
+}
+
+make_arrow()
+{
+       local arrow_head='l -15,-5  +5,+5  -5,+5  +15,-5 z'
+       local idx=0
+       local x0 x1 y
+
+       arrow[$idx]='-draw'; let idx++
+       x0=$((3 * border)); x1=$((width - 2 * border))
+       y=$arrow_y
+       arrow[$idx]="stroke white line $x0,$y $x1,$y"; let idx++
+       arrow[$idx]='-draw'; let idx++
+       x0=$((width - 2 * border))
+       arrow[$idx]="stroke white fill white path 'M $x0,$y $arrow_head'"
+       #echo "${arrow[@]}"; exit 0
+}
+
+make_rectangles()
+{
+       local idx=0
+       local x x0 x1 y y0 y1 i red_green color
+
+       rectangle[$idx]='-draw'; let idx++
+       x=$((width + 2 * border))
+       y=$((height + 2 * border))
+       rectangle[$idx]="stroke yellow fill yellow rectangle 0,0 $x,$y"; let idx++
+       for ((i = 0; i < 4; i++)); do
+               rectangle[$idx]='-draw'; let idx++
+               red_green="$(printf '%02x' $(((3 - i) * 60)))"
+               color="#${red_green}${red_green}ff"
+               x0=$((border + i * width / 4)); x1=$((x0 + width / 4 - 1))
+               y0=$border; y1=$((y0 + height))
+               rectangle[$idx]="stroke $color fill $color rectangle $x0,$y0 $x1,$y1"
+               let idx++
+       done
+       #echo "${rectangle[@]}"; exit 0
+}
+
+make_text()
+{
+       text=(-pointsize $pointsize -draw \
+               "fill white text $text_x,$text_y DSS")
+       #echo "${text[@]}"; exit 0
+}
+
+make_rectangles
+make_arrow
+make_circles
+make_text
+
+convert -size $((width + 2 * border))x$((height + 2 * border)) \
+       -background none xc: \
+       "${rectangle[@]}" \
+       "${arrow[@]}" \
+       "${circle[@]}" \
+       "${text[@]}" \
+       png:-
diff --git a/snap.h b/snap.h
index 626ecad003a52a1a465ea6f7f2e11f960a97df3c..489b67a2fbbb39f69533e50bfc996b1c7db20525 100644 (file)
--- a/snap.h
+++ b/snap.h
@@ -93,7 +93,7 @@ int num_complete_snapshots(struct snapshot_list *sl);
 /**
  * Get the newest snapshot in a snapshot list.
  */
-_static_inline_ struct snapshot *get_newest_snapshot(struct snapshot_list *sl)
+static inline struct snapshot *get_newest_snapshot(struct snapshot_list *sl)
 {
        if (!sl->num_snapshots)
                return NULL;
diff --git a/tv.c b/tv.c
index 8ab5e5a90a6bd151c87750adb761c135b7ec774e..f954cef0c9a1342fedc4d2a49851ad56ca11aa9e 100644 (file)
--- a/tv.c
+++ b/tv.c
@@ -54,6 +54,5 @@ int64_t get_current_time(void)
 {
        time_t now;
        time(&now);
-       DSS_DEBUG_LOG(("now: %jd\n", (intmax_t)now));
        return (int64_t)now;
 }