wmadec: Properly handle empty outputs.
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 7f9e786caf4f4a27a4cf549928ff1b5d5737c8d9..f14440e6fb903548e25ccfdf611f4c2f2881aa49 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -696,7 +696,13 @@ static int get_local_time(uint64_t *seconds, char *buf, size_t size,
                        return -E_STRFTIME;
                return 1;
        }
-       if (!strftime(buf, size, "%b %e %Y", tm))
+       /*
+        * If the given time is more than six month away from the current time,
+        * we print only the year. The additional space character in the format
+        * string below makes the formated date align nicely with dates that
+        * contain the time (those written by the above strftime() statement).
+        */
+       if (!strftime(buf, size, "%b %e  %Y", tm))
                return -E_STRFTIME;
        return 1;
 }
@@ -1745,6 +1751,8 @@ static int com_add_callback(struct afs_callback_arg *aca)
        objs[AFTCOL_AFSI].size = AFSI_SIZE;
        save_afsi(&default_afsi, &objs[AFTCOL_AFSI]);
        ret = osl(osl_add_and_get_row(audio_file_table, objs, &aft_row));
+       if (ret < 0)
+               goto out;
        ret = afs_event(AUDIO_FILE_ADD, &aca->pbout, aft_row);
 out:
        if (ret < 0)
@@ -2399,6 +2407,7 @@ static int com_setatt_callback(struct afs_callback_arg *aca)
        ) {
                char c;
                unsigned char bitnum;
+               uint64_t one = 1;
 
                len = strlen(p);
                ret = -E_ATTR_SYNTAX;
@@ -2414,9 +2423,9 @@ static int com_setatt_callback(struct afs_callback_arg *aca)
                        goto out;
                }
                if (c == '+')
-                       cad.add_mask |= (1UL << bitnum);
+                       cad.add_mask |= (one << bitnum);
                else
-                       cad.del_mask |= (1UL << bitnum);
+                       cad.del_mask |= (one << bitnum);
        }
        ret = -E_ATTR_SYNTAX;
        if (!cad.add_mask && !cad.del_mask)