ChangeLog 291 KB
Newer Older
1
2002-08-02  Per Cederqvist  <ceder@ceder.dyndns.org>
2
3
4
5
6

	Work around a race condition in the test suite.
	* src/server/testsuite/lyskomd.0/18.exp: Sleep six seconds to work
	around a race condition (Bug 692).

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
	Suppress errors from regex.c.  Handle simultaneous runs of lyskomd
	and dbck.
	* src/server/testsuite/lyskomd.supp: New file for valgrind.  This
	contains a suppression for bug 691.
	* src/server/testsuite/config/unix.exp (l2g_start): Pass a log
	file name to the valgrind wrapper.
	(dbck_run): Ditto.
	(spawn_lyskomd): New argument: log file name.  All callers
	updated.  Use the lyskomd.supp valgrind suppressions file.  Pass
	--show-reachable=yes and a log file name to valgrind.
	(check_valgrind): New arguments: logfile, need_leaks and
	need_errs.  All callers updated.
	* src/server/testsuite/Makefile.am (valgrind.wrap): Expect the log
	file name as the first argument.
	(EXTRA_DIST): Added lyskomd.supp.

	Make it possible to run lyskomd without malloc guard areas.
	* configure.in: Added --disable-malloc-guards.  This is useful
	when combined with --with-valgrind, but should not be used in a
	production setting.
	* src/server/ram-smalloc.c: Document our guard areas, and make
	them optional.
	(OVERHEAD): New macro, that computes a size including the guard
	area overhead.  Two versions, depending on if USE_MALLOC_GUARDS is
	defined or not.
	(smalloc): Reindent.  Test USE_MALLOC_GUARDS.
	(sfree): Test USE_MALLOC_GUARDS.
	(srealloc): Test USE_MALLOC_GUARDS.

	Fixed a read past the end of a buffer.
	* src/libraries/libmisc/s-string.c (s_strtol): When a string
	containing only whitespace was passed to s_strtol, s_strtol would
	attempt to read the sign ('+' or '-') past the end of the string.

	Fix the l2g test cases.
	* src/server/testsuite/l2g.0/00.exp: Destroy all structures before
	exit, so that the leak check of valgrind works properly.
	* src/server/testsuite/l2g.0/01.exp: Ditto.
	* src/server/testsuite/l2g.0/02.exp: Ditto.
	* src/server/testsuite/l2g.0/03.exp: Ditto.
	* src/server/testsuite/l2g.0/04.exp: Ditto.
	* src/server/testsuite/l2g.0/05.exp: Ditto.
	* src/server/testsuite/l2g.0/06.exp: Ditto.
	* src/server/testsuite/l2g.0/07.exp: Ditto.
	* src/server/testsuite/l2g.0/08.exp: Ditto.
	* src/server/testsuite/l2g.0/09.exp: Ditto.
	* src/server/testsuite/l2g.0/10.exp: Ditto.
54

55
56
57
	Valgrind refinements.
	* src/server/testsuite/config/unix.exp (spawn_lyskomd): Use
	valgrind.wrap.
Per Cederqvist's avatar
Per Cederqvist committed
58
59
60
61
62
	(l2g_start): Use valgrind.
	(l2g_stop): Check valgrind output.
	(lyskomd_fail_start): Use valgrind.
	(check_valgrind): Ensure that the memory report is seen.
	(dbck_run): Use valgrind.
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
	* src/server/testsuite/Makefile.am (valgrind.wrap): New target.
	Since valgrind can only send the log to a specified file
	descriptor, and expect cannot open a specified file descriptor, we
	have to use a wrapper for valgrind.
	(noinst_DATA): Added
	valgrind.exp.
	(MOSTLYCLEANFILES): Added valgrind-*.log, valgrind.log and
	valgrind.wrap.
	(check-l2g): Depend on valgrind.wrap.
	(check-lyskomd): Ditto.
	(check-leaks): Ditto.

	Plug a memory leak.
	* src/server/aux-items.c (aux_item_definition_cache_regexp): Call
	regfree() when a regex compilation fail, since our
	re_compile_pattern may leave allocated stuff in the buffer.

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	Improved valgrind support.
	* configure.in: Remove all remnants of the purify support, since
	it was broken when we switched to automake.  Added valgrind
	support.
	* src/server/testsuite/.cvsignore: Ignore valgrind-*.log.
	* src/server/testsuite/Makefile.am (site.exp): Set valgrind.
	* src/server/testsuite/config/unix.exp: Use the "valgrind"
	variable from site.exp.  It contains a the path name of the
	valgrind binary to use.
	(spawn_lyskomd): Adjust accordingly.  Don't use -v.
	(check_valgrind): New argument: expected_leaks.
	(lyskomd_death): Pass the new optional argument "expected_leaks"
	to check_valgrind.

	Note a memory leak.
	* src/server/testsuite/lyskomd.0/regexp-match-cov.exp: Bug 689 is
	a hard-to-fix memory leak.  Mark it as an expected failure.
	(shutdown): Pass info about expected leaks to lyskomd_death.
98
99
	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: This triggers
	a hard-to-fix memory leak (Bug 689).
100
101
102
103
104
105
106
107
108
109
110

	Shut up valgrind.
	* src/server/memory.c (init_person): Clear the pwd field.  This
	way, we avoid writing junk to the database file, and we make
	valgrind happy.  The junk was never used, so this is not a
	bugfix.

	Test suite fix.
	* src/server/testsuite/lyskomd.0/27.exp: Use idholl where
	appropriate.

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
	Fix a minor memory leak.
	* src/server/aux-items.c (free_aux_item_definitions): Fixed a
	memory leak.  We have to call regfree() to deallocate stuff within
	the compiled regular expression.  This bug was found with
	valgrind.

	Added some valgrind support.  (Bug 514).
	* src/server/testsuite/config/unix.exp: Handle the VALGRIND
	command line argument.
	(spawn_lyskomd): New proc, that knows how to use valgrind.
	(lyskomd_fail_start): Use spawn_lyskomd.
	(parse_valgrind_leak): New proc.
	(check_valgrind): New proc.
	(lyskomd_death): Call check_valgrind.

2002-08-01  Per Cederqvist  <ceder@ceder.dyndns.org>

	Minor doc fix.
	* doc/Protocol-A.texi (Preface): Fix markup.
	* doc/constructs.expected: Updated.

132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
2002-07-31  Per Cederqvist  <ceder@ceder.dyndns.org>

	Updated send-comments-to [33] so that it now allows an optional
	recipient type.
	* run-support/aux-items.conf: Updated send-comments-to [33].
	* doc/Protocol-A.texi (Aux-Item Types): Ditto.
	* src/server/testsuite/lyskomd.0/23.exp: Refer to 28.exp.
	* src/server/testsuite/lyskomd.0/28.exp: Test the aux-item
	send-comments-to (33) with a specified recipient type.

	More membership visibility tests. 
	* src/server/testsuite/lyskomd.0/27.exp: Test basic visibility of
	a secret conference for the supervisor of a member.  Version 2.0.6
	of lyskomd passes the test as written.

147
148
149
150
151
152
153
2002-07-22  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fix typo in Protocol A example.
	* doc/Protocol-A.texi (re-z-lookup): Fixed ref-id error in
	example.  Thanks to Joorin for pointing it out.
	(Preface): Mention that bugs should be reported via Bugzilla.

Per Cederqvist's avatar
Per Cederqvist committed
154
155
2002-06-22  Per Cederqvist  <ceder@ceder.dyndns.org>

Per Cederqvist's avatar
Per Cederqvist committed
156
157
158
159
160
161
162
163
164
165
166
167
	New membership-related tests.
	* doc/Protocol-A.texi (Person Status Types): Explicitly say that
	the supervisor of a person bypasses the unread-is-secret bit.
	* src/server/testsuite/lyskomd.0/bug-37-4.exp: New test cases.
	Like bug-37.exp, but let the observer be supervisor of all
	conferences, and let all memberships be secret.
	* src/server/testsuite/lyskomd.0/bug-37-3.exp: New test cases.
	Like bug-37.exp, but let the observer be supervisor of all
	conferences.
	* src/server/testsuite/lyskomd.0/bug-37-2.exp: Don't set the flg3
	flag of the Personal-Flags.

Per Cederqvist's avatar
Per Cederqvist committed
168
169
170
171
172
	Removed a comment.
	* src/server/conference.c (set_conf_type): David Byers is no
	longer a supporter of secret persons, so remove a comment that
	states that he is.

173
174
2002-06-15  Per Cederqvist  <ceder@ceder.dyndns.org>

175
176
177
178
179
180
181
182
183
184
	get_unread_confs no longer censors rd-prot conferences. (Bug 596).
	* src/server/membership.c (get_unread_confs): It is sufficient
	that the viewer has read_protected access to a conference for it
	to be returned.
	* src/server/testsuite/lyskomd.0/bug-37.exp: Bug 596 is fixed.
	This also causes two other tests to fail in a different way.
	* src/server/testsuite/lyskomd.0/bug-37-2.exp: Adjusted to the
	resolution of bug 596.  This only affects how certain tests
	fails.

185
186
187
188
189
190
191
192
	Don't lose the array size of get-membership and
	get-membership-old.  (Bug 598).
	* src/server/membership.c (copy_public_confs): Removed the
	"copy_secret" argument.  Simplify the code, and don't lose the
	array size just because want_read is false.
	* src/server/testsuite/lyskomd.0/bug-598.exp (want_array_size):
	Don't expect failure.

193
194
195
196
197
198
199
	Added test cases for bug 598: get-membership and
	get-membership-old sometimes drops the array size.
	* src/server/testsuite/lyskomd.0/bug-598.exp: New file.  Test 
	bug 598.
	* src/server/testsuite/lyskomd.0/bug-598-2.exp: A version of the
	bug-598.exp test with unread-is-secret set.

Per Cederqvist's avatar
Per Cederqvist committed
200
201
202
203
	Fixed minor doc error.
	* doc/Protocol-A.texi (get-membership-old): Fixed error in
	description of index-out-of-range.
	(get-membership): Ditto.
204
	* doc/constructs.expected: Updated.
Per Cederqvist's avatar
Per Cederqvist committed
205

206
207
208
209
210
	Introduce good_bad_expect, for trapping XFAIL situations nicely.
	* src/server/testsuite/config/unix.exp (good_bad_expect): New proc.
	* src/server/testsuite/renumber.el
	(renumber-lyskom-send-simple-expect): Handle good_bad_expect.

Per Cederqvist's avatar
Per Cederqvist committed
211
	Write a test cases for bug 37.
212
213
214
	* src/server/testsuite/lyskomd.0/bug-37.exp: New test case for bug
	37.  Bugs 593, 594, 595 and 596 were found while writing this test
	case...
Per Cederqvist's avatar
Per Cederqvist committed
215
216
	* src/server/testsuite/lyskomd.0/bug-37-2.exp: Like bug-37.exp,
	but with all memberships being secret.  Found bug 597.
217

218
219
220
221
222
223
224
	Document unread-is-secret.  (Bug 593).
	* doc/Protocol-A.texi (Person Status Types): Added a reference to
	Security, for an explanation of the privileges.  Document the bits
	in Personal-Flags.
	(Membership Information): Document how unread-is-secret affects
	some parts of Membership and Membership-Old.

225
226
227
228
	Added a test case for bug 349.
	* src/server/testsuite/lyskomd.0/bug-349.exp: Test case for bug
	349: wrong error code from set_supervisor.

Per Cederqvist's avatar
Per Cederqvist committed
229
230
2002-06-14  Per Cederqvist  <ceder@ceder.dyndns.org>

231
232
233
234
	Document the Message-ID format of exported texts.  (Bug 574).
	* doc/Protocol-A.texi (Importing and Exporting E-Mail): Document
	the Message-ID format of exported texts.

Per Cederqvist's avatar
Per Cederqvist committed
235
236
237
238
239
240
	Remove autoconf-2.53 warning.
	* configure.in: Use all three arguments of AC_DEFINE.
	* acinclude.m4 (CMOD_C_ATTRIBUTE_UNUSED): Use all three arguments
	of AC_DEFINE.
	* acconfig.h: File removed.

241
242
243
244
245
246
2002-05-20  Per Cederqvist  <ceder@ceder.dyndns.org>

	Minor doc fix.
	* doc/Protocol-A.texi (Client-Server Dialog): Don't mention
	feature-disabled twice.

247
248
249
250
2002-05-07  David Byers  <david.byers@swipnet.se>

	* Updated message from 2002-04-11.

251
252
253
254
255
2002-04-14  David Byers  <david.byers@swipnet.se>

	* doc/Protocol-A.texi (Aux-Item Types): Documented
	elisp-client-read-faq and elisp-client-rejected-recommendation.

David Byers's avatar
David Byers committed
256
257
258
259
260
261
262
2002-04-13  David Byers  <david.byers@swipnet.se>

	Test for fix of bug 145:
	* src/server/testsuite/config/prot-a.exp (kom_delete_conf): New
	function.
	(kom_lookup_z_name): New function.

263
264
2002-04-12  David Byers  <david.byers@swipnet.se>

David Byers's avatar
David Byers committed
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
	Fix bug 145:
	* src/server/conference.c (do_delete_conf): Removed lines that
	cleared the name of the conference. That is done in
	cached_delete_conf.

	Fix bug 38:
	* src/server/testsuite/lyskomd.0/bug-38.exp: New file.

	* src/server/testsuite/config/prot-a.exp (kom_set_user_area): New
	function.
	(kom_shutdown_server): New function.
	(kom_create_text_simple): New function.
	(cres): The else branch which does eval actually works now. Made
	ref_no global in this function.

	* src/server/person.c (do_set_user_area): Copied check for read
	access to new user area from get_text_stat.

283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
	Fix bug 331:
	* src/server/testsuite/lyskomd.0/03.exp: Use idholl and
	lyskomd_host for hostname-dependend strings.

	* src/server/testsuite/lyskomd.0/16.exp: Use idholl and
	lyskomd_host for hostname-dependend strings.

	* src/server/testsuite/lyskomd.0/01.exp: Use idholl and
	lyskomd_host for hostname-dependend strings.

	* src/server/testsuite/lyskomd.0/00.exp: Use idholl and
	lyskomd_host for hostname-dependend strings.

	* src/server/testsuite/config/unix.exp (idholl): New function to
	create hollerith with at sign and name of localhost appended.
	(lyskomd_server): New variable containing the name of this host.

300
301
2002-04-11  David Byers  <david.byers@swipnet.se>

302
303
304
305
	* src/server/aux-items.c (aux_item_trigger_mirror_faq): Don't just
	return when the object type is INFO_OBJECT_TYPE (which represents
	server aux-items). Instead, create the mirror aux-item as required
	by the protocol.
306

307
308
	* configure.in: Added AC_PREREQ.

309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
2002-04-07  Per Cederqvist  <ceder@ceder.dyndns.org>

	Added the world-readable aux item.  (Bug 5).
	* run-support/aux-items.conf: Added world-readable [34].
	* src/server/text.c (person_text_read_access): Give everybody read
	access to texts with a world-readable aux-item.
	* doc/Protocol-A.texi (Aux-Item Types): New aux-item: world-readable.
	(get-text): Mention the world-readable aux
	item under the no-such-text error code.
	(get-text-stat-old): Ditto.
	(get-text-stat): Ditto.
	* src/server/testsuite/lyskomd.0/01.exp: Handle world-readable.
	* src/server/testsuite/lyskomd.0/03.exp: Ditto.
	* src/server/testsuite/lyskomd.0/18.exp: Ditto
	* src/server/testsuite/lyskomd.0/26.exp: Test world-readable.

2002-04-06  Per Cederqvist  <ceder@ceder.dyndns.org>

	Use symbolic names for aux item tags.
	* src/server/aux-items.c (aux_item_trigger_mirror_faq): Use
	aux_faq_for_conf from aux.h instead of a hardcoded 28.
	* src/server/Makefile.am (aux.h): New target.
	(MOSTLYCLEANFILES): Added aux.h.
	(NODIST_GENOBJS): Added aux.h.
	(BUILT_SOURCES): Added aux.h.
	(version.incl): Fixed spelling error.
	(version-info.c): Ditto.

Per Cederqvist's avatar
Per Cederqvist committed
337
338
2002-04-02  Per Cederqvist  <ceder@ceder.dyndns.org>

339
340
341
342
	Fix the documentation of no-of-created-texts (Bug 384).
	* doc/Protocol-A.texi (Person Status Types): Fix the documentation
	of no-of-created-texts.  (Bug 384).

343
344
345
346
347
348
	Clarify the description of get-person-stat-old.
	* doc/Protocol-A.texi (get-person-stat-old): Don't call the
	"username" field "name".  Add markup for it.  Clarify that the
	empty string is returned; dont say that the "name is not
	returned".

Per Cederqvist's avatar
Per Cederqvist committed
349
350
351
352
353
	Automake improves.
	* src/server/testsuite/Makefile.am (noinst_DATA): Removed a
	comment about an Automake deficiency that is no longer there.
	(Bug 208).

354
355
356
357
358
2002-03-29  Per Cederqvist  <ceder@moria>

	* Release 2.0.6.

	Release administrativa.
Per Cederqvist's avatar
Per Cederqvist committed
359
360
	* doc/checkargs.py: Copyright header added.
	* scripts/lyskomd-copyrights: Updated.
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
	* HACKING: Updated version numbers.  Mention Bugzilla.
	* configure.in: Set version 2.0.6.
	* versions (SERVER-VERSION): 2.0.6.
	(SERVER-COMPAT-VERSION): 20006.
	* README: Updated for the 2.0.6 release.
	* NEWS: Updated for the 2.0.6 release.
	* doc/Protocol-A.texi (PROTOEDITION): Set to 10.6.
	(VERSION): Set to 2.0.6.
	(Document Edition History): Document changes in edition 10.6.
	* doc/constructs.expected: Updated.

	Create PDF and DVI output from the protocol specification.
	* doc/Makefile.am (pdf): New target.
	(html): New target.
	(Protocol-A.dvi): New target.
	(Protocol-A.pdf): Use texi2dvi --pdf instead of texi2pdf.
	(protocol-a.texi): New target.  Major hack.  Expand a few of the
	macros so that texinfo.tex can cope with the rest.
	(protocol-a/index.html): New target.
	(.texi.notab): Use automake comments instead of /bin/sh comments.
	(update-www): Also depend on protocol-a/index.html, Protocol-A.dvi
	and Protocol-A.pdf, and install them.
	(check): Also depend on the targets pdf and dvi.

	Doc fixes.
	* doc/Protocol-A.texi (create-person-old): Moved a misplaced brace
	to its proper place.
	(get-text): State that ^J represents a newline in the example.
	(create-person-old): Move punctuation outside of quotes, according
	to the Texinfo style guide.

Per Cederqvist's avatar
Per Cederqvist committed
392
393
394
395
396
397
398
2002-03-26  Per Cederqvist  <ceder@ingate.com>

	Port to Cygwin.
	* src/server/Makefile.am (all-recursive): Added the $(EXEEXT)
	suffix to lyskomd and dbck, so that the makefile works on cygwin.
	(check-recursive): Ditto.

399
400
2002-03-24  Per Cederqvist  <ceder@moria>

Per Cederqvist's avatar
Per Cederqvist committed
401
	Allow faq-text to be set on letterboxes.  (Bug 423).
402
403
404
405
406
407
408
	* run-support/aux-items.conf (faq-text): Allow it on letterboxes
	as well as conferences and the server.
	* doc/Protocol-A.texi (Aux-Item Types): Document that faq-text may
	be set on letterboxes.
	* src/server/testsuite/lyskomd.0/03.exp: Set an faq-text on the
	letterbox of person 8.

409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
2002-02-15  Per Cederqvist  <ceder@moria>

	Added support for the "Jubel: public" parameter, that enforces
	the policy that certain texts must be created in public
	conferences.
	* src/server/testsuite/lyskomd.0/25.exp: Test public jubels.
	* src/server/text.c (create_text_check_misc): New argument:
	need_public_jubel.
	(struct jubel): New field: public.
	(register_jubel): New argument: public.
	(ok_to_create_next_text): New result parameter: must_be_public.
	(do_create_text): Check for jubels that must be public.
	* src/server/standalone.c (register_jubel): New argument: public.
	* src/server/server-config.c (jubel): Handle the new "public" form.
	* src/server/manipulate.h (register_jubel): New argument: public.
	* doc/lyskomd.texi (Parameter Types): These are standard types,
	not all legal types.
	(Parameters): Document the "public" forms of the Jubel parameters.
	Mention that there may be several Jubel parameters.

429
430
2002-02-11  Per Cederqvist  <ceder@moria>

431
432
433
434
435
	Don't emit garbage statistics.  (Bug 390).
	* src/server/connections.c (dump_statistics): Don't emit
	statistics for the dummy request used to skip unimplemented
	requests.

436
437
438
439
440
441
442
443
444
445
	Initialize the function_index field a little earlier.
	* src/server/prot-a.c (prot_a_init): Initialize function_index.
	* src/server/internal-connections.c (init_connection): Initialize
	function_index.

	Make fnc-def-init.incl look nicer.  (Bug 381).
	* src/server/fnc-def-init.awk: Make certain that the final entry,
	that is only used to skip all arguments of requests that are not
	implemented, gets a unique number.

446
447
448
449
450
451
2002-02-10  Per Cederqvist  <ceder@moria>

	Bugzilla affects the release procedures.
	* HACKING: Mention that the version number should be added to
	Bugzilla when releases are made.

452
453
454
455
456
2002-01-23  Per Cederqvist  <ceder@ingate.com>

	Added missing include statement.  (Bug 385).
	* src/server/log.c: Include stdlib.h.

457
458
459
460
461
462
463
2002-01-18  Per Cederqvist  <ceder@moria>

	Quote backslashes properly in Texinfo macro calls.  (Bug 376).
	* doc/Protocol-A.texi (create-text-old): Properly quote \n in
	macro call.
	(create-anonymous-text-old): Ditto.

464
465
466
467
468
469
2002-01-03  Per Cederqvist  <ceder@ingate.com>

	Document that ``last-login'' is also updated on logout.
	* doc/Protocol-A.texi (Person Status Types): Don't forget to
	mention that ``last-login'' is also updated on logout.

470
2002-01-01  Per Cederqvist  <ceder@moria>
471
472
473
474
475
476
477
478
479
480
481
482
	
	Check @field{} usage.  (Bug 206).
	* doc/checkargs.py (defined_fields): New variable.
	(undefined_fields): New variable.
	(prot_a_struct.add_field): Handle defined_fields and
	undefined_fields.
	(prot_a_bitstring.add_field): Ditto.
	(lexer.toplevel_bye): Check for undefined fields.
	(lexer.toplevel_field): New method.
	* doc/Makefile.am (check): Removed a fixed FIXME comment.
	* doc/Protocol-A.texi (Future changes): Don't use @field{} when
	talking about stuff that might be a field some day in the future.
483

484
485
486
487
488
489
490
	Check @priv{} usage, and that all implemented Priv-Bits are
	documented, and vice versa.  (Bug 207).
	* doc/Makefile.am (check): Create privbits.tmp.  Check @priv{}
	usage.
	* doc/checkargs.py (lexer.__init__): Load "privbits.tmp".
	(lexer.toplevel_bye): Check Priv-Bits.

491
492
493
	Document the ``change-name'' capability.
	* doc/Protocol-A.texi (Security): Document ``change-name''.

494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
	Remove the unused and undocumented privilege bit ``extern_gw''.
	* src/include/kom-types.h (Priv_bits): Renamed the unused bit
	``extern_gw'' to ``flg7'', and reserve it for future use.
	* src/server/ram-parse.c (fparse_priv_bits): Parse flg7
	instead of extern_gw.
	* src/server/ram-output.c (foutput_priv_bits): Emit flg7 instead
	of extern_gw.
	* src/server/prot-a-parse.c (prot_a_parse_priv_bits): Parse flg7
	instead of extern_gw.
	* src/server/prot-a-output.c (prot_a_output_priv_bits): Emit flg7
	instead of extern_gw.
	* src/server/memory.c (init_priv_bits): Initialize flg7 instead of
	extern_gw.
	* src/server/dbck.c (check_persons): Set Priv_bits flg7 instead of
	extern_gw.

510
511
2001-12-31  Per Cederqvist  <ceder@moria>

512
513
514
515
516
517
518
519
	Fix documentation of error code ``client-is-crazy''.
	* doc/Protocol-A.texi (Error Codes): client-is-crazy is actually
	used, so don't say it isn't.

	Check @errorcode usage.
	* doc/Makefile.am (check): Create files for all error codes that
	are implemented.  Check @errorcode{} usage.  (Bug 205).

520
521
522
523
524
525
526
527
528
529
530
531
532
	Check that all implemented Conf_type bits are documented, and vice
	versa.
	* doc/Makefile.am (check): Don't ignore the reserved bits of
	Conf_type.
	* doc/checkargs.py (prot_a_bitstring.__init__): New method.
	(prot_a_bitstring.add_field): Store the field, and check for
	duplicates.
	(prot_a_bitstring.check_implemented): New method.
	(lexer.__init__): Read conftypes.tmp.
	(lexer.toplevel_bye): Check Extended-Conf-Type.
	(lexer.__parse_userdefined_bitstring): Be prepared that
	prot_a_bitstring.add_field can return an error message.

533
534
535
536
537
538
539
540
541
542
543
544
	Check that all implemented misc-infos are documented, and vice
	versa.
	* doc/Makefile.am (check): Create miscs-numbered.tmp based on the
	contents of kom-types.h.
	* doc/checkargs.py (prot_a_selection.check_implemented): New
	method.
	(prot_a_selection.all_names): New method.
	(lexer.__init__): Check that the same number isn't used twice in
	asyncs-numbered.tmp.  Read miscs-numbered.tmp.
	(lexer.toplevel_bye): Check that all implemented misc-infos are
	documented, and vice versa.

Per Cederqvist's avatar
Per Cederqvist committed
545
546
2001-12-30  Per Cederqvist  <ceder@moria>

Per Cederqvist's avatar
Per Cederqvist committed
547
548
549
550
551
	Code cleanup.  (Bug 346).
	* src/server/aux-items.c (aux_item_default_definition): Removed
	left-over traces of "extended aux-items", a concept that didn't
	scale and was abandoned a long time ago.

Per Cederqvist's avatar
Per Cederqvist committed
552
553
554
555
556
557
558
559
560
561
562
563
	Document supervisors better.
	* doc/Protocol-A.texi (Conferences): State that a person is a
	supervisor of himself, except for the set-supervisor call.

	Fix "make check".
	* doc/constructs.expected: Updated.
	* doc/checkargs.py (lexer.pushback): Pushback @cindex.

	Code cleanup.
	* src/server/aux-items.c (conf_stat_check_add_aux_item_list):
	Removed confusing comment.

Per Cederqvist's avatar
Per Cederqvist committed
564
565
2001-12-29  Per Cederqvist  <ceder@moria>

Per Cederqvist's avatar
Per Cederqvist committed
566
567
568
569
570
571
572
573
	Code cleanup.
	* src/server/aux-items.h, src/server/aux-items.c
	(prepare_aux_item): Now a static function.
	(filter_aux_item_list): Comment updated.

	Fixed typos.
	* doc/Protocol-A.texi (Reformattable Text (text/x-kom-basic)):
	Removed duplicated "as".
Per Cederqvist's avatar
Per Cederqvist committed
574
575
	* src/server/aux-items.c: Fixed typo in comment.

576
577
2001-12-28  Per Cederqvist  <ceder@moria>

578
579
580
581
	Talk about character sets.  (Bug 339).
	* doc/Protocol-A.texi (Simple Data Types): Talk a little about
	character sets under HOLLERITH, without saying anything definite.

582
583
584
585
586
587
588
589
590
591
	Check for __attribute__((__noreturn__)) support at configuration
	time instead of at compile time.  (Bug 57).
	* src/include/compiler.h: Removed.
	* src/include/Makefile.am (noinst_HEADERS): Removed compiler.h.
	* configure.in: Check for __attribute__((__noreturn__)).
	* acconfig.h (HAVE_ATTRIBUTE_NORETURN): Added.
	* src/server/lyskomd.h: Don't include compiler.h.  Use
	HAVE_ATTRIBUTE_NORETURN instead of the NORETURN symbol, that
	previously was defined by compiler.h.

Per Cederqvist's avatar
Per Cederqvist committed
592
593
594
595
	Don't include config.h twice.
	* src/libraries/libcommon/kom-errno.c: Don't include both
	<config.h> and "config.h".

596
597
598
599
600
	Don't declare kom_errno and err_stat twice.  (Bug 343).
	* src/server/ramkomd.c (kom_errno): Removed, since this is already
	defined in src/libraries/libcommon/kom-errno.c.
	(err_stat): Ditto.

601
602
603
604
605
606
607
608
609
610
611
	Use ``union result_holder'' instead of ``Result_holder''.  (Bug 337).
	* src/server/connections.h (union result_holder): Result_holder
	typedef removed.
	* src/server/connections.c: Use ``union result_holder'' instead of
	``Result_holder''.
	* src/server/prot-a.h: Ditto.
	* src/server/prot-a.c: Ditto.
	* doc/lyskomd.texi (Adding New Result Types): Use ``union
	result_holder'' instead of ``Result_holder''. 
	(Modifying Output Types): Ditto.

612
613
614
615
616
617
	Use ``union info_datum instead of ``Info_datum''.  (Bug 337).
	* src/server/manipulate.h (ADD_MISC): Use ``union info_datum
	instead of ``Info_datum''.
	* src/include/kom-types.h (union info_datum): Removed Info_datum
	typedef.

618
619
620
621
622
623
624
	Use ``enum kom_err'' instead of ``Kom_err''.  (Bug 335).
	* src/libraries/libcommon/kom-errno.c: Use ``enum kom_err''
	instead of ``Kom_err''.
	* src/server/aux-items.c: Ditto.
	* src/server/ramkomd.c: Ditto.
	* src/include/kom-errno.h (enum kom_err): Removed Kom_err typedef.

625
626
627
628
629
630
631
	Use ``enum res_type'' instead of ``Res_type''.  (Bug 335).
	* src/server/connections.h (enum res_type): Removed the Res_type
	typedef.  The only user updated.
	* doc/lyskomd.texi (Adding New Result Types): Use ``enum
	res_type'' instead of ``Res_type''.
	(Modifying Output Types): Ditto.

632
633
634
635
636
	Use ``enum log_class'' instead of ``Log_class''.  (Bug 335).
	* src/server/logII.c (enum log_class): Removed the Log_class
	enum.
	(log): Use ``enum log_class'' instead of ``Log_class''.

637
638
639
640
641
	Use ``enum log_type'' instead of ``Log_type''.  (Bug 335).
	* src/server/simple-cache.c (enum log_type): Removed the Log_type
	typedef.
	(log_access): Use ``enum log_type'' instead of ``Log_type''.

642
643
644
645
646
	Use ``enum aux_item_validation_type'' instead of
	``Aux_Item_Validation_Type''.  (Bug 335).
	* src/server/aux-items.h (enum aux_item_validation_type): Removed
	the Aux_item_validation_type typedef.  The only user updated.

647
648
649
650
651
652
	Use ``enum call_header'' instead of ``Call_header''.  (Bug 335).
	* src/server/connections.h: Use ``enum call_header'' instead of
	``Call_header''.
	* src/server/prot-a.c: Ditto.
	* src/server/com-h.awk: Don't create the Call_header typedef.

653
654
655
656
657
658
659
660
661
662
663
664
665
666
	Use ``enum access'' instead of ``Access''.  (Bug 335).
	* src/server/manipulate.h: Use ``enum access'' instead of
	``Access''.
	(enum access): Removed ``Access'' typedef.
	* src/server/conference.c: Use ``enum access'' instead of
	``Access''.
	* src/server/membership.c: Ditto.
	* src/server/person.c: Ditto.
	* src/server/text.c: Ditto.
	
	Updated a comment.
	* src/server/session.c (accept_async): Updated a comment that
	talked about ``Async'' instead of ``enum async''.

667
668
669
670
671
672
673
674
	Use ``enum object_type instead of ``Object_type''.  (Bug 335).
	* src/include/kom-types.h (enum object_type): Removed Object_type
	typedef.  All types that contain an enum object_type updated.
	* src/server/aux-items.c: Use ``enum object_type'' instead of
	``Object_type''.
	* src/server/aux-items.h: Ditto.
	* src/server/ram-parse.c: Ditto.

675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
	Use ``enum info_type instead of ``Info_type''.  (Bug 335).
	* src/include/kom-types.h (enum info_type): Removed Info_type
	typedef.  All types that contain an enum info_type updated.
	* doc/Makefile.am (check-doc): Extract ``enum info_type'' instead
	of ``Info_type'' from kom-types.h.
	* src/server/text.c (do_add_recipient): Use ``enum info_type''
	instead of ``Info_type''.
	(send_async_sub_recipient): Ditto.
	(remove_misc_item): Ditto.
	(create_text_add_miscs): Ditto.
	(send_async_add_recipient): Ditto.
	(add_recipient): Ditto.
	* src/server/send-async.h, src/server/send-async.c
	(async_new_recipient): Use ``enum info_type'' instead of
	``Info_type''.
	(async_sub_recipient): Ditto.
	* src/server/ram-parse.c (fparse_misc_info): Use ``enum info_type''
	instead of ``Info_type''.
	* src/server/prot-a-send-async.h, src/server/prot-a-send-async.c
	(prot_a_async_new_recipient): Use ``enum info_type'' instead of
	``Info_type''.
	(prot_a_async_sub_recipient): Ditto.
	* src/server/memory.c (clear_text_stat): Use ``enum info_type''
	instead of ``Info_type''.
	* src/server/manipulate.h (ADD_MISC): Use ``enum info_type''
	instead of ``Info_type''.
	* src/include/services.h (add_recipient): Use ``enum info_type''
	instead of ``Info_type''.

	Code cleanup.
	* src/server/conference.c: Removed an obsolete comment.

707
708
2001-12-28  Per Cederqvist  <ceder@ingate.com>

709
710
711
712
	Fixed the specification of idle-time.  (Bug 197).
	* doc/Protocol-A.texi (Session Information): The idle-time is
	affected only by the user-active request, not by any request.

713
714
715
716
	Use "C" environment when sorting test output (Bug 330).
	* doc/Makefile.am (check-doc): Set LANG, LC_ALL, LC_COLLATE and
	LC_CTYPE to "C" when running sort and uniq.

717
718
719
720
721
722
723
724
725
726
727
	BUG and BUGS comments converted into FIXMEs and entered into
	Bugzilla.  (Bug 336).
	* src/server/membership.c (sub_member): Obsolete BUGS comment
	removed.
	* src/server/ram-parse.c: BUGS comment converted into FIXMEs and
	entered into Bugzilla.
	* src/server/prot-a-parse.c: BUG comment converted into FIXME and
	entered into Bugzilla.
	* src/server/conference.c: BUG and BUGS comments converted into
	FIXMEs and entered into Bugzilla.

728
729
2001-12-22  Per Cederqvist  <ceder@moria>

730
731
732
733
734
735
736
737
738
739
740
	Use ``enum async'' instead of ``Async''.  (Bug 335).
	* src/server/session.c (accept_async): Use ``enum
	async'' instead of ``Async''.
	* src/server/prot-a-send-async.c (async_header): Use ``enum
	async'' instead of ``Async''.
	* src/server/internal-connections.c (init_connection): Use ``enum
	async'' instead of ``Async''.
	* src/server/async.h (enum async): Removed the Async typedef.
	* doc/lyskomd.texi (Adding Asynchronous Messages): Use ``enum
	async'' instead of a typedef.

741
742
743
744
745
746
747
748
749
750
751
	The check for supervisor in modify_conf_info was broken.  
	(Bug 309).
	* src/server/conference.c (modify_conf_info): Fix typo: use
	conf->supervisor instead of conf->super_conf.
	* src/server/testsuite/lyskomd.0/24.exp: Check for bug 309.  Bug
	334 was found while writing this test case; setup_xfail for it.

	Fix typo in documentation.
	* doc/Protocol-A.texi (modify-conf-info): Fixed typo: changed
	"text" to "conference".

752
753
754
755
756
757
758
	Be clearer about the default prefix.  (Bug 306).
	* doc/lyskomd.texi (Parameter Types): Be clearer about the fact
	that ``Prefix:'' overrides the compile-time default.
	(Parameters): Ditto.  Added a footnote for the first path that
	reiterates this fact.
	(DBCK Files): Added a missing colon.

759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
	Document super-conf better, and simplify the rules slightly.
	Document permitted-submitters slighlty more.  (Bug 310).
	* doc/Protocol-A.texi (Conferences): Added a reference to
	``Recipients of comments'' under the explanation of rd-prot.
	(Conference Status Types): Document super-conf properly.  It has
	two different uses.
	(set-permitted-submitters): Document what it means when
	``permitted-submitters'' is zero, and that that setting is the
	default.
	(set-super-conf): Added a reference to ``Conference Status
	Types''.
	(The User Area): Spelling error fixed.
	(Recipients of comments): Simplified the rules for super-conf.
	A setting of 0 no longer means anything.  The previous meaning
	wasn't implemented.

775
776
777
778
779
780
781
782
783
784
785
786
787
788
2001-12-13  Per Cederqvist  <ceder@moria>

	Added new aux-item send-comments-to.  (Bug 308).
	* run-support/aux-items.conf: Added send-comments-to [33].
	* src/server/testsuite/lyskomd.0/01.exp: Handle send-comments-to.
	* src/server/testsuite/lyskomd.0/03.exp: Ditto.
	* src/server/testsuite/lyskomd.0/18.exp: Ditto.
	* src/server/testsuite/lyskomd.0/23.exp: Test suite implemented.

	Robustify test suite.
	* src/server/testsuite/config/unix.exp (extracting_expect): Set
	$var to the empty string even on failure, to avoid some TCL
	errors.

789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
2001-12-12  Per Cederqvist  <ceder@moria>

	Code cleanup.
	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp: Removed
	trailing blank lines.

	Work on test case for new aux-item send-comments-to.
	* src/server/testsuite/lyskomd.0/23.exp: Check the aux-item
	send-comments-to (33).  This is an early commit of work in
	process.

2001-11-25  Per Cederqvist  <ceder@moria>

	Documentation fixes.
	* doc/Protocol-A.texi (Recipients of comments): Errata from Hans
	Persson and Per Starbck.

806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
2001-11-22  Per Cederqvist  <ceder@moria>

	Documentation clarifications.
	* doc/Protocol-A.texi (Aux-Item Types): Clarify that the address
	part of redirect is a conference number, not a name.  Clarify the
	text for send-comments-to.

2001-11-21  Per Cederqvist  <ceder@moria>

	Add documentation for aux-item send-comments-to.
	* doc/Protocol-A.texi (Article Information): Mention bcc-recpt in
	a few places where only recpt and cc-recpt was mentioned.
	(Aux-Item Types): Document send-comments-to.  (Bug 308).
	(Recipients of comments): New subsection.

821
822
823
824
825
826
827
828
829
2001-11-20  Per Cederqvist  <ceder@moria>

	Document splitkomdb.  Fix its usage message.  (Bug 21).
	* doc/lyskomd.texi (Parameters): Document "Backup export
	directory:".
	(splitkomdb): New chapter.
	* src/server/splitkomdb.c (usage): Added the "-f" option to the
	usage message.

830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
2001-11-18  Per Cederqvist  <ceder@moria>

	Replace internal-services.h with text.h.  Make sure all text in
	the file is in English.  (Bug 150.)
	* src/server/Makefile.am (lyskomd_SOURCES): Removed
	internal-services.h.  Added text.h.
	* src/server/text.h: New file, containing the prototype for
	do_delete_text(), that was moved from internal-services.h.
	* src/server/text-garb.c: Include text.h instead of
	internal-services.h.
	* src/server/text.c: Ditto.
	* src/server/ramkomd.c: Don't include internal-services.h.  It
	isn't used.
	* src/server/internal-services.h: File removed.

845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
2001-11-17  Per Cederqvist  <ceder@moria>

	Added markup for content types.  (Bug 230).
	* doc/Protocol-A.texi (LysKOM Content Types): Added markup for
	content types.
	(Reformattable Text (text/x-kom-basic)): Ditto.
	(Content type specification): Ditto.
	(Document Edition History): Ditto.
	* doc/constructs.expected: Updated.

	Document that the elisp-client has used the wrong content type.
	* doc/Protocol-A.texi (Reformattable Text (text/x-kom-basic)):
	Mention that the elisp client used to enter texts as "x-kom/text"
	instead of "text/x-kom-basic".

860
861
862
863
864
865
2001-11-16  Per Cederqvist  <ceder@moria>

	More Bugzilla references added.
	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp: Added
	Bugzilla reference to a FIXME-style comment that wasn't marked.

Per Cederqvist's avatar
Per Cederqvist committed
866
867
868
869
870
871
2001-11-15  Per Cederqvist  <ceder@moria>

	Code cleanup.  (Bug 166).
	* src/server/session.c (accept_async): Removed redundant code.
	* src/server/testsuite/lyskomd.0/03.exp: Comments added.

872
873
2001-11-13  Per Cederqvist  <ceder@moria>

874
875
876
877
878
879
880
881
882
	Change the name of the administrator in the English database.
	Try to load that database from the test suite.
	* db-crypt/db/lyskomd-data-en: Change "Administrator (for) LysKOM"
	into "Administrator (of) LysKOM".  (Bug 13).
	* src/server/testsuite/lyskomd.0/22.exp: Test that the English
	database is loadable.
	* src/server/testsuite/config/unix.exp (lyskomd_start): New
	optional argument: db_suffix.

Per Cederqvist's avatar
Per Cederqvist committed
883
884
885
886
887
888
889
890
	Test suite cleanup.
	* src/server/testsuite/leaks.0/leaks99.exp: Remove redundant
	tests.  The tests in lyskomd.0 automatically check for memory
	leaks, so there is no need to rerun those the tests here.  (Bug
	219).
	* src/server/testsuite/leaks.0/leaks00.exp: Remove obsolete
	comments.  (Bug 218).

891
892
893
894
895
896
897
	Fixed bogus examples in Protocol-A.texi.
	* doc/Protocol-A.texi (query-read-texts): Fixed the example.  It
	was missing both the "position" and "added-at" fields.  (Bug 198,
	reported by Kent.)
	(get-membership): Ditto. (Bug 223).
	* doc/constructs.expected: Updated.

898
899
2001-11-11  Per Cederqvist  <ceder@moria>

900
901
902
903
904
905
906
907
908
909
910
911
912
	Remove some uses of rcs.h that was overlooked 2001-11-04.
	(Bug 140).
	* src/libraries/libansi/memchr.c: Don't include rcs.h.  Remove
	rcsid variable.
	* src/libraries/libansi/memcmp.c: Ditto.
	* src/libraries/libansi/memcpy.c: Ditto.
	* src/libraries/libansi/memset.c: Ditto.
	* src/libraries/libansi/remove.c: Ditto.
	* src/libraries/libansi/strerror.c: Ditto.
	* src/libraries/libmisc/numlist.c: Ditto.
	* src/libraries/libmisc/numlist2.c: Ditto.
	* src/libraries/libmisc/testnumlist.c: Ditto.

913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
	Several files didn't include <config.h>.  (Bug 191).
	* src/libraries/libansi/empty.c: Include <config.h> if
	HAVE_CONFIG_H is defined.
	* src/libraries/libansi/memchr.c: Ditto.
	* src/libraries/libansi/memcmp.c: Ditto.
	* src/libraries/libansi/memcpy.c: Ditto.
	* src/libraries/libansi/memset.c: Ditto.
	* src/libraries/libansi/remove.c: Ditto.
	* src/libraries/libansi/setsid.c: Ditto.
	* src/libraries/libansi/strdup.c: Ditto.
	* src/libraries/libansi/strerror.c: Ditto.
	* src/libraries/libcommon/kom-errno.c: Ditto.
	* src/libraries/libcommon/misc-parser.c: Ditto.
	* src/libraries/libcommon/parser.c: Ditto.
	* src/libraries/libmisc/ldifftime.c: Ditto.
	* src/libraries/libmisc/numlist.c: Ditto.
	* src/libraries/libmisc/numlist2.c: Ditto.
	* src/libraries/libmisc/s-collat-tabs.c: Ditto.
	* src/libraries/libmisc/s-string.c: Ditto.
	* src/libraries/libmisc/testnumlist.c: Ditto.
	* src/server/Makefile.am (version-info.c): Ditto.

935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
	More Bugzilla references added.
	* src/server/testsuite/lyskomd.0/03.exp: Removed obsolete FIXME
	comments.
	* src/server/testsuite/lyskomd.0/06.exp: Ditto.
	* configure.in: Added references to Bugzilla for all FIXME
	comments.
	* src/server/testsuite/l2g.0/09.exp: Ditto.
	* src/server/testsuite/leaks.0/leaks00.exp: Ditto.
	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: Ditto.
	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp: Ditto.

	Don't build libcheck.a unless we are running the test suite.
	* src/server/Makefile.am (check_LIBRARIES): This target was
	formerly named noinst_LIBRARIES, but there is no reason to build
	the libcheck.a library unless we are running the checks.
	(all-recursive): Don't depend on libcheck.a.

2001-11-10  Per Cederqvist  <ceder@moria>

	More Bugzilla references added.
	* src/server/testsuite/Makefile.am: Added references to Bugzilla
	for all FIXME comments.

958
959
960
961
962
963
2001-11-09  Per Cederqvist  <ceder@moria>

	More Bugzilla references added.
	* doc/Makefile.am: Added references to Bugzilla for all FIXME
	comments.

964
965
966
967
968
969
2001-11-08  Per Cederqvist  <ceder@moria>

	More Bugzilla references added.
	* doc/Protocol-A.texi: Added references to Bugzilla for all
	FIXME comments.

Per Cederqvist's avatar
Per Cederqvist committed
970
971
2001-11-06  Per Cederqvist  <ceder@moria>

972
973
974
975
976
977
978
979
980
	Code cleanup: Remove all traces of logins_allowed.  (Bug 151).
	* src/server/session.c (login_old): Removed #if 0'd
	code that referenced logins_allowed.
	(login): Ditto.
	* src/server/person.c (create_person_generic): Removed #if 0'd
	code that referenced logins_allowed.
	* src/server/internal-services.h (logins_allowed): Removed
	declaration of this unused variable.

Per Cederqvist's avatar
Per Cederqvist committed
981
982
983
984
985
986
	Code cleanup.
	* src/server/cache-node.c (EMPTY_CACHE_NODE): Don't initialize the
	"snapshot" member.  (Bug 100).
	* src/server/cache-node.h (cache_node): Removed the unused
	"snapshot" member.  (Bug 100).

987
988
2001-11-04  Per Cederqvist  <ceder@moria>

989
990
991
992
993
994
995
	Added bug tracking numbers to the expected failures in the test
	suite.
	* src/server/testsuite/lyskomd.0/14.exp: Added bug tracking
	numbers to the setup_xfail statements.
	* src/server/testsuite/lyskomd.0/20.exp: Added bug tracking
	numbers to the setup_xfail statements.

996
997
998
999
1000
	Removed the unused pom.c and pom.h files.  We don't have explicit
	permission to distribute them under GPL.
	* src/libraries/libmisc/Makefile.am (libmisc_a_SOURCES): Removed
	pom.h.
	* src/libraries/libmisc/pom.h: Removed.