12012-01-20  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
2
3	* GCSSpecialQueries.m (-createSessionsFolderWithName:): declare
4	c_id as primary key to make sure it's indexed.
5
62011-12-08  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
7
8	* GCSFolder.m (-releaseChannel:): perform the debug logging BEFORE
9	the channel is released, to avoid a crash.
10
11	* GCSFolderManager.m (-releaseChannel:): perform the debug logging BEFORE
12	the channel is released, to avoid a crash.
13
142011-11-14  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
15
16	* GCSFolder.m
17	(_generateUpdateStatementForRow:adaptor:fields:tableName:whereColumn:isEqualTo:andColumn:isEqualTo:):
18	same as below.
19	(_attributeForColumn:): new helper method that automatically
20	constructs an EOAttribute for a colum name passed as parameter.
21	(_formatRowValue:withAdaptor:andAttribute:): now invokes
22	-[EOAdaptor formatValue:forAttribute:] to avoid a call from the caller.
23
242011-10-21  Francis Lachapelle  <flachapelle@inverse.ca>
25
26	* GCSFolder.m
27	(_generateUpdateStatementForRow:adaptor:fields:tableName:whereColumn:isEqualTo:andColumn:isEqualTo:):
28	this method now uses the formatValue:forAttribute: method from the
29	database adaptor to benefit from the proper formatting depending
30	on the column type.
31	(-initWithPath:primaryKey:folderTypeName:folderType:location:quickLocation:aclLocation:folderManager:):
32	load the content field names from the GCSFolderType object.
33
34	* GCSFolderType.m (-initWithPropertyList:): the content table
35	structure is now part of the plist (.ocs) file.
36
372011-10-03  Francis Lachapelle  <flachapelle@inverse.ca>
38
39	* GCSFolder.m (-updateQuickFields:whereColumn:isEqualTo:): new
40	method to update some fields of the quick table matching the
41	single specified condition.
42	(-_quickTableEntity): the method was not returning all the fields.
43
442011-05-30  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
45
46	* GCSFolder.m (-lastModificationDate): new method that returns the
47	last modification date based on the higher value of the
48	"c_lastmodified" column.
49
502010-12-30  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
51
52	* EOQualifier+GCS.m (_appendNotQualifier:toString:): new method
53	for handling the EONotQualifier.
54
552010-12-10  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
56
57	* EOQualifier+GCS.m (_appendKeyValueQualifier:toString:): fixed
58	evaluation to handle the "EOQualifierOperatorNotEqual" operator.
59	Fixed code to consider "nil" values as another case for "NULL".
60
612010-08-19  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
62
63	* GCSSpecialQueries.m (-createEMailAlarmsFolderWithName:): new sql
64	helper methods
65	(emailAlarmsAttributeTypes:): new helper method that returns the
66	types pertaining to the adaptor.
67
68	* GCSFolderManager.m (-alarmsFolder): new helper method.
69
70	* GCSAlarmsFolder.[hm]: new class module for handling alarm
71	references.
72
73	* GCSFolder.m (-_channelManager): made method private.
74	(-folderManager): removed method.
75
762010-06-11  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
77
78	* GCSFolderManager.m
79	(_reallyCreateFolderWithName:andFolderType:andType:andChannel:atPath:):
80	we now make use of the new classes described below.
81
82	* GCSSpecialQueries.m (-[EOAdaptorChannel specialQueries]): new
83	category method that returns the proper GCSSpecialQueries instance
84	based on the channel class.
85
86	* GCSSpecialQueries.[hm]: new module providing the
87	"GCSSpecialQueries" cluster class that implements
88	SQL queries that are specific to each SQL implementation.
89
902010-04-20  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
91
92	* EOAdaptorChannel+GCS.m (-tableExistsWithName:): cleaned method
93	up.
94
952009-11-30  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
96
97	* GCSChannelManager.m (-databaseKeyForURL): removed obsolete
98	method, replaced with the new one below.
99	(-acquireOpenChannelForURL:): we keep the last failure timestamp
100	into account and prevent further attempts before 5 seconds.
101
102	* NSURL+GCS.m (-gcsURLId): new method that returns a unique
103	identifier for database connections.
104
1052009-11-19  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
106
107	* GCSChannelManager.m (-releaseChannel:immediately:): new method
108	that enables the immediate release of channels, for handling
109	connection errors.
110
1112009-10-13  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
112
113	* GCSFolder.m (_tableRequirementForFields:andOrQualifier:): fixed
114	a double release of "allFields" occuring in the rare case where
115	the amount of fields would be 0.
116
1172009-09-10  Cyril Robert <crobert@inverse.ca>
118
119	* GCSFolder.m (deleteAllContent): New method to delete everything in the
120	folder (use with caution).
121
1222009-08-14  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
123
124	* GCSFolder.m (-deleteAclWithSpecification:): enable the deletion
125	of the complete list if a nil specification is passed as
126	parameter, previously we would ignore such as call.
127
1282009-06-03  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
129
130	* GCSFolderManager.m: replaced invocations of NSLog with
131	debugWithFormat:. This avoids polluting the log with information
132	that really pertains to debugging.
133
1342009-06-02  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
135
136	* GCSFolder.m ([GCSFolder -recordsCountByExcludingDeleted:]): new
137	method that returns the amount of records in a GCS folder.
138
1392009-03-24  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
140
141	* GCSFolderType.m ([GCSFolderType +folderTypeWithName:_typeName]):
142	autorelease the returned GCSFolderType.
143	([GCSFolderType -initWithFolderTypeName:_path]): removed useless
144	method.
145
1462009-03-20  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
147
148	* GCSChannelManager.m ([GCSChannelManager
149	-acquireOpenChannelForURL:_url]): if the channel is not open,
150	assign nil to it so that the calling method doesn't consider it as
151	valid. This fixes a crash because the channel, already
152	autoreleased, would be later released again by the caller (through
153	releaseChannel:).
154	([GCSChannelManager -releaseChannel:_channel]): ensure the channel
155	is closed if we need to release it.
156
1572009-03-17  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
158
159	* GCSFolder.m ([GCSFolder
160	-writeContent:_contenttoName:_namebaseVersion:_baseVersion]):
161	reorganized method to centralize error management, enabling us to
162	remove the "CHECKERROR" macro. The method was also not closing
163	channels whenever an error occured.
164
1652008-09-22  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
166
167	* GCSFolder.m ([GCSFolder
168	-fetchFields:fieldsfetchSpecification:specignoreDeleted:ignoreDeleted]):
169	made method public.
170
1712008-08-09  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
172
173	* GCSFolder.m ([GCSFolder
174	-writeContent:_contenttoName:_namebaseVersion:_baseVersion]): the
175	store table has now a "c_version" field in its description entity.
176
1772008-06-30  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
178
179	* GCSFolderManager.m ([GCSFolderManager
180	-createFolderOfType:_typewithName:_nameatPath:_path]): wrap the
181	creation queries in a transaction, to ensure the creation of
182	tables is atomic.
183
184	* GCSFolder.m ([GCSFolder -recordOfEntryWithName:name])
185	([GCSFolder -writeContent:_contenttoName:_namebaseVersion:_baseVersion])
186	([GCSFolder -fetchFields:fieldsfetchSpecification:spec]): don't
187	use the "as" keyword when specifying multiple tables, so that
188	Oracle doesn't choke on the queries.
189
190	* EOAdaptorChannel+GCS.m ([EOAdaptorChannel
191	-dropTables:tableNames]): new method that drops a list of tables.
192
1932008-06-23  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
194
195	* GCSFolderManager.m ([GCSFolderManager
196	-createFolderOfType:withName:atPath:]): escape the display names.
197
1982008-06-13  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
199
200	* GCSFolder.m: modified the fetchFields* methods so that any field
201	from the quick and/or content table will generate an appropriate
202	query. If both tables are required, a joined query is generated.
203
204	* GCSFolderType.m ([GCSFolderType -fields]): new method that
205	returns the fields used by the quick tables.
206
2072008-01-21  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
208
209	* GCSFolderManager.m ([GCSFolderManager
210	-baseTableNameWithUID:_uid]): the id was too long for the quick
211	tables, we reduce the length of the increment string to 3
212	characters instead of 8.
213
2142008-01-16  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
215
216	* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
217	generate an id that is guaranteed to be unique in more than
218	1000000 cases (from unit testing).
219
220	* GCSFolder.m: fetch the content, version and dates at the same
221	time per record, to avoid multiple queries.
222
2232007-12-12  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
224
225	* GCSFolder.m ([GCSFolder -creationDateOfEntryWithName:]): new
226	method that returns the creation date of the specified entry.
227	([GCSFolder -lastModificationOfEntryWithName:]): same as above for
228	the last modification time.
229
2302007-11-27  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
231
232	* GCSFolder.m ([GCSFolder -versionOfContentWithName:], [GCSFolder
233	-fetchContentWithName:]): ignore records marked as deleted.
234	([GCSFolder -deletionOfContentWithName:]): don't.
235
2362007-11-04  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
237
238	* GCSFolder.m ([GCSFolder -writeContent:toName:baseVersion:]): the
239	test for the improvement below was wrong, we want to test the
240	value of the column ('0' or null) instead of whether it is null or
241	filled.
242
2432007-10-29  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
244
245	* GCSFolder.m ([GCSFolder -writeContent:toName:baseVersion:]):
246	purge the record if previously marked as deleted.
247
2482007-10-24  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
249
250	* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
251	prefix the table names with "sogo" to avoid problems with
252	digits-only identifiers.
253
2542007-10-19  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
255
256	* GCSFolderManager.m ([GCSFolderManager -baseTableNameWithUID:]):
257	cast the time interval to an unsigned int.
258
2592007-08-29  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
260
261	* EOQualifier+GCS.m: rewrote comparison code, now uses UPPER instead of
262	  the PostgreSQL specific ILIKE. Fixes OGo bug #1906 (v4.7.49)
263
2642007-07-20  Helge Hess  <helge.hess@opengroupware.org>
265
266	* GCSFolderManager.m: added 'some' rollback after an error (v4.7.48)
267
2682007-07-20  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
269
270	* GCSFolderManager.m: fixed a bug in last check, DROP TABLE is allowed
271	  to fail in the given context (bug #1883) (v4.7.47)
272
2732007-07-11  Helge Hess  <helge.hess@opengroupware.org>
274
275	* GCSFolderManager.m: added some error checking, plenty of open ends
276	  pending (eg folder creation not wrapped in a transaction) (v4.7.46)
277
2782007-06-29  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
279
280	* GCSFolderManager.m: fixed folder creation to populate empty path
281	  fields with NULLs (OGo bug #1883) (v4.7.45)
282
2832007-04-25  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
284
285	* GCSFolder.[hm]: added methods to delete ACL records (OGo bug #1866)
286	  (v4.7.44)
287
2882007-04-22  Helge Hess  <helge.hess@opengroupware.org>
289
290	* GCSChannelManager.m: improved error log (v4.7.43)
291
2922007-04-17  Helge Hess  <helge.hess@opengroupware.org>
293
294	* fixed a few GNUstep compilation warnings (v4.7.42)
295
2962007-03-21  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
297
298	* GCSFolder.[hm], GCSFolderManager.[hm]: added ability to create and
299	  delete GCS folders programmatically (OGo bug #1850) (v4.7.41)
300
3012007-02-12  Helge Hess  <helge.hess@opengroupware.org>
302
303	* GCSFolder.m: fixed a gnustep-base compilation warning (v4.7.40)
304
3052007-02-09  Helge Hess  <helge.hess@opengroupware.org>
306
307	* use -errorWithFormat:, fixed a few logging crashes (incomplete format
308	  strings) (v4.5.39)
309
3102007-02-08  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
311
312	* GCSFolder.m: added a gnustep-base hack to properly format bool
313	  numbers for SQL. Base returns YES or NO in -stringValue while
314	  libFoundation/NGExt returns 0 or 1 (v4.5.39)
315
3162007-01-15  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
317
318	* GCSFolder.[hm], GCSFolderManager.m: added support for content table
319	  ACLs (v4.5.38)
320
3212006-08-31  Wolfgang Sourdeau  <WSourdeau@Inverse.CA>
322
323	* EOQualifier+GCS.m: added support for OR qualifiers and for case
324	  insensitive-like qualifiers on PostgreSQL (v4.5.37)
325
3262006-07-04  Helge Hess  <helge.hess@opengroupware.org>
327
328	* use %p for pointer formats, fixed gcc 4.1 warnings (v4.5.36)
329
3302005-08-16  Helge Hess  <helge.hess@opengroupware.org>
331
332	* GNUmakefile, GNUmakefile.preamble: added OSX framework compilation
333	  (v4.5.35)
334
3352005-07-23  Sebastian Reitenbach  <reitenbach@rapideye.de>
336
337	* GNUmakefile.preamble: added OpenBSD linking flags (v4.5.34)
338
3392005-07-13  Helge Hess  <helge.hess@opengroupware.org>
340
341	* GCSFolder.h: added -versionOfContentWithName: method to header file
342	  (v4.5.33)
343
344	* GCSFolder.m: return a proper exception if the extractor was unable to
345	  create a quickrow for a given content object (v4.5.32)
346
347	* GCSFolder.m: added -writeContent:toName:baseVersion: to support
348	  consistent update operations (eg using etags), properly increase
349	  content object version on update operations (v4.5.31)
350
351	* GCSFolderManager.m, GCSFolder.m: changed not to use EOF
352	  attribute-name 'beautification', eg 'c_name' will stay 'c_name'
353	  instead of being transformed into 'cName' (v4.5.30)
354
3552005-07-11  Helge Hess  <helge.hess@opengroupware.org>
356
357	* GCSFolderManager.m: added automatic discovery of folder types by
358	  scanning for .ocs files (v4.5.29)
359
3602005-04-25  Helge Hess  <helge.hess@opengroupware.org>
361
362	* fixed gcc 4.0 warnings (v4.5.28)
363
3642005-03-21  Helge Hess  <helge.hess@skyrix.com>
365
366	* GNUmakefile: added FHS support (v4.5.27)
367
3682005-03-20  Helge Hess  <helge.hess@opengroupware.org>
369
370	* moved OGoContentStore as GDLContentStore into sope-gdl1, removed
371	  dependencies on NGiCal and removed some SOGo specific things
372	  (v4.5.26)
373
3742005-03-07  Helge Hess  <helge.hess@opengroupware.org>
375
376	* appointment.ocs: added missing 'partstates' field (v0.9.25)
377
3782005-03-04  Helge Hess  <helge.hess@opengroupware.org>
379
380	* v0.9.24
381
382	* ocs_gensql.m: started tool to create SQL CREATE from ocs model file
383
384	* OCSFolderType.m: small change to the factory API, changed to use
385	  NGResourceLocator
386
3872005-03-03  Helge Hess  <helge.hess@opengroupware.org>
388
389	* OCSFolderManager.m: fixed a bug in subfolder listing (v0.9.23)
390
3912005-03-01  Marcus Mueller  <znek@mulle-kybernetik.com>
392
393	* v0.9.22
394
395	* appointment.ocs: added 'cycleenddate' and 'cycleinfo' to address
396	  previous performance issues
397
398	* OCSiCalFieldExtractor.m: set 'cycleenddate' and 'cycleinfo' for
399	  recurrent events. Reverted setting of 'enddate' to the previous
400	  behaviour since 'cycleenddate' is dedicated to the task now
401
402	* iCalRepeatableEntityObject+OCS.[hm]: new category used by the
403	  OCSiCalFieldExtractor to extract cycleInfo in an appropriate format
404
405	* sql/generate-folderinfo-sql-for-users.sh,
406	  sql/foldertablecreate-helge-privcal.psql,
407	  sql/foldertablecreate-helge-privcal.sqlite,
408	  sql/generate-folderinfo-sql-for-users-sqlite.sh: adjusted to new
409	  schema
410
4112005-03-01  Helge Hess  <helge.hess@opengroupware.org>
412
413	* OCSFolder.m: added support for storing content and quick info in
414	  the same table (untested) (v0.9.21)
415
4162005-02-21  Helge Hess  <helge.hess@opengroupware.org>
417
418	* v0.9.20
419
420	* OCSFolderManager.m: removed quoting of SQL table and column names
421	  (breaks with SQLite and isn't necessary for PG), fixed URL pooling
422	  for SQLite
423
424	* NSURL+OCS.m: use tablename for last path component
425
4262005-02-12  Marcus Mueller  <znek@mulle-kybernetik.com>
427
428	* OCSiCalFieldExtractor.m: uses new iCalEvent API to determine correct
429	  'enddate' for recurrent events. This is an optimization which can
430	  save quite some time for complex rules. (v0.9.19)
431
4322004-12-17  Marcus Mueller  <znek@mulle-kybernetik.com>
433
434	* v0.9.18
435
436	* OCSiCalFieldExtractor.m: extract participants' state
437
438	* sql/generate-folderinfo-sql-for-user.sh, sql/appointment-create.psql,
439	  sql/foldertablecreate-helge-privcal.psql: updated with new schema.
440
4412004-12-15  Marcus Mueller  <znek@mulle-kybernetik.com>
442
443	* OCSiCalFieldExtractor.m: partmails + cn's are concatenated by '\n'
444	  now - this directly eliminates any ambiguities. Also, instead of
445	  using 'email' for partmails and orgmail, the extractor uses the
446	  'rfc822Email' value which strips away any preceeding 'mailto:'
447	  prefix, compacting the representation and speeding up comparison.
448	  Also, "iscycle", "isallday" and "isopaque" are now provided by
449	  NGiCal and thus always extracted (v0.9.17)
450
4512004-12-13  Marcus Mueller  <znek@mulle-kybernetik.com>
452
453	* sql/generate-folderinfo-sql-for-user.sh: fixed critical error in
454	  Contacts folder_info, type was 'Appointment' but MUST be 'Contact'
455	  (v0.9.16)
456
4572004-12-10  Marcus Mueller  <znek@mulle-kybernetik.com>
458
459	* sql: updated all generation scripts to the latest version (v0.9.15)
460
4612004-12-09  Marcus Mueller  <znek@mulle-kybernetik.com>
462
463	* v0.9.14
464
465	* appointment.ocs: added "ispublic", "isopaque", "status" and
466	  "orgmail".
467
468	* OCSiCalFieldExtractor.m: updated to extract new fields (see above)
469
470	* sql: updated generate-folderinfo-sql-for-users.sh
471
4722004-10-19  Helge Hess  <helge.hess@opengroupware.org>
473
474	* OCSFolder.m: added new method -fetchContentsOfAllFiles method which
475	  fetches the contents of all files stored in the folder (required for
476	  iCal generation, such bulk fetches should be avoided if possible!)
477	  (v0.9.13)
478
4792004-10-15  Marcus Mueller  <znek@mulle-kybernetik.com>
480
481	* OCSStringFormatter.[hm]: minor cleanup (v0.9.12)
482
483	* v0.9.11
484
485	* OCSStringFormatter.[hm]: new class to format strings according to
486	  Database requirements (escaping etc.).
487
488	* OCSFolder.m: uses new OCSStringFormatter now.
489
4902004-09-25  Helge Hess  <helge.hess@opengroupware.org>
491
492	* fixed compilation on MacOSX (v0.9.10)
493
4942004-09-10  Helge Hess  <helge.hess@skyrix.com>
495
496	* v0.9.9
497
498	* fixed some gcc warnings
499
500	* GNUmakefile.preamble: added pathes to compile against an FHS SOPE
501
502	* OCSiCalFieldExtractor.m: fixed type of sequence iCalEvent field
503
5042004-09-01  Marcus Mueller  <znek@mulle-kybernetik.com>
505
506	* GNUmakefile: install type models into $(GNUSTEP_USER_ROOT) (v0.9.8)
507
5082004-08-27  Helge Hess  <helge.hess@skyrix.com>
509
510	* v0.9.7
511
512	* OCSChannelManager.m: use PostgreSQL as adaptor, not PostgreSQL72
513
514	* OCSFolder.m: added support for doing folder sorting in SQL
515
5162004-08-26  Helge Hess  <helge.hess@skyrix.com>
517
518	* v0.9.6
519
520	* added OCSContactFieldExtractor
521
522	* sql: added sample contact folder create scripts
523
524	* OCSFolderType.m: read extractor class name from type model
525
526	* OCSFolderManager.m: added contact type model per default (v0.9.5)
527
5282004-08-25  Helge Hess  <helge.hess@skyrix.com>
529
530	* GNUmakefile: automatically install OCSTypeModels (v0.9.4)
531
5322004-08-15  Helge Hess  <helge.hess@skyrix.com>
533
534	* OCSFolder.m: added content deletion (v0.9.3)
535
536	* OCSFolder.m: added sanity check to store method (v0.9.2)
537
5382004-08-14  Helge Hess  <helge.hess@skyrix.com>
539
540	* v0.9.1
541
542	* OCSiCalFieldExtractor.m: extract new quick fields: location,
543	  partmails, sequence (does not yet handle allday and cycle due to
544	  NGiCal restrictions)
545
546	* appointment.ocs, sql/foldertablecreate-helge-privcal.psql,
547	  sql/testapt-agenor-helge-privcal.psql, sql/appointment-create.psql:
548	  added quick fields: isallday, iscycle, location, partmails, sequence
549
550	* started ocs_recreatequick tool intended for recreating a quick table
551	  based on the content table of a folder
552
5532004-07-20  Helge Hess  <helge.hess@opengroupware.org>
554
555	* OCSChannelManager.m: fixed a bug in the channel GC which resulted
556	  in an exception during the GC NSTimer
557
5582004-07-16  Helge Hess  <helge.hess@skyrix.com>
559
560	* improved error handling in various files
561
5622004-07-02  Helge Hess  <helge.hess@opengroupware.org>
563
564	* OCSChannelManager.m: added garbage collector for channel pools
565
5662004-06-30  Helge Hess  <helge.hess@opengroupware.org>
567
568	* OCSChannelManager.m: implemented pooling
569
570	* OCSFolder.m: added quick fetches
571
572	* GNUmakefile.preamble: fix link path
573
574	* GNUmakefile (libOGoContentStore_HEADER_FILES_INSTALL_DIR): install
575	  headers in OGoContentStore
576
577	* GNUmakefile.preamble (ocs_ls_TOOL_LIBS): added static dependencies
578	  for OSX
579
5802004-06-30  Marcus Mueller  <znek@mulle-kybernetik.com>
581
582	* ocs_cat.m, ocs_ls.m, ocs_mkdir.m: fixed for gnustep compile.
583
5842004-06-29  Helge Hess  <helge.hess@opengroupware.org>
585
586	* created ChangeLog
587
588