]> git.plutz.net Git - webpoll/commitdiff
avoid accidental octals in math expression, fix week number in january after 52 week...
authorPaul Hänsch <paul@plutz.net>
Fri, 23 Jul 2021 13:41:03 +0000 (15:41 +0200)
committerPaul Hänsch <paul@plutz.net>
Fri, 23 Jul 2021 13:41:03 +0000 (15:41 +0200)
widgets.sh

index 472318d01a8f02d0af4d09ac94f2f8560db210d5..5e7132e169945579f4a3a88154dda4ad6fe99bd7 100755 (executable)
@@ -31,7 +31,7 @@ w_month() {
   local dow dom days n=1 Y m d V w B
   if [ $month ]; then
     read Y m d V w B<<-EOF
-       $(date -d "${month}-01" +"%Y %m %d %V %w %B")
+       $(date -d "${month}-01" +"%_Y %_m %_d %_V %w %B")
        EOF
   else
     read Y m d V w <<-EOF
@@ -43,11 +43,11 @@ w_month() {
   fi
 
   case $m in
-    0[13578]|10|12)
+    [13578]|10|12)
       days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31";;
-    0[469]|11)
+    [469]|11)
       days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30";;
-    02) if [ $(( Y / 400 )) = 0 ]; then
+    2) if [ $(( Y / 400 )) = 0 ]; then
         days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29";
       elif [ $(( Y / 100 )) = 0 ]; then
         days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28";
@@ -82,10 +82,13 @@ w_month() {
                "$input" "$date" "$input" "$date" "$(checked $dom $selected)" "$input" "$date" "$dom"
         ;;
     esac
-    [ $dow = 0 ] && printf ']\n'
-    [ $dow = 0 ] && V=$(( V % 53 + 1))
+    if [ $dow = 0 ]; then
+      printf ']\n'
+      V=$((V + 1))
+      [ $m = 1 -a $V -ge 53 ] && V=1
+    fi
   done
-  if [ $dow -le 6 ]; then
+  if [ $dow -gt 0 ]; then
     while [ $dow -le 6 ]; do printf '[td ]'; dow=$((dow + 1)) ; done
     printf ']\n'
   fi