aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
Commit message (Expand)AuthorAgeFilesLines
* Remove UNICODE_LIBSDan Winship2001-04-273-2/+7
* Fixed Strftime so it uses the locale prefered way to display date/time.Duncan Mak2001-04-252-1/+7
* translate "Things to do" etc. and convert them to utf8. Changed some linkGediminas Paulauskas2001-04-222-13/+24
* Hot builddir != srcdir loving action.Ettore Perazzoli2001-04-194-1/+15
* Connect to the "changed" signal of the categories entry so that they willFederico Mena Quintero2001-04-184-9/+53
* the libical action stuff uses enums rather than strings to enumerate theJP Rosevear2001-04-182-15/+36
* Pull up fix from the branch:Ettore Perazzoli2001-04-182-0/+7
* Add EXTRA_GNOME_CFLAGS, for gal.Dan Winship2001-04-172-0/+5
* Create the ESearchBar thingy. (search_bar_query_changed_cb): Build theFederico Mena Quintero2001-04-165-18/+482
* Do this everywhere, also fixup CLEANFILESMichael Meeks2001-04-143-0/+10
* Fix the syntactic bogon here, and attempt to fix the logical bogon too.Dan Winship2001-04-142-2/+10
* New function to restart a query for the day view. (query_obj_updated_cb):Federico Mena Quintero2001-04-1311-284/+662
* prepend to both changes and change_ids when different and mark asJP Rosevear2001-04-122-2/+8
* Fix this to just send the data to the wombat instead of inserting itChristopher James Lahey2001-04-112-44/+26
* Display fixes, thanks to Kjartan for finding these.Gediminas Paulauskas2001-04-113-21/+26
* Here goes my additional simple include fixes.Gediminas Paulauskas2001-04-057-48/+46
* Fix headers. Same here. Same here. Same here. Same here. Same here. SameKjartan Maraas2001-04-0515-0/+78
* Plug leak.Federico Mena Quintero2001-04-0313-25/+942
* Plug leak.Federico Mena Quintero2001-04-032-61/+81
* Blessed by Ettore.Gediminas Paulauskas2001-04-023-39/+41
* Engine for live queries to calendars. A query object watches a CalBackendFederico Mena Quintero2001-03-3011-15/+1173
* A mockup of how meeting scheduling and editting should work. This design is b...Anna Dirks2001-03-291-0/+488
* fixed button placement to comply with gnome standards.Anna Marie Dirks2001-03-282-6/+11
* fixed spacing and label alignment to comply with gnome standards. AlsoAnna Marie Dirks2001-03-282-129/+105
* Replace includes of <gnome.h>, <bonobo.h> and <gtk/gtk.h> with the neededKjartan Maraas2001-03-2624-32/+90
* The model_rows_{inserted,deleted} signals changed names; deal with it.Federico Mena Quintero2001-03-258-58/+73
* Added ShowWeekView, ShowMonthView, ShowDay, ShowWorkWeek to the View menu.Miguel de Icaza2001-03-186-95/+97
* Moved functionality here from e_day_view_on_new_appointment. AllowsMiguel de Icaza2001-03-175-17/+139
* New function: inits the BonoboPersistFile server.Miguel de Icaza2001-03-173-1/+46
* Update arguments to e_canvas_item_grab_focus.Dan Winship2001-03-163-2/+8
* Removed .oafinfo files -- they are obsolete. Moved pixmaps fromGediminas Paulauskas2001-03-1513-309/+18
* create doc/devel/executive-summary/MakefileGediminas Paulauskas2001-03-152-0/+15
* PISOCK_INCLUDEDIR has become PISOCK_CFLAGS in gnome-pilot.m4 and removeJP Rosevear2001-03-138-758/+12
* Added a ShellComponent method to retrieve the selection for drag andEttore Perazzoli2001-03-084-9/+16
* Reorganize the menus to have entries always in a consistent fashion, asMiguel de Icaza2001-03-071-0/+19
* keep list of all Tasks folders so we can update the preference settingsDamon Chaplin2001-03-0519-386/+715
* install conduit iconsJP Rosevear2001-03-035-14/+30
* When when when when when when oh WHEN will I remember to add the files - Fede...Federico Mena Quintero2001-03-021-0/+180
* New function to set the EDateEdit's value when a row is selected in theFederico Mena Quintero2001-03-014-13/+74
* Create a little stand-alone library for the low-level alarm triggerFederico Mena Quintero2001-02-277-413/+31
* Switched to using our own refcounted structure for loaded clients.Federico Mena Quintero2001-02-2415-242/+187
* fixed generation of history recordsRodrigo Moya2001-02-242-2/+42
* IMAP subscriptions stuff.Aaron Weber2001-02-231-0/+1
* Added a `registered' field. (cal_factory_oaf_register): New function; nowFederico Mena Quintero2001-02-216-5/+149
* Oops, forgotten bits from last commitJP Rosevear2001-02-202-2/+2
* Remove PISOCK_LIBDIRJP Rosevear2001-02-203-2/+8
* close DB environment. Some compilation warnings removedRodrigo Moya2001-02-172-14/+33
* Ignore generated .oaf filesDan Winship2001-02-151-1/+4
* Added libmenus.la.Christopher James Lahey2001-02-147-9/+82
* call task_editor_focusJP Rosevear2001-02-142-1/+6
* Set toolbar new appointment icon (set_pixmap): load files rather thanJP Rosevear2001-02-147-222/+45
* implementedRodrigo Moya2001-02-142-38/+78
* Missing change log bitJP Rosevear2001-02-141-0/+2
* override value to string virtual method (calendar_model_value_to_string):JP Rosevear2001-02-143-6/+53
* cal_backend_db_update_object(): manage both updates and additions/addRodrigo Moya2001-02-132-194/+496
* Hook up the xml-i18n-tools + .oaf.in stuff. Marked strings forKjartan Maraas2001-02-135-13/+25
* added DB3 transactions supportRodrigo Moya2001-02-131-29/+145
* added the new DB3-based backend. This is just the beginning, there areRodrigo Moya2001-02-134-0/+1058
* Getting almost full and proper use of xml-i18n-tools.Gediminas Paulauskas2001-02-1128-351/+45
* Oops, remove old widgetJP Rosevear2001-02-094-80/+8
* fill in new classification stuff properly (get_widgets): load new class.JP Rosevear2001-02-099-1603/+1711
* Move the get_change code hereJP Rosevear2001-02-094-149/+191
* More 0.9 stuffJP Rosevear2001-02-092-0/+35
* Pull up from 0.9 branchJP Rosevear2001-02-0910-1380/+1214
* Fix the title and icon bug, and sort the UIDs into order beforeIain Holmes2001-02-082-1/+144
* Pulling stuff up from the branchJP Rosevear2001-02-079-36/+67
* If the categories string is empty, remove the property (get_period_list):JP Rosevear2001-02-072-11/+19
* Oops, that shouldn't have gone inJP Rosevear2001-02-072-11/+0
* Match new append_alarm signature (reminder_to_comp_object): only addJP Rosevear2001-02-074-22/+61
* Set the time and duration values in the trigger to null by defaultJP Rosevear2001-02-062-1/+10
* get the new reminder widgets (sync_entries): different callback dataJP Rosevear2001-02-0611-675/+776
* Fixed up these #includes.Christopher James Lahey2001-02-062-1/+7
* gnome_dialog_grab_focus() on the Yes button. Fixes bug #1242.Federico Mena Quintero2001-02-042-3/+10
* Mark a string for translation. Mark a bunch of strings for translation.Kjartan Maraas2001-01-303-20/+26
* Add a #include <sys/time.h> to work around libgnomeprint.h's lack ofEttore Perazzoli2001-01-302-0/+5
* <gnome.h> trimming to reduce compilation time. Likewise. Likewise.Federico Mena Quintero2001-01-3022-24/+38
* Added Slovak messagesStano Visnovsky2001-01-303-0/+6
* <gnome.h> trimming to reduce compilation time. Ditto. Ditto. Ditto. Ditto.Federico Mena Quintero2001-01-299-9/+32
* Fixed a crash that could happen when destroying a control without anyEttore Perazzoli2001-01-272-2/+9
* don't tag the calendar if no dates are shown.Damon Chaplin2001-01-252-6/+19
* make sure the status is set to "Completed". Fixes bug #1253.Damon Chaplin2001-01-243-10/+35
* libical import cleanupJP Rosevear2001-01-2412-48/+52
* properly ref the cal component when we use it, prevents double freeJP Rosevear2001-01-233-1/+10
* compile new stuffJP Rosevear2001-01-236-22/+105
* remove duplicate messageJP Rosevear2001-01-235-26/+30
* Remove alarm foo for nowJP Rosevear2001-01-233-27/+14
* Updated sl translationsAndraz Tori2001-01-221-0/+2
* Fix bug #1250; now we present a confirmation dialog before deleting theFederico Mena Quintero2001-01-222-7/+16
* Fix bug #1243. Turn on the Y expand/fill options for the date widgets inFederico Mena Quintero2001-01-213-29/+37
* Unset the GTK_CAN_FOCUS flag on the weekday picker. This will do until itFederico Mena Quintero2001-01-202-0/+8
* create a new cal component alarm (cal_component_add_alarm): add alarm toJP Rosevear2001-01-194-41/+191
* New files with a simple sequence to migrate the task components from theFederico Mena Quintero2001-01-1914-1426/+414
* gui/e-week-view*.c don't use the theme colors at all within the graphicalDamon Chaplin2001-01-1811-97/+324
* Check for open error and handledJP Rosevear2001-01-173-2/+14
* Fix transposition of sync db locationJP Rosevear2001-01-172-1/+6
* Ximianified email addresses and copyrights.Federico Mena Quintero2001-01-1794-1252/+1355
* fix debug output (print_remote): dittoJP Rosevear2001-01-172-13/+12
* accomadate tasks in their new dirJP Rosevear2001-01-163-3/+13
* '2001-01-15 JP Rosevear <jpr@ximian.com>JP Rosevear2001-01-163-24/+46
* changed the signature of the property_bag get/set functionsDietmar Maurer2001-01-154-4/+17
* changed the expansion values so that small text fields are 1.0, all theDamon Chaplin2001-01-152-6/+13
* pass -module and -avoid-version to conduit linkerJP Rosevear2001-01-143-0/+9
* moved #include <cal-client/cal-client.h> to the .h file.Damon Chaplin2001-01-1417-210/+836
* Add an ::asyncCopyFolder method to the ShellComponent interface. MoveEttore Perazzoli2001-01-133-2/+17
* Add translation strings.Miguel de Icaza2001-01-122-0/+21
* Add a PropertyControl interface so you can set the appointments on or offIain Holmes2001-01-102-91/+322
* Replaced e-meet-dialog.glade.h with e-meeting-dialog.glade inDave Camp2001-01-106-1/+70
* New interface for the alarm notification system.Federico Mena Quintero2001-01-1010-55/+443
* Mark tasks completedIain Holmes2001-01-092-2/+11
* Tasks work properlyIain Holmes2001-01-092-8/+6
* added new source files for the Tasks folders.Damon Chaplin2001-01-0816-33/+1066
* Neaten the HTML, add Tasks, and make the day change when the day changes :)Iain Holmes2001-01-072-6/+86
* get categories button (init_widgets): listen for button clickJP Rosevear2001-01-066-41/+198
* get categories button (init_widgets): listen for button clickJP Rosevear2001-01-068-99/+175
* Handle the case where the calendar view cannot be created; present aFederico Mena Quintero2001-01-046-3/+37
* If the component has no alarms, do not try to queue them.Federico Mena Quintero2001-01-034-4/+103
* Do not compose strings so that they can be localized correctly. Also,Federico Mena Quintero2001-01-0311-112/+178
* Unconditionally remove the client from the alarm notification system.Federico Mena Quintero2001-01-0311-773/+852
* New BonoboPropertyEventless stuffIain Holmes2000-12-272-2/+11
* Set draw background to FALSE. (e_day_view_reshape_long_event): ditto.Miguel de Icaza2000-12-252-0/+10
* Clean up translatable strings for translators, fixes bug 993JP Rosevear2000-12-232-6/+10
* Make sure the current month is shown when the dialog pops up.JP Rosevear2000-12-233-2/+16
* account for the case where there are no alarms, fixes crashJP Rosevear2000-12-232-2/+11
* New function to keep the ecal marked properly (create_ecal): move moreJP Rosevear2000-12-237-451/+40
* translationsJP Rosevear2000-12-238-270/+365
* Alarm trigger queueing for the GUI part.Federico Mena Quintero2000-12-2317-255/+1378
* removed conflict indicatorsIain Holmes2000-12-221-8/+0
* Working Calendar summary.Iain Holmes2000-12-229-146/+315
* Fix erroneous documentationJP Rosevear2000-12-215-59/+116
* Remove pointless commentJP Rosevear2000-12-203-6/+18
* Convert cal component strings to pilot character setJP Rosevear2000-12-203-27/+25
* Fix confusion in the way the range is expanded.Federico Mena Quintero2000-12-2011-369/+170
* Removed prototype for setup_alarm to fix a warning.Christopher James Lahey2000-12-202-0/+7
* Alarm instance generation support for the Wombat.Federico Mena Quintero2000-12-1913-368/+828
* Removed unused function, a relic from Gnomecal.Federico Mena Quintero2000-12-163-35/+5
* Fix the sign in the HAVE_TM_GMTOFF caseDan Winship2000-12-162-1/+6
* Removed getdate.y. We no longer use it; it is a relic from Gnomecal.Federico Mena Quintero2000-12-163-1005/+7
* Fixes bug #955.Federico Mena Quintero2000-12-1510-118/+180
* Reset the widths of the columns with pixbufs to the actual pixbufs' sizes;Federico Mena Quintero2000-12-152-2/+9
* #elsif -> #elifChris Toshok2000-12-151-1/+1
* #define this to 500, not nothing. Also, move this bit after the otherDan Winship2000-12-142-6/+12
* Even though icaltime_from_timet() now properly ignores the is_utc argumentFederico Mena Quintero2000-12-1411-44/+83
* #if 0ed cal_obj_date_only_compare_func. (cal_object_get_rdate_end):Christopher James Lahey2000-12-148-9/+50
* Revert federico's change for now because of libtool limitations withJP Rosevear2000-12-133-2/+10
* Use set_title_from_comp (save_todo_object): ditto (set_title_from_comp):JP Rosevear2000-12-132-10/+33
* Constify for new libical API. (set_text_list): Likewise.Federico Mena Quintero2000-12-136-39/+25
* More fixage - FedericoFederico Mena Quintero2000-12-126-15/+27
* This is to make things work with libical 0.21helix1 and later. WarningsFederico Mena Quintero2000-12-129-97/+81
* updated the tests on the start & end time just before calling theDamon Chaplin2000-12-123-35/+67
* added changed flags and added calls to a new functionDamon Chaplin2000-12-118-103/+534
* Free the strings we get from the editables.Federico Mena Quintero2000-12-093-18/+55
* Free the dates we get from the component.Federico Mena Quintero2000-12-092-0/+8
* Attach signal handlers to the e_scrolled_table's etable rather than to theJP Rosevear2000-12-092-4/+19
* Got rid of code referencing the ETableScrolled proxy functions.Christopher James Lahey2000-12-082-3/+8
* Ugly hack for syncing until pcs can be altered (longer term)JP Rosevear2000-12-083-3/+26
* add EXTRA_GNOME_LIBS.Chris Toshok2000-12-082-0/+6
* Create an empty cal component if the object has been deleted.JP Rosevear2000-12-083-3/+16
* Unref the component from the objects list; it got referenced as many timesFederico Mena Quintero2000-12-082-0/+7
* Confirm before deleting the event.Federico Mena Quintero2000-12-072-8/+17
* unref the pixbuf when finished with it62000-12-072-1/+6
* Fixes bug #920.Federico Mena Quintero2000-12-0712-63/+205
* kill (Cal_get_changes): return the corba sequence directlyJP Rosevear2000-12-076-105/+66
* Update so as not to conflict with calendar (next_changed_item): update toJP Rosevear2000-12-0715-451/+388
* Fix my build stupidty READ THE MACROJP Rosevear2000-12-063-0/+8
* Initialize max_large_digit_width to 0 to prevent crazy sizing issues.JP Rosevear2000-12-052-1/+6
* Remove mysterious #include inserted by mmeeks to break the build.Dan Winship2000-12-052-1/+5
* return NULL if we can't create a view.Michael Meeks2000-12-0516-327/+56
* Fixes bug #918.Federico Mena Quintero2000-12-034-0/+120
* Removed debugging message. (control_factory_init): Ditto.Federico Mena Quintero2000-12-024-14/+10
* New function to generate a title and convert it from UTF8 before settingFederico Mena Quintero2000-12-022-10/+32
* Debug message cleanups (comp_from_remote_record): Properly set the icalJP Rosevear2000-12-013-26/+53
* fixed a bug that caused the calendar to segfault when the iTip control wasJesse Pavel2000-12-012-0/+8
* Empty by_day entries are no longer indicated by ICAL_RECURRENCE_ARRAY_MAXJP Rosevear2000-12-012-4/+61
* Debug message cleanups (get_ical_day): Fix off-by-one error which affectedJP Rosevear2000-12-012-36/+43
* removed #ifdef ENABLE_NLS/#endif on Miguel's request.Gediminas Paulauskas2000-11-301-2/+0
* Upgrade of the alarm framework. We now access alarms by a uniqueFederico Mena Quintero2000-11-303-37/+240
* Return a struct rather than a pointer to a struct (compare):JP Rosevear2000-11-293-74/+39
* Reformatted the table spec to make it easier to read.Federico Mena Quintero2000-11-294-32/+74
* finished 12-hour support and tried to tidy up & comment the drawing codeDamon Chaplin2000-11-299-358/+719
* Removed debugging shizz.Jesse Pavel2000-11-292-12/+5
* *gui/calendar-model.c: added a preliminary change to have AssignedJesse Pavel2000-11-282-3/+18
* Remove "complete" fieldJP Rosevear2000-11-283-13/+12
* == instead of =.Damon Chaplin2000-11-272-1/+5
* added more support for config settings.Damon Chaplin2000-11-2710-199/+892
* use a gint for day rather than a guint since we now support -ve days. AlsoDamon Chaplin2000-11-272-56/+128
* use config settings.Damon Chaplin2000-11-272-18/+11
* Unref the ETable extras.Federico Mena Quintero2000-11-252-0/+7
* DOH, fixed reversed test for the presence of the icalcomp's parent. ThisFederico Mena Quintero2000-11-253-1/+10
* Use the new libical external iterators (icalcomponent_begin_component()Federico Mena Quintero2000-11-2511-1377/+45
* Squeek - FedericoFederico Mena Quintero2000-11-221-1/+2
* Remove the check because it makes it look like the task is alreadyFederico Mena Quintero2000-11-226-55/+101
* The icon column is not editable!Federico Mena Quintero2000-11-2210-1323/+22
* Fixed size allocation bug.Jesse Pavel2000-11-223-54/+21
* added cancellation code to our program; people can cancel meetings,Jesse Pavel2000-11-173-21/+131
* #!/usr/bin/perl -pi.bakMichael Meeks2000-11-169-14/+14
* Fixed REPLY code.Jesse Pavel2000-11-152-0/+5
* I created this file to store some commonly used enumeration to stringJesse Pavel2000-11-146-48/+231
* OK, bugzilla bug #829 is fixed and that does not redeem me from extremeFederico Mena Quintero2000-11-133-2/+10
* Misspelled "occurrences". (fill_recurrence_widgets): Sensitize the "CustomFederico Mena Quintero2000-11-133-84/+149
* New function; re-tag the calendar when its date range changes.Federico Mena Quintero2000-11-132-13/+112
* Block the signals as appropriate. (fill_ending_date): Ditto.Federico Mena Quintero2000-11-132-3/+77
* Add the stupid files, yo - FedericoFederico Mena Quintero2000-11-132-0/+188
* Clear the rdate and exrule lists from the component if we are setting aFederico Mena Quintero2000-11-1311-249/+329
* Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*" to sync upMatt Bissiri2000-11-116-10/+16
* A very, long, very tedious IDL API rename and re-scoping;Michael Meeks2000-11-1114-545/+539
* Inc the iterator before finding the next changed item.JP Rosevear2000-11-113-2/+11
* I wrote the code so that recipients of meeting requests can replyJesse Pavel2000-11-102-8/+185
* fixed a bug that would make the calendar segfault if the meeting editorJesse Pavel2000-11-102-6/+14
* updated the GUI to allow the user to add PUBLISHed events to his calendar,Jesse Pavel2000-11-093-27/+125
* These changes fix bugzilla bugs #874 and #875.Federico Mena Quintero2000-11-099-135/+263
* Adjust the valid range of the month index spin button depending on theFederico Mena Quintero2000-11-092-0/+76
* *gui/e-itip-control.c, gui/e-itip-control.glade: changed the GUI,Jesse Pavel2000-11-083-108/+143
* Added a "changed" signal to notify of changes to the set of selected days.Federico Mena Quintero2000-11-083-1/+33
* *gui/e-itip-control.c, gui/e-itip-control.glade: changed to GUI toJesse Pavel2000-11-075-57/+256
* Removed the old recurrence page. Wheeeeeeeeee!Federico Mena Quintero2000-11-076-473/+342
* added some checks for the type of an incoming iCal component beforeJesse Pavel2000-11-073-6/+38
* Removed unnecessary .cvsignore files.Christopher James Lahey2000-11-063-4/+5
* Block signals from the toggle button. (date_changed_cb): MergedFederico Mena Quintero2000-11-052-86/+55
* Clean the idl-generated sources properly. Likewise.Federico Mena Quintero2000-11-045-33/+37
* The big api rename ...Michael Meeks2000-11-024-9/+378
* Makefile.am: renamed GNOMELOCALEDIR to EVOLUTION_LOCALEDIRGediminas Paulauskas2000-11-021-1/+1
* *** empty log message ***Gediminas Paulauskas2000-11-011-0/+2
* modified or added a bunch of .cvsignore to ignore generated files, whichGediminas Paulauskas2000-11-013-1/+6
* calendar: made all gui show localizedGediminas Paulauskas2000-11-012-0/+8
* Hmmm. SHRT_MAX changed to ICAL_RECURRENCE_ARRAY_MAX in libical. Deal withFederico Mena Quintero2000-11-012-6/+21
* this is a generated file. remove itDan Winship2000-11-011-369/+0
* Let the warning make sense (compute_pid): removeJP Rosevear2000-11-015-159/+235
* New function. We split it from the radio callback so that we can call itFederico Mena Quintero2000-11-012-7/+28
* Removed the geometry and hidden arguments. This code is ancient.Federico Mena Quintero2000-10-314-54/+20
* Do not take in an extra data pointer. (summary_changed_cb): Use a singleFederico Mena Quintero2000-10-312-25/+45
* New function. (general_summary_changed_cb): Sync the general summary toFederico Mena Quintero2000-10-284-1331/+522
* Connect to the recurrence ending menu. (recur_ending_selection_done_cb):Federico Mena Quintero2000-10-284-330/+256
* fixed problems in which I allocated CORBAJesse Pavel2000-10-282-0/+7
* Check boundary case of fast sync72000-10-283-2/+9
* Remove invalid test. (local_record_from_comp): If the event is all day,72000-10-273-6/+20
* Get archive field while parsing (map_write_foreach): Write out archiveJP Rosevear2000-10-273-3/+8
* SHUT THE FUCK UP, DONNIE. DUDE, THEY PEED YOUR FUCKING RUG.Federico Mena Quintero2000-10-275-18/+4
* This is the new recurrence page, partially finished. I just want it on CVSFederico Mena Quintero2000-10-278-255/+1478
* unsigned chars to isalphaMichael Meeks2000-10-274-4/+9
* Small fixes.Jesse Pavel2000-10-273-25/+60
* updating some pt_BR <ricardo@conectiva.com.br>Jorge Godoy2000-10-271-0/+2
* User bonobo_control_get_remote_uid_container, not the old version52000-10-261-0/+1
* Fix ChangeLog bustage - FedericoFederico Mena Quintero2000-10-261-143/+145
* removed the Evolution-Composer generated files, due to a tip on how we doJesse Pavel2000-10-264-98/+10
* Removed generated files.Jesse Pavel2000-10-265-1868/+9
* added this from the composer IDL sourcesJesse Pavel2000-10-268-6/+2440
* I've added code to interact with the mailer's CORBA interfaces, thoughJesse Pavel2000-10-252-15/+121
* Lookup a pid by uid. (e_pilot_map_lookup_uid): Lookup a uid by pid. NowJP Rosevear2000-10-253-36/+21
* AM_GNOME_GETTEXT doesn't use $(datadir)/locale as the locale dir. (ItDan Winship2000-10-246-5/+13
* Use new libeconduit calls and abstractionJP Rosevear2000-10-245-57/+37