diff options
author | Steve Murphy <murf@e-tools.com> | 1999-04-04 07:57:14 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1999-04-04 07:57:14 +0800 |
commit | 45fdeb790bdedab65bb864c32a9f7a483c27d27e (patch) | |
tree | 6ac9d8bbaa839a84f649e239f2fce922b1d92def /calendar/gui | |
parent | 1217f279ad9a5c79d61642a49eba38a552c1ec52 (diff) | |
download | gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar.gz gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar.bz2 gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar.lz gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar.xz gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.tar.zst gsoc2013-evolution-45fdeb790bdedab65bb864c32a9f7a483c27d27e.zip |
Added this routine so Monthly recurrences use the weekday field as a
1999-04-01 Steve Murphy <murf@e-tools.com>
* calobj.c (weekdaynum): Added this routine so Monthly recurrences
use the weekday field as a simple integer for a single weekday.
* calobj.c (load_recur_monthly_pos): Call weekdaynum instead of
weekdaylist. The interface only lets the user input a single value
anyway.
* calobj.c (ical_object_to_vobject): instead of code to output day
names from a bit array, use instead the value as an int and output
a single dayname.
* calobj.c (ical_object_generate_events): first_week_day gets the
day int instead of the first entry in the bit field. I inserted a
fair chunk of code to avoid calling generate if the day is out of
range for a month. It may be unneccessary, because mktime will
turn the extra days into a valid date the next month. But not all
mktimes are equal, I fear.
* eventedit.c (ee_store_recur_rule_to_ical): For case 3,
(Monthly), I added code to set the interval slot of the recur
struct; without this value, selecting a monthly recursing, by
date, would lead to an infinite loop broken only by a failure to
alloc more memory. Also, in the "by position" case, both
u.month_pos and u.month_day were being assigned values. This is a
mistake, as they are both part of an union, and the same
thing. The weekday field should get the recur_rr_month_weekday
value.
* eventedit.c (ee_rp_init_rule): set default day from the weekday
field instead of the u.month_day field, which is really the
month_pos value.
* gnome-cal.c (gnome_calendar_tag_calendar): Month days start with
1, not 0; thus, setting tm.tm_mday = 0, and then calling mktime
will generate a time corresponding to the end of the previous
month, which may have a mday anywhere from 28 to 31. The end time
just adds 1 to the month, so your end time may not cover the last
few days of this month, depending on what the biggest mday of last
month was. I changed it so tm_mday is set to 1 instead.
1999-03-30 Federico Mena Quintero <federico@nuclecu.unam.mx>
svn path=/trunk/; revision=792
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/eventedit.c | 4 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/calendar/gui/eventedit.c b/calendar/gui/eventedit.c index abd7670e8a..e97e39e8a2 100644 --- a/calendar/gui/eventedit.c +++ b/calendar/gui/eventedit.c @@ -580,7 +580,7 @@ ee_store_recur_rule_to_ical (EventEditor *ee) ical->recur->u.month_pos = option_menu_active_number (ee->recur_rr_month_day); - ical->recur->u.month_day = + ical->recur->weekday = option_menu_active_number (ee->recur_rr_month_weekday); ical->recur->interval = gtk_spin_button_get_value_as_int ( @@ -1014,7 +1014,7 @@ ee_rp_init_rule (EventEditor *ee) page = 3; month_period = interval; def_pos = ee->ical->recur->u.month_pos; - default_day = ee->ical->recur->u.month_day; + default_day = ee->ical->recur->weekday; /* you can't use u.month_pos and u.month_day-- it's a union... */ break; case RECUR_MONTHLY_BY_DAY: diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index f589d0fe28..89d6998e3e 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -442,7 +442,8 @@ gnome_calendar_tag_calendar (GnomeCalendar *cal, GtkCalendar *gtk_cal) tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; - tm.tm_mday = 0; + tm.tm_mday = 1; /* setting this to zero is a no-no; it will set mktime back to the end of the + previous month, which may be 28,29,30; this may chop some days from the calendar */ tm.tm_mon = gtk_cal->month; tm.tm_year = gtk_cal->year - 1900; tm.tm_isdst= -1; |