Die Ermittlung der Tagesart in tools/holiday.c ist falsch!

Es findet n�mlich keine Pr�fung statt, ob ein Wochenende/Werktag evtl. nicht
auch ein Feiertag ist. 

Ich habe die Formatierung der ausgegebenen Texte ein wenig ge�ndert, damit
deutlicher wird, was isdnlog 'rausgefunden hat.

Au�erdem: Tuesday schreibt sich ohne 'Th' :-)

Patch h�ngt hinten dran.

-- 
Jochen Erwied     | EMail:   [EMAIL PROTECTED] | Work:  (9-18 CET)
Sauerbruchstr. 17 | Voice (q):    +49-208-3880018 | Voice: +49-2151-7294-24
D-45470 Muelheim  | X.75/V34/FAX: +49-208-3880019 | FAX:   +49-2151-7294-50

---snip
--- /usr/src/isdn4k/isdn4k-utils/isdnlog/tools/holiday.c        Mon May 10 07:29:47 
1999
+++ holiday.c   Thu May 13 16:34:43 1999
@@ -169,5 +169,5 @@
 static char *defaultWeekday[] = { "", 
                                  "Monday",
-                                 "Thuesday",
+                                 "Tuesday",
                                  "Wednesday",
                                  "Thursday",
@@ -410,6 +410,9 @@
   char *s;
   static char buffer[BUFSIZ];
+  int holiday;
+  
+  holiday = isHoliday(tm, &s);
 
-  if ((mask & (1<<HOLIDAY)) && isHoliday(tm, &s)) {
+  if ((mask & (1<<HOLIDAY)) && holiday) {
     if (name) sprintf (*name=buffer, "%s (%s)", Weekday[HOLIDAY], s); 
     return HOLIDAY;
@@ -418,10 +421,10 @@
   day=(date2julian(tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday)-6)%7+1;
 
-  if ((mask & (1<<WEEKEND)) && day>5) {
+  if ((mask & (1<<WEEKEND)) && day>5 && !holiday) {
     if (name) sprintf (*name=buffer, "%s (%s)", Weekday[WEEKEND], Weekday[day]);
     return WEEKEND;
   }
   
-  if ((mask & (1<<WORKDAY)) && day<6) {
+  if ((mask & (1<<WORKDAY)) && day<6 && !holiday) {
     if (name) sprintf (*name=buffer, "%s (%s)", Weekday[WORKDAY], Weekday[day]);
     return WORKDAY;
@@ -429,10 +432,22 @@
   
   if (mask & (1<<EVERYDAY)) {
-    if (name) *(*name=buffer)='\0';
+    if(name)
+    {
+      if(holiday) 
+        sprintf(*name=buffer, "%s (%s)", Weekday[day], s);
+      else
+        sprintf(*name=buffer, "%s", Weekday[day]);
+    }
     return day;
   }
 
   if (mask & (1<<day)) {
-    if (name) sprintf (*name=buffer, "%s", Weekday[day]);
+    if(name)
+    {
+      if(holiday) 
+        sprintf(*name=buffer, "%s (%s)", Weekday[day], s);
+      else
+        sprintf(*name=buffer, "%s", Weekday[day]);
+    }
     return day;
   }
@@ -449,5 +464,5 @@
 
 
-  initHoliday("../holiday-at.dat", &msg);
+  initHoliday("../holiday-de.dat", &msg);
   printf ("%s\n", msg);
 




_______________________________________________
Rates4linux-devel mailing list
[EMAIL PROTECTED]
http://lists.SourceForge.net/mailman/listinfo/rates4linux-devel

Antwort per Email an