]> git.cworth.org Git - ttt/blob - ChangeLog
7162d37c38109ef96c78b69c2ff6bcfacd95b65e
[ttt] / ChangeLog
1 2005-12-13  Bryan Worth <bryan@theworths.org>
2         * src/ttt-curses-client: Cleaned up text-entry code. Added support
3         for HOME, END, DELETE, and ARROW keys
4
5
6 2005-12-13  Carl Worth  <cworth@cworth.org>
7
8         * TODO: Note that ttt-server should retry a couple times if its
9         port is not available.
10         
11         * src/test-board.c: (main): Remove debug print messages.
12         
13         * src/ttt-board.c: (ttt_board_make_move): Tighten up the code just
14         a little bit more.
15
16 2005-12-10  Richard D. Worth  <richard@theworths.org>
17
18         * TODO: check off INVITE, RETRACT, DECLINE, Game Invitation
19         notices, Connection setup errors, NO_INVITE, User information
20         errors.
21
22         * src/ttt-client.c: (_ttt_client_execute_helo),
23         (_ttt_client_execute_statistics), (_ttt_client_execute_message),
24         (_ttt_client_execute_help), (_ttt_client_execute_version),
25         (_ttt_client_execute_quit), (_ttt_client_execute_invite),
26         (_ttt_client_execute_accept), (_ttt_client_execute_retract),
27         (_ttt_client_execute_decline), (_read_request),
28         (_execute_request),
29         (_handle_requests_thread): Whitespace changes. Use exported get
30         methods (get_username, get_num_wins). Use strcasecmp in place of
31         toupper. Finish RETRACT, DECLINE.
32
33         * src/ttt.h:
34         * src/ttt-server.h:
35         * src/ttt-server.c: (ttt_server_init),
36         (ttt_server_register_client), (ttt_server_unregister_client),
37         (ttt_server_verify_username),
38         (ttt_server_get_client_from_username), (ttt_server_add_invite),
39         (ttt_server_remove_invite): Add invite struct. Make username case
40         insensitive (missed in register_client). Implement add_invite,
41         remove_invite. Moved statistics to ttt-client.c
42
43 2005-12-09  Carl Worth  <cworth@cworth.org>
44
45         * src/ttt-server.c (ttt_server_unregister_client): Move client has
46         left message to stderr so it makes it to the log file too.
47
48 2005-12-09  Carl Worth  <cworth@cworth.org>
49
50         * src/ttt-server.c (main): Put the initial server started message
51         in the log file as well.
52
53 2005-12-09  Carl Worth  <cworth@cworth.org>
54
55         * src/ttt-args.h:
56         * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add a -u,
57         --user option for controlling the uid under which the server
58         process runs.
59         
60         * src/ttt.h:
61         * src/ttt-server.c: (ttt_server_register_client), (main): Recert
62         the dup of stdout which wasn't working. Instead just print client
63         join information on stderr so that it goes into the log. Implement
64         support for the user option by calling setuid to drop root
65         privileges the process might start out with.
66
67 2005-12-09  Bryan Worth  <bryan@theworths.org>
68         * src/ttt-curses-client.c: added error checking to ttt_create_client
69         call. Added ability to escape server commands by prepending with "/".
70         Added ability so override port number with port=xxxx entry in
71         ~/.ttt/client.conf.
72
73 2005-12-08  Carl Worth  <cworth@cworth.org>
74
75         * src/ttt-server.c (main): When detached dup stdout to stderr so
76         that everything appears in the log file.
77
78 2005-12-08  Carl Worth  <cworth@cworth.org>
79
80         * src/ttt-args.h:
81         * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add
82         -d,--detach and --pid-file=FILE options for running the server as
83         a daemon.
84         
85         * src/ttt-server.c: (ttt_server_statistics),
86         (ttt_server_verify_username), (_detach_and_write_child_pid_to),
87         (main): Add support for detaching and writing out the child PID to
88         a file.
89
90         * src/x.h:
91         * src/x.c: (xfopen), (xdup2): Two new x-functions.
92
93 2005-12-08  Carl Worth  <cworth@cworth.org>
94
95         * src/ttt-args.c: (ttt_args_help), (ttt_args_parse):
96         * src/ttt-args.h:
97         * src/ttt-server.c: (ttt_server_statistics),
98         (ttt_server_verify_username), (_detach_and_write_child_pid_to),
99         (main):
100         * src/x.c: (xfopen), (xdup2):
101         * src/x.h:
102
103 2005-12-08  Bryan Worth  <bryan@theworths.org>
104         * src/ttt-curses-client.c: Multiple improvements!
105         Username taken from USER environment variable and stored as
106         preference in ~/.ttt/client.conf (username=xxxxxx). Backspace
107         should now work correctly with all term types. Status messages
108         display in seperate area. "MESSAGE" reply from server is
109         suppressed. Eliminated most global variables.
110
111
112 2005-12-08  Carl Worth  <cworth@cworth.org>
113
114         * src/Makefile.am: Fix rule to auto-generate ttt-lex.h.
115
116         * src/ttt-lex.h: Remove generated file from revision control.
117
118         * src/ttt-lex.l: Add copyright/license blurb.
119
120         * src/ttt-lex.l:
121         * src/ttt-client.c: (yy_init_globals), (use_yy_init_globals):
122         Shut off some annoying compiler warnings due to flex bugs (only
123         one still remains).
124
125 2005-12-07  Richard D. Worth  <richard@theworths.org>
126
127         * PROTOCOL: Remove unused error NOT_IN_GAME. Add error
128         NOT_VALID_MOVE.
129
130         * TODO: Add error NOT_VALID_MOVE.
131         
132         * src/ttt-error.h:
133         * src/ttt-error.c: (ttt_error_string): Add section comments. Add
134         error NOT_VALID_MOVE.
135
136 2005-12-06  Bryan Worth <bryan@theworths.org>
137         * src/ttt-error.c: fixed missing errors (NO_INVITE, NO_GAME)
138
139 2005-12-06  Richard D. Worth  <richard@theworths.org>
140
141         * PROTOCOL: Add error NO_INVITE
142         
143         * TODO: Uncheck INVITE, ACCEPT
144         
145         * src/ttt-error.c: (ttt_error_string): Add errors NO_INVITE,
146         NO_GAME
147
148         * src/ttt-client.c: (_ttt_client_execute_message),
149         (_ttt_client_execute_help), (_ttt_client_execute_version),
150         (_ttt_client_execute_invite), (_ttt_client_execute_accept),
151         (_ttt_client_execute_retract), (_ttt_client_execute_decline):
152         Whitespace changes. Partially implement RETRACT, DECLINE.
153
154 2005-12-05  Richard D. Worth  <richard@theworths.org>
155
156         * PROTOCOL: Fill some missing possible error occurrences.
157
158         * TODO: Check off INVITE, ACCEPT, ERROR COMMAND, ERROR NO_USER
159         
160         * src/ttt-server.h:
161         * src/ttt-server.c: (ttt_server_verify_username):
162         * src/ttt-client.c: (_ttt_client_execute_help),
163         (_ttt_client_execute_invite), (_ttt_client_execute_accept):
164         Implement INVITE, ACCEPT
165
166 2005-12-05  Richard D. Worth  <richard@theworths.org>
167
168         * src/ttt-curses-client.c: (mvprintstr), (mvwprintstr), (wprint),
169         (main), (finish): Whitespace changes.
170
171 2005-12-04  Bryan Worth <bryan@theworths.org>
172         * src/ttt-socket.c: (ttt_socket_create_client) fixed socket to be
173         non-blocking. (ttt_socket_read) added return value for number
174         of bytes read
175         * Makefile.am: added necessary code for new curses-client program.
176         * src/ttt-curses-client: new ncurses based client
177
178 2005-12-03  Richard D. Worth  <richard@theworths.org>
179
180         * PROTOCOL: Add RETRACT, DECLINE. Add game identifier for all game
181         commands.
182         
183         * TODO: Add RETRACT, DECLINE, notices.
184
185 2005-12-03  Richard D. Worth  <richard@theworths.org>
186
187         * PROTOCOL: Add underscores to error codes. Add STATISTICS
188         command. Remove statistics from WHO.
189
190         * TODO: Add STATISTICS. Check off STATISTICS.
191         
192         * src/ttt.h: Define TTT_SERVER_PROTOCOL_VERSION for VERSION.
193
194         * src/ttt-error.c: (ttt_error_string): Add underscores to error
195         codes.
196
197         * src/ttt-client.h:
198         * src/ttt-client.c: (_ttt_client_execute_helo),
199         (_ttt_client_execute_statistics), (_ttt_client_execute_message),
200         (_ttt_client_execute_version), (_ttt_client_execute_quit),
201         (_ttt_client_init), (_ttt_client_fini), (ttt_client_get_username),
202         (ttt_client_set_username): Rename client->name to
203         client->username. Implement STATISTICS. Complete implementation of
204         VERSION.
205
206         * src/ttt-server.h:
207         * src/ttt-server.c: (ttt_server_register_client),
208         (ttt_server_unregister_client), (ttt_server_who),
209         (ttt_server_statistics): Track rename of client->name to
210         client->username. Add server helper for STATISTICS.
211
212 2005-12-02  Richard D. Worth  <richard@theworths.org>
213
214         * TODO: Check off Global commands, HELP, VERSION.
215         
216         * src/ttt-client.c: (_ttt_client_execute_message),
217         (_ttt_client_execute_help), (_execute_request): Whitespace
218         changes. Implement HELP with usage and short description.
219
220         * src/ttt-server.c: Update the server welcome message.
221
222 2005-12-01  Richard D. Worth  <richard@theworths.org>
223
224         * TODO: Check off NOTICE MESSAGE, ERROR NONAMESET.
225
226         * PROTOCOL: Add NONAMESET error in possible errors where
227         applicable. Add description for MESSAGE.
228         
229         * src/ttt-token.h: Add token typedef. Rename token type enum.
230
231         * src/ttt-lex.l: Add support for quoted string as single token.
232         * src/ttt-lex.h: Autogenerated.
233
234         * src/ttt-client.c: (_ttt_client_execute_helo),
235         (_ttt_client_execute_who), (_ttt_client_execute_message),
236         (_ttt_client_execute_help), (_ttt_client_execute_version),
237         (_ttt_client_execute_quit), (_ttt_client_init), (_read_request),
238         (_execute_request): Whitespace changes. Implement VERSION,
239         HELP. Change args_required back to args_min and args_max (see
240         PROTOCOL\HELP). Modify MESSAGE to accept one token arg and quote
241         output. Return NONAMESET error where applicable.
242
243 2005-11-29  Carl Worth  <cworth@cworth.org>
244
245         * src/ttt-socket.h:
246         * src/ttt-socket.c: (ttt_socket_create_client): New function for
247         creating a client socket.
248
249         * src/x.h:
250         * src/x.c: (xconnect): Add xconnect. Return a couple of useful
251         error status values so that callers can recover on connection
252         refused or host unreachable.
253
254         * src/ttt.h: Add TTT_STATUS_CONNECTION_REFUSED and
255         TTT_STATUS_NETWORK_UNREACHABLE.
256
257 2005-11-28  Kevin Worth  <kevin@theworths.org>
258
259         * PROTOCOL: Changed board cell numbering to start with zero
260         instead of one.
261         
262         * src/Makefile.am: 
263         * src/test-board.c: (main): Added new file for testing.
264         
265         * src/ttt-board.c: (ttt_board_init), (ttt_board_to_string):
266         * src/ttt-board.h: Implemented board_to_string.
267
268 2005-11-28  kevin worth  <kevin@theworths.org>
269
270         * src/ttt-board.c:
271         * src/ttt-board.h: Moved struct def from ttt-board.h into
272         ttt-board.c to make it private
273         
274         * src/ttt-lex.h:
275         Autogenerated
276
277 2005-11-28  Carl Worth  <cworth@cworth.org>
278
279         * TODO: Add instructions on using the first letter of our names to
280         indicate we are working on something.
281
282 2005-11-25  Bryan Worth <bryan@theworths.org>
283         * ttt-client.c, ttt-server.c, ttt-error.c changed line breaks to 
284         <crlf> (\r\n) for network compatibility
285
286 2005-11-25  Bryan Worth <bryan@theworths.org>
287         * TODO: checked off NOTICE USER and NOTICE QUIT
288         *src/ttt-client.c: (_ttt_client_execute_helo): implement NOTICE USER
289         *(_ttt_client_execute_quit): implement NOTICE QUIT
290
291 2005-11-25  Bryan Worth <bryan@theworths.org>
292         * TODO: checked off MESSAGE
293
294         *src/ttt-client.c: (_ttt_client_execute_message): Implement MESSAGE
295         *(_execute_request): changed arg_required to behave as a minimum
296         instead of an absolute number to allow optional arguments such as 
297         multi-word messages
298
299 2005-11-25  Richard D. Worth  <richard@theworths.org>
300
301         * TODO: checked off WHO, QUIT, ERROR SYNTAX
302
303         * src/ttt-client.c: (_ttt_client_execute_helo), (_ttt_client_init),
304         (ttt_client_get_num_wins):
305         * src/ttt-client.h:
306         * src/ttt-server.c: (ttt_server_who): Whitespace changes. Add
307         missing player win count for WHO.
308
309 2005-11-24  Richard D. Worth  <richard@theworths.org>
310
311         * AUTHORS: Add Richard D. Worth
312         * TODO: Add newline before EOF
313
314         * src/ttt-client.c: (_ttt_client_execute_who):
315         * src/ttt-server.h:
316         * src/ttt-server.c: (ttt_server_who): Implement WHO.
317
318 2005-11-24  Carl Worth  <cworth@cworth.org>
319
320         * PROTOCOL: Document QUIT.
321
322         * src/ttt-client.c: (_ttt_client_execute_helo),
323         (_ttt_client_execute_quit), (_ttt_client_init), (_ttt_client_fini),
324         (_execute_request), (_handle_requests_thread): Implement QUIT. Add
325         client->registered flag and unregister only if registered. Change
326         from args_min and args_max to args_required.
327
328         * src/ttt-error.h:
329         * src/ttt-error.c: (ttt_error_string):
330         * src/ttt-server.c: (ttt_server_register_client): Put underscores
331         in TTT_ERRROR names for better readability.
332
333 2005-11-24  Carl Worth  <cworth@cworth.org>
334
335         * PROTOCOL:
336         * src/ttt-server.c: (ttt_server_init),
337         (ttt_server_register_client): Remove unique-name generation from
338         the server. The client is going to have to have code to do this
339         anyway.
340
341         * src/ttt-client.c: Change minimum arguments for HELO from 0 to 1.
342
343         * TODO: Note that HELO and ERROR INVALIDNAME are implemented in
344         the server.
345
346 2005-11-23  Richard D. Worth  <richard@theworths.org>
347
348         * PROTOCOL: Remove unused servername
349
350         * src/ttt-client.h: * src/ttt-client.c:
351         (_ttt_client_execute_helo), (_ttt_client_init),
352         (_ttt_client_fini), (_execute_request), (ttt_client_get_name),
353         (ttt_client_set_name): Added command descriptions structure. Match
354         command case-insensitively, dispatch to execute
355         function. Implement HELO command. Register on HELO instead of on
356         connect.
357
358         * src/ttt-server.h: * src/ttt-server.c: (ttt_server_init),
359         (ttt_server_register_client), (ttt_server_unregister_client),
360         (ttt_server_get_host), (ttt_server_get_port), (main): Added host
361         and port to server. Make client registration name-based rather
362         than id-based.
363
364         * src/x.c: (xstrdup): Return NULL on NULL
365
366         * src/ttt-lex.h: Regenerated
367
368 2005-11-22  Carl Worth  <cworth@cworth.org>
369
370         * TODO: Add TODO file listing all the stuff from the protocol that
371         needs to be implemented.
372         
373         * src/Makefile.am:
374         * configure.in:
375         * ylwrap:
376         * src/ttt-lex.h:
377         * src/ttt-lex.l:
378         * src/ttt-token.h: Add support for a flex-based tokenizer which
379         tokenizes newlines and space-separated strings.
380
381         * src/ttt-client.c: (_ttt_client_init), (_ttt_client_fini),
382         (_append_to_request), (_free_request), (_read_request),
383         (_execute_request): Use new tokenizer to tokenize input into an
384         array of request strings.
385
386 2005-11-15  Carl Worth  <cworth@cworth.org>
387
388         * src/Makefile.am:
389         * src/ttt-error.h:
390         * src/ttt-error.c: (ttt_error_string): Add error values and error
391         strings from protocol.
392
393         * src/ttt.h: Add typedefs for ttt_client_t and ttt_server_t so
394         that there's no problem with ttt-client.h and ttt-server.h needing
395         to mutually include each other.
396
397         * src/ttt-server.h:
398         * src/ttt-server.c: (ttt_server_register_client),
399         (ttt_server_unregister_client), (_ttt_server_accept), (main): Push
400         the client request handling thread back down into ttt-client.c
401         where it really does belong. The server code no longer ever
402         reaches down inside the ttt_client_t structure. Export
403         ttt_server_register_client and ttt_server_unregister_client. Add
404         documentation for ttt_server_broadcast. Document locking semantics
405         for all functions which acquire the server lock.
406
407         * src/ttt-client.h:
408         * src/ttt-client.c: (_ttt_client_create), (_ttt_client_destroy),
409         (_read_into_request_until), (_read_request), (_execute_request),
410         (_handle_requests_thread), (ttt_client_new), (ttt_client_get_id):
411         Pull the ttt_client structure definition back down inside the
412         ttt-client.c file. Don't export ttt_client_create and
413         ttt_client_destroy anymore, but instead just use static
414         _ttt_client_init and _ttt_client_fini. Implement the broadcast by
415         just passing a client pointer around and using client->request
416         rather than passing char *request all over. Document new
417         ttt_client_new and remove ttt_client_read_line. Add locking to
418         ttt_client_send and document it. Add ttt_client_get_id.
419
420 2005-11-14  Carl Worth  <cworth@cworth.org>
421
422         Server now acts as a very simple chat server.
423
424         * src/ttt-client.h:
425         * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy),
426         (_append_to_request), (ttt_client_read_into_request_until),
427         (ttt_client_read_line), (ttt_client_send): Add support to do a
428         buffering read within the client and to reuse the buffer (which
429         grows by doubling) from one request to the next. Add function to
430         send a message to a client.
431
432         * src/ttt-server.c: (ttt_server_init), (ttt_server_create_client):
433         Add support for a client idea. Resize the server's client list by
434         doubling.
435         * src/ttt-server.c: (ttt_server_destroy_client): Add support to
436         destroy a client.
437         * src/ttt-server.c: (_handle_client_requests_thread),
438         (_accept_client): Move handling of client requests up to
439         ttt-server.c from ttt-client.c. Use threads rather than a fork per
440         client.
441         * src/ttt-server.h:
442         * src/ttt-server.h: (ttt_server_broadcast): Add function to send a
443         message to all connected clients.
444
445         * src/ttt-socket.h:
446         * src/ttt-socket.c: (ttt_socket_read),
447         (ttt_socket_write): Add functions to do blocking read or write of
448         the specified number of bytes.
449
450         * src/ttt-socket.c: (ttt_socket_accept): Remove fork, so that the
451         accept function call can take care of anything like that itself.
452         
453         * src/x.h:
454         * src/x.c: (xread), (xwrite): New wrappers for read and write.
455
456         * src/ttt.h: Add TTT_STATUS_EOF, TRUE, and FALSE.
457
458         * src/ttt.c: Need to include ttt-args.h explicitly now.
459
460 2005-11-11  Carl Worth  <cworth@cworth.org>
461
462         * src/ttt-server.h:
463         * src/ttt-server.c: (ttt_server_init), (ttt_server_add_client),
464         (_accept_client), (main): Add a new ttt_server_t object with a
465         mutex-protected list of clients. Move client handling code down
466         into new ttt-client.c.
467
468         * src/ttt-client.h:
469         * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy),
470         (ttt_client_handle_requests): New ttt_client_t object that simply
471         holds a pointer back to the server as well as the client socket
472         file descriptor.
473
474         * src/ttt-socket.h:
475         * src/ttt-socket.c: (ttt_socket_accept): Add closure argument. Add
476         a call to fork before calling the accept callback.
477
478         * src/ttt-args.c: Hide unused ttt_args_usage from the compiler to
479         keep it from complaining.
480
481         * src/ttt.c: (main): Rename the client main program from
482         ttt-client to ttt.c, (since the server code now has its own
483         ttt-client.c).
484
485         * src/ttt.h:
486         * src/Makefile.am: Include and link with pthread now that we have
487         pthread-based mutex locking.
488
489 2005-11-11  Carl Worth  <cworth@pippin.local>
490
491         * src/ttt-server.c: (main): Don't assign to stderr which is
492         apparently an invalid lvalue on Mac OS X.
493
494         * src/x.h:
495         * src/x.c: (xfreopen): Change return type to void.
496
497         * src/ttt-board.c: (ttt_board_to_string): Add missing return
498         statement.
499
500 2005-11-11  Carl Worth  <cworth@cworth.org>
501
502         * configure.in: Key off of src/ttt.h instead of src/ttt.c which no
503         longer exists.
504
505 2005-11-11  Carl Worth  <cworth@cworth.org>
506
507         * src/ttt.h:
508         * src/x.c:
509         * src/x.h: Move include of stdarg.h from x.c to ttt.h.
510
511 2005-11-11  Carl Worth  <cworth@cworth.org>
512
513         * src/ttt-board.h: Include ttt.h to get standard includes.
514         
515         * src/ttt-socket.c: Replace include of netinet/ip.h with
516         netinet/in.h which seems to be necessary for BSD libc, (eg. Mac OS
517         X).
518
519 2005-11-09  Carl Worth  <cworth@cworth.org>
520
521         * src/Makefile.am:
522         * src/ttt.h:
523         * src/ttt-server.c: (ttt_dispatch), (main):
524         * src/ttt-socket.h:
525         * src/ttt-socket.c: (_sockaddr_init), (_wait_for_connection),
526         (ttt_socket_create_server), (ttt_socket_accept): Push a lot of
527         code out of ttt-server.c down into a new ttt_socket abstraction
528         layer. The code is much easier to read now. The server also no
529         longer exits when the first client exits, but continues to listen
530         for more connections.
531
532 2005-11-09  Carl Worth  <cworth@cworth.org>
533
534         * src/ttt-args.h:
535         * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add support
536         for -h,--host, -p,--port, and --log-file command-line arguments.
537         
538         * src/ttt-server.c: (main): Use host, port, and log-file
539         command-line arguments.
540
541         * src/ttt-client.c: (main): Track change in signature of
542         ttt_args_parse.
543         
544         * src/x.h:
545         * src/x.c: (xfdopen), (xfreopen): More wrappers.
546
547 2005-11-08  Carl Worth  <cworth@cworth.org>
548
549         * src/ttt.h:
550         * src/ttt-server.c: (_sockaddr_init), (_wait_for_connection),
551         (main): Add socket, bind, listen, accept calls to provide a
552         simple, functional, one-shot server demonstration.
553
554         * src/x.h:
555         * src/x.c: (xsocket), (xbind), (xlisten), (xfcntl), (xselect): Add
556         more wrapped system calls.
557
558 2005-11-07  Carl Worth  <cworth@cworth.org>
559
560         * src/ttt.h: Grab some useful definitions from wdo.h:
561         ASSERT_NOT_REACHEED and TTT_PRINTF_FORMAT. Add several needed
562         include directives.
563
564         * src/Makefile.am: Rip out not-yet existing ttt-command and
565         ttt-error.
566         
567         * src/ttt-args.c: (ttt_args_parse): Track name change from
568         args_help to ttt_args_help.
569
570         * src/ttt.c: Remove in favor of ttt-server.c and ttt-client.c.
571         
572         * src/x.h: Add prototype for xfwrite.
573
574 2005-11-05  Richard D. Worth  <richard@theworths.org>
575
576         * src/ttt-board.c: (ttt_board_init): Added for loop counter init.
577         * src/ttt-board.h: Added prototypes.
578
579 2005-11-05  Richard D. Worth  <richard@theworths.org>
580
581         * src/args.c: Renamed ttt-args.c
582         * src/args.h: Renamed ttt-args.h
583         * src/ttt-args.c: (ttt_args_help), (ttt_args_usage),
584         (ttt_args_parse): Added ttt_ prefix.
585         * src/ttt-args.h: Added ttt_, TTT_ prefix.
586
587 2005-11-05  Kevin Worth  <kevin@cworth.org>
588
589         * src/ttt-board.c: (ttt_board_init): Implemented board_init.
590         * src/ttt-board.h: (ttt_board_t): Added cells array.
591
592 2005-11-05  Carl Worth  <cworth@cworth.org>
593
594         * src/Makefile.am: Add ttt-board.[ch] and x.[ch]
595         
596         * src/ttt-board.h:
597         * src/ttt-board.c: (ttt_board_init), (ttt_board_init_from_string),
598         (ttt_board_to_string), (ttt_board_write): Add some stub functions
599         for Richard and Kevin to have some practice
600         implementing. Functions to represent a board and to go to/from a
601         string.
602         
603         * src/x.h:
604         * src/x.c: (xasprintf), (xvasprintf), (xpipe), (xfork), (xmalloc),
605         (xcalloc), (xrealloc), (xfdopen), (xstrdup), (xfwrite): Several
606         utility functions that make system calls, check the result, and
607         exit on any error. This will simplify the error checking needed in
608         programs using these functions.
609         
610 2005-11-05  Carl Worth  <cworth@cworth.org>
611
612         * src/Makefile.am: Break things up for separate ttt-client and
613         ttt-server and programs.
614