diff -Nru elmo-0.8.1/aclocal.m4 elmo-0.8.1-/aclocal.m4 --- elmo-0.8.1/aclocal.m4 2003-07-31 15:37:59.000000000 +0200 +++ elmo-0.8.1-/aclocal.m4 2003-07-31 23:17:40.000000000 +0200 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.7.3 -*- Autoconf -*- +# generated automatically by aclocal 1.7.5 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. @@ -16,7 +16,7 @@ # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. -# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -34,14 +34,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. -# serial 9 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - +# serial 10 AC_PREREQ([2.54]) @@ -170,7 +163,7 @@ # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.7.3])]) + [AM_AUTOMAKE_VERSION([1.7.5])]) # Helper functions for option handling. -*- Autoconf -*- @@ -720,7 +713,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -745,8 +738,9 @@ AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' -doit: +am__doit: @echo done +.PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) @@ -774,9 +768,9 @@ _am_result=BSD fi fi -AC_SUBST(am__include) -AC_SUBST(am__quote) -AC_MSG_RESULT($_am_result) +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) diff -Nru elmo-0.8.1/configure elmo-0.8.1-/configure --- elmo-0.8.1/configure 2003-07-31 15:38:05.000000000 +0200 +++ elmo-0.8.1-/configure 2003-07-31 23:17:50.000000000 +0200 @@ -2650,8 +2650,9 @@ am_make=${MAKE-make} cat > confinc << 'END' -doit: +am__doit: @echo done +.PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 diff -Nru elmo-0.8.1/doc/elmoconf.pl.1 elmo-0.8.1-/doc/elmoconf.pl.1 --- elmo-0.8.1/doc/elmoconf.pl.1 1970-01-01 01:00:00.000000000 +0100 +++ elmo-0.8.1-/doc/elmoconf.pl.1 2003-07-31 23:13:23.000000000 +0200 @@ -0,0 +1,46 @@ +.\" hey, Emacs: -*- nroff -*- +.\" elmo is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; see the file COPYING. If not, write to +.\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.TH ELMOCONF.PL 1 "July 31, 2003" +.\" Please update the above date whenever this man page is modified. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins (default) +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +elmoconf.pl \- Configuration tool for Elmo. +.SH SYNOPSIS +.B elmoconf.pl +.SH DESCRIPTION + +.PP +Elmoconf.pl is a simple perl script that provides user a configuration +file based on his answers to few basic questions. + +.SH FILES +.PP +.IP ~/.elmorc +User configuration file. +.SH AUTHOR +.RS +.I Krzysztof Gibas +.RE diff -Nru elmo-0.8.1/doc/Makefile.am elmo-0.8.1-/doc/Makefile.am --- elmo-0.8.1/doc/Makefile.am 2003-06-13 14:06:48.000000000 +0200 +++ elmo-0.8.1-/doc/Makefile.am 2003-07-31 23:16:53.000000000 +0200 @@ -1,7 +1,7 @@ info_TEXINFOS = elmo.texi elmo_TEXINFOS = gpl.texi version.texi -man_MANS = elmo.1 +man_MANS = elmo.1 elmoconf.pl.1 EXTRA_DIST = $(man_MANS) sample.elmorc sample.pl.elmorc README.txt Elmo.bhl diff -Nru elmo-0.8.1/doc/Makefile.in elmo-0.8.1-/doc/Makefile.in --- elmo-0.8.1/doc/Makefile.in 2003-07-31 15:38:28.000000000 +0200 +++ elmo-0.8.1-/doc/Makefile.in 2003-07-31 23:17:47.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.7.3 from Makefile.am. +# Makefile.in generated by automake 1.7.5 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 @@ -148,10 +148,11 @@ info_TEXINFOS = elmo.texi elmo_TEXINFOS = gpl.texi version.texi -man_MANS = elmo.1 +man_MANS = elmo.1 elmoconf.pl.1 EXTRA_DIST = $(man_MANS) sample.elmorc sample.pl.elmorc README.txt Elmo.bhl subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -358,7 +359,6 @@ installdirs: $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir) - install: install-am install-exec: install-exec-am install-data: install-data-am diff -Nru elmo-0.8.1/Makefile.in elmo-0.8.1-/Makefile.in --- elmo-0.8.1/Makefile.in 2003-07-31 15:38:04.000000000 +0200 +++ elmo-0.8.1-/Makefile.in 2003-07-31 23:17:47.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.7.3 from Makefile.am. +# Makefile.in generated by automake 1.7.5 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 @@ -285,9 +285,15 @@ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ + if (etags --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + else \ + include_option=--include; \ + fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + test -f $$subdir/TAGS && \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ @@ -432,7 +438,7 @@ @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distuninstallcheck: - cd $(distuninstallcheck_dir) \ + @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ @@ -441,11 +447,11 @@ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean - if test '$(srcdir)' = . ; then \ + @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi - test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 Pliki binarne elmo-0.8.1/po/de.gmo i elmo-0.8.1-/po/de.gmo siê ró¿ni± diff -Nru elmo-0.8.1/po/de.po elmo-0.8.1-/po/de.po --- elmo-0.8.1/po/de.po 2003-07-31 15:39:55.000000000 +0200 +++ elmo-0.8.1-/po/de.po 2003-08-02 16:08:29.000000000 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: elmo 0.8.x\n" -"POT-Creation-Date: 2003-07-31 15:39+0200\n" +"POT-Creation-Date: 2003-08-02 16:05+0200\n" "PO-Revision-Date: 2003-06-18 11:21+0200\n" "Last-Translator: Martin Sieper \n" "Language-Team: German \n" @@ -139,12 +139,12 @@ msgid "fetch" msgstr "holen" -#: src/maildir.c:285 +#: src/maildir.c:291 #, c-format msgid "%s has bad format" msgstr "%s hat falsches Format" -#: src/maildir.c:506 +#: src/maildir.c:510 msgid "reading directory" msgstr "lese Verzeichnis" diff -Nru elmo-0.8.1/po/elmo.pot elmo-0.8.1-/po/elmo.pot --- elmo-0.8.1/po/elmo.pot 2003-07-31 15:39:55.000000000 +0200 +++ elmo-0.8.1-/po/elmo.pot 2003-08-02 16:05:41.000000000 +0200 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2003-07-31 15:39+0200\n" +"POT-Creation-Date: 2003-08-02 16:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -137,12 +137,12 @@ msgid "fetch" msgstr "" -#: src/maildir.c:285 +#: src/maildir.c:291 #, c-format msgid "%s has bad format" msgstr "" -#: src/maildir.c:506 +#: src/maildir.c:510 msgid "reading directory" msgstr "" Pliki binarne elmo-0.8.1/po/pl.gmo i elmo-0.8.1-/po/pl.gmo siê ró¿ni± diff -Nru elmo-0.8.1/po/pl.po elmo-0.8.1-/po/pl.po --- elmo-0.8.1/po/pl.po 2003-07-31 15:39:55.000000000 +0200 +++ elmo-0.8.1-/po/pl.po 2003-08-02 16:08:29.000000000 +0200 @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: elmo 0.6\n" -"POT-Creation-Date: 2003-07-31 15:39+0200\n" +"POT-Creation-Date: 2003-08-02 16:05+0200\n" "PO-Revision-Date: 2003-04-16 01:41+0200\n" "Last-Translator: Artur Skura \n" "Language-Team: Polish \n" @@ -139,12 +139,12 @@ msgid "fetch" msgstr "pobieranie" -#: src/maildir.c:285 +#: src/maildir.c:291 #, c-format msgid "%s has bad format" msgstr "%s ma z³y format" -#: src/maildir.c:506 +#: src/maildir.c:510 msgid "reading directory" msgstr "odczytywanie katalogu" diff -Nru elmo-0.8.1/src/abook.c elmo-0.8.1-/src/abook.c --- elmo-0.8.1/src/abook.c 2003-07-31 15:28:09.000000000 +0200 +++ elmo-0.8.1-/src/abook.c 2003-08-01 13:59:01.000000000 +0200 @@ -207,9 +207,9 @@ * it won't work if name has both kinds of quotes (single and double) */ if (addr->name){ - if (addr->flags.atomic_name) + if (addr->flags.bits.atomic_name) fprintf (fp, " name:\t\t%s\n", addr->name); - else if (! addr->flags.quotes_in_name) + else if (! addr->flags.bits.quotes_in_name) fprintf (fp, " name:\t\t\"%s\"\n", addr->name); else fprintf (fp, " name:\t\t'%s'\n", addr->name); @@ -218,13 +218,13 @@ fprintf (fp, " email:\t\t%s\n", addr->email); if (addr->initials) fprintf (fp, " initials:\t%s\n", addr->initials); - if (addr->flags.sex == SEX_MALE) + if (addr->flags.bits.sex == SEX_MALE) fprintf (fp, " sex:\t\tM\n"); - else if (addr->flags.sex == SEX_FEMALE) + else if (addr->flags.bits.sex == SEX_FEMALE) fprintf (fp, " sex:\t\tF\n"); - if (addr->flags.official) + if (addr->flags.bits.official) fprintf (fp, " official:\tY\n"); - if (addr->flags.foreign) + if (addr->flags.bits.foreign) fprintf (fp, " foreign:\tY\n"); fprintf (fp, "}\n"); @@ -399,7 +399,7 @@ { address_t *addr = abook->array[index]; - addr->flags.abook = NO; + addr->flags.bits.abook = NO; abook_changed = 1; abook_sorted = 0; @@ -413,12 +413,12 @@ { address_t *addr = abook->array[index]; - if (addr->flags.sex == SEX_MALE) - addr->flags.sex = SEX_FEMALE; - else if (addr->flags.sex == SEX_FEMALE) - addr->flags.sex = SEX_MALE; + if (addr->flags.bits.sex == SEX_MALE) + addr->flags.bits.sex = SEX_FEMALE; + else if (addr->flags.bits.sex == SEX_FEMALE) + addr->flags.bits.sex = SEX_MALE; - if (addr->flags.sex != SEX_UNKNOWN) + if (addr->flags.bits.sex != SEX_UNKNOWN) abook_changed = 1; } @@ -428,8 +428,8 @@ { address_t *addr = abook->array[index]; - addr->flags.official = ! addr->flags.official; - abook_changed = 1; + addr->flags.bits.official = ! addr->flags.bits.official; + abook_changed = 1; } @@ -712,10 +712,10 @@ else email = memblock_strdup (&addr_block, email); - addr = address_empty (); - addr->name = name; - addr->email = email; - addr->flags.abook = YES; + addr = address_empty (); + addr->name = name; + addr->email = email; + addr->flags.bits.abook = YES; address_complete_mem (addr, &addr_block); @@ -951,11 +951,11 @@ return; addr = add_raddress->array[add_select->bar_pos]; - if (addr->flags.abook) + if (addr->flags.bits.abook) return; addr = address_copy (addr, &addr_block); - addr->flags.abook = YES; + addr->flags.bits.abook = YES; raddress_add (abook, addr); abook_changed = 1; abook_sorted = 0; @@ -999,7 +999,7 @@ if (new_item.addr == NULL) return; - new_item.addr->flags.abook = YES; + new_item.addr->flags.bits.abook = YES; if (new_item.addr->name == NULL && new_item.addr->email == NULL){ abook_new_drop (); return; diff -Nru elmo-0.8.1/src/address.c elmo-0.8.1-/src/address.c --- elmo-0.8.1/src/address.c 2003-07-31 15:26:49.000000000 +0200 +++ elmo-0.8.1-/src/address.c 2003-08-01 13:59:27.000000000 +0200 @@ -152,12 +152,12 @@ int off; regmatch_t matches[1]; - if (addr->flags.kind != KIND_UNKNOWN) + if (addr->flags.bits.kind != KIND_UNKNOWN) return; if (misc_regex (EMAIL_RE, addr->full, matches) == 0){ addr->email = NULL; - addr->flags.kind = KIND_NO_EMAIL; + addr->flags.bits.kind = KIND_NO_EMAIL; } else { len = matches[0].rm_eo - matches[0].rm_so; @@ -168,23 +168,23 @@ if (off > 0 && addr->full[off - 1] == '<' && addr->full[off + len] == '>') - addr->flags.kind = KIND_EMAIL_IN_ANGLES; + addr->flags.bits.kind = KIND_EMAIL_IN_ANGLES; else if (off > 0) - addr->flags.kind = KIND_STRANGE; + addr->flags.bits.kind = KIND_STRANGE; if (off == 0 && addr->full[len] == '\0') - addr->flags.kind = KIND_PURE_EMAIL; + addr->flags.bits.kind = KIND_PURE_EMAIL; } - if (addr->flags.kind != KIND_UNKNOWN) + if (addr->flags.bits.kind != KIND_UNKNOWN) return; if (misc_regex (COMMENT_RE, addr->full, matches)){ - addr->flags.kind = KIND_NAME_AS_COMMENT; - addr->first = addr->full + matches[0].rm_so; + addr->flags.bits.kind = KIND_NAME_AS_COMMENT; + addr->first = addr->full + matches[0].rm_so; } else - addr->flags.kind = KIND_STRANGE; + addr->flags.bits.kind = KIND_STRANGE; } @@ -281,7 +281,7 @@ if (addr->name != NULL) return; - switch (addr->flags.kind){ + switch (addr->flags.bits.kind){ case KIND_UNKNOWN: case KIND_PURE_EMAIL: @@ -314,7 +314,7 @@ strip_name (addr); if (strip_quotes (addr->name)) - addr->flags.atomic_name = YES; + addr->flags.bits.atomic_name = YES; strip_escapes (addr->name); } @@ -326,7 +326,7 @@ char *str = NULL; regmatch_t matches[1]; - if (addr->flags.sex != SEX_UNKNOWN) + if (addr->flags.bits.sex != SEX_UNKNOWN) return; if (addr->first) @@ -342,10 +342,10 @@ return; if (misc_regex (FEMALE_RE, str, matches)){ - addr->flags.sex = SEX_FEMALE; + addr->flags.bits.sex = SEX_FEMALE; } else { - addr->flags.sex = SEX_MALE; + addr->flags.bits.sex = SEX_MALE; } } @@ -421,13 +421,13 @@ if (addr->name && addr->email){ ret = is_atom (addr->name); if (ret){ - addr->flags.atomic_name = YES; + addr->flags.bits.atomic_name = YES; addr->full = memblock_sprintf (data_block, "%s <%s>", addr->name, addr->email); return; } - addr->flags.atomic_name = NO; + addr->flags.bits.atomic_name = NO; n_len = strlen (addr->name); e_len = strlen (addr->email); @@ -441,7 +441,7 @@ if (*seek == '"'){ *f_ptr = '\\'; f_ptr++; - addr->flags.quotes_in_name = YES; + addr->flags.bits.quotes_in_name = YES; } else if (*seek == '\\'){ *f_ptr = '\\'; @@ -472,11 +472,11 @@ { if (addr->full == NULL) make_full (addr, data_block); - if (addr->flags.kind == KIND_UNKNOWN) + if (addr->flags.bits.kind == KIND_UNKNOWN) determine_kind (addr, data_block); if (addr->name == NULL) determine_name (addr, data_block); - if (addr->flags.sex == SEX_UNKNOWN) + if (addr->flags.bits.sex == SEX_UNKNOWN) determine_sex (addr); if (addr->last == NULL) find_last (addr); @@ -686,19 +686,19 @@ char * address_wrote_format (address_t *addr) { - switch (addr->flags.sex){ + switch (addr->flags.bits.sex){ case SEX_UNKNOWN: return NULL; case SEX_MALE: - if (addr->flags.official) + if (addr->flags.bits.official) return ask_for_default ("o_male_wrote", NULL); else return ask_for_default ("male_wrote", NULL); case SEX_FEMALE: - if (addr->flags.official) + if (addr->flags.bits.official) return ask_for_default ("o_female_wrote", NULL); else return ask_for_default ("female_wrote", NULL); diff -Nru elmo-0.8.1/src/address.h elmo-0.8.1-/src/address.h --- elmo-0.8.1/src/address.h 2003-07-31 15:24:34.000000000 +0200 +++ elmo-0.8.1-/src/address.h 2003-08-01 13:54:52.000000000 +0200 @@ -110,7 +110,7 @@ enum yes_no own : 1; enum yes_no atomic_name : 1; enum yes_no quotes_in_name : 1; - }; + } bits; unsigned value; } flags; } address_t; diff -Nru elmo-0.8.1/src/eprintf.c elmo-0.8.1-/src/eprintf.c --- elmo-0.8.1/src/eprintf.c 2003-07-31 15:20:55.000000000 +0200 +++ elmo-0.8.1-/src/eprintf.c 2003-08-01 14:05:41.000000000 +0200 @@ -78,7 +78,7 @@ struct { enum yes_no fill : 1; enum justify justify : 1; - }; + } flags; }; /**************************************************************************** @@ -102,11 +102,11 @@ { char *rest; - fs->fs_len = 0; - fs->len = 0; - fs->character = '\0'; - fs->fill = NO; - fs->justify = JUSTIFY_LEFT; + fs->fs_len = 0; + fs->len = 0; + fs->character = '\0'; + fs->flags.fill = NO; + fs->flags.justify = JUSTIFY_LEFT; if (*s != '%') return; @@ -114,13 +114,13 @@ s++; if (*s == '-'){ - fs->justify = JUSTIFY_RIGHT; + fs->flags.justify = JUSTIFY_RIGHT; s++; fs->fs_len++; } if (*s == '0'){ - fs->fill = YES; + fs->flags.fill = YES; s++; fs->fs_len++; } @@ -237,13 +237,13 @@ spaces = 0; } - if (fs->justify == JUSTIFY_LEFT){ + if (fs->flags.justify == JUSTIFY_LEFT){ put_string_len (s, t, w_len); - if (fs->fill) + if (fs->flags.fill) put_nchar (s, ' ', spaces); } else { - if (fs->fill) + if (fs->flags.fill) put_nchar (s, ' ', spaces); put_string_len (s, t, w_len); } @@ -439,23 +439,23 @@ break; case 'o': - if (addr->flags.official) + if (addr->flags.bits.official) put_char (s, 'o'); else put_char (s, ' '); break; case 'f': - if (addr->flags.foreign) + if (addr->flags.bits.foreign) put_char (s, 'f'); else put_char (s, ' '); break; case 's': - if (addr->flags.sex == SEX_MALE) + if (addr->flags.bits.sex == SEX_MALE) put_char (s, 'M'); - else if (addr->flags.sex == SEX_FEMALE) + else if (addr->flags.bits.sex == SEX_FEMALE) put_char (s, 'F'); else put_char (s, '?'); diff -Nru elmo-0.8.1/src/exampl.c elmo-0.8.1-/src/exampl.c --- elmo-0.8.1/src/exampl.c 2003-07-31 15:19:37.000000000 +0200 +++ elmo-0.8.1-/src/exampl.c 2003-08-02 16:08:12.000000000 +0200 @@ -276,12 +276,12 @@ printf (" name: '%s'\n", a->name); if (a->initials) printf (" initials: %s\n", a->initials); - printf (" kind: %d\n", a->flags.kind); - if (a->flags.sex == SEX_MALE) + printf (" kind: %d\n", a->flags.bits.kind); + if (a->flags.bits.sex == SEX_MALE) printf (" sex: M\n"); - else if (a->flags.sex == SEX_FEMALE) + else if (a->flags.bits.sex == SEX_FEMALE) printf (" sex: F\n"); - printf (" abook: %d\n", a->flags.abook); + printf (" abook: %d\n", a->flags.bits.abook); } diff -Nru elmo-0.8.1/src/mail.c elmo-0.8.1-/src/mail.c --- elmo-0.8.1/src/mail.c 2003-07-29 13:43:50.000000000 +0200 +++ elmo-0.8.1-/src/mail.c 2003-08-02 16:03:33.000000000 +0200 @@ -550,7 +550,7 @@ struct mail_array_info info; int i; mail_array_t *result; - memchunk_t *chunk = memchunk_create_size (CHUNK_SIZE); + memchunk_t *chunk; if (fread (&info, sizeof (info), 1, fp) != 1){ error_ (0, errno, "fread"); @@ -570,6 +570,7 @@ return NULL; } + chunk = memchunk_create_size (CHUNK_SIZE); result = mail_array_create_size (info.size, type, path); address_close (result->ad); diff -Nru elmo-0.8.1/src/maildir.c elmo-0.8.1-/src/maildir.c --- elmo-0.8.1/src/maildir.c 2003-07-29 13:43:50.000000000 +0200 +++ elmo-0.8.1-/src/maildir.c 2003-08-02 16:04:36.000000000 +0200 @@ -48,6 +48,7 @@ #include "hash.h" #include "misc.h" #include "atable.h" +#include "bitarray.h" /**************************************************************************** * IMPLEMENTATION PRIVATE DEFINITIONS / ENUMERATIONS / SIMPLE TYPEDEFS @@ -85,6 +86,11 @@ static htable_t *file_table = NULL; +/** + * this is used in maildir_refresh to mark the common messages + */ +static bitarray_t *common_messages = NULL; + /**************************************************************************** * INTERFACE DATA ****************************************************************************/ @@ -305,12 +311,12 @@ static void -process_list_new (struct dirent **list, int count, const char *dir) +process_list_new (struct dirent **list, int count, const char *dir, int base) { int i; for (i = 0; i < count; i++){ - if (list[i]->d_fileno == 0) + if (! bitarray_is_set (common_messages, i + base)) add_mail (list[i]->d_name, dir); } } @@ -332,13 +338,12 @@ static void -reset_array (struct dirent **list, int count) +reset_array (struct dirent **list, int count, int base) { int i; for (i = 0; i < count; i++){ - list[i]->d_fileno = 0; - htable_insert (file_table, list[i]->d_name, list[i]); + htable_insert (file_table, list[i]->d_name, (void *) i + base); } } @@ -346,9 +351,9 @@ static int is_in_array (mail_t *mail) { + int index; char *seek; entry_t *entry; - struct dirent *dirent; seek = strrchr (mail->place.file_name, '/'); if (seek) @@ -360,9 +365,8 @@ if (entry == NULL) return 0; - dirent = (struct dirent *) entry->content; - - dirent->d_fileno = 1; + index = (int) entry->content; + bitarray_set (common_messages, index); return 1; } @@ -629,8 +633,10 @@ /** * step 3: reset marker and put file names into hashing table */ - reset_array (cur_list, cur_count); - reset_array (new_list, new_count); + common_messages = bitarray_create (cur_count + new_count); + bitarray_zeros (common_messages); + reset_array (cur_list, cur_count, 0); + reset_array (new_list, new_count, cur_count); /** * step 4: check the old array if it contains these files @@ -647,8 +653,8 @@ /** * step 5: read the messages that weren't in the box */ - process_list_new (cur_list, cur_count, directory_cur); - process_list_new (new_list, new_count, directory_new); + process_list_new (cur_list, cur_count, directory_cur, 0); + process_list_new (new_list, new_count, directory_new, cur_count); /** * step 6: destroy the messages that weren't flagged @@ -662,10 +668,13 @@ free_list (new_list, new_count); htable_destroy (file_table, NULL); + if (common_messages) + bitarray_destroy (common_messages); - result = new_marray; - file_table = NULL; - new_marray = NULL; + result = new_marray; + file_table = NULL; + new_marray = NULL; + common_messages = NULL; return result; } diff -Nru elmo-0.8.1/src/Makefile.in elmo-0.8.1-/src/Makefile.in --- elmo-0.8.1/src/Makefile.in 2003-07-31 15:38:31.000000000 +0200 +++ elmo-0.8.1-/src/Makefile.in 2003-07-31 23:17:48.000000000 +0200 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.7.3 from Makefile.am. +# Makefile.in generated by automake 1.7.5 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 @@ -199,6 +199,7 @@ wrapbox.h subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -453,7 +454,7 @@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ address@hidden@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ address@hidden@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @@ -464,7 +465,7 @@ .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ address@hidden@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ address@hidden@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCC_TRUE@ fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @@ -568,7 +569,6 @@ installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(bindir) - install: install-am install-exec: install-exec-am install-data: install-data-am diff -Nru elmo-0.8.1/src/str.c elmo-0.8.1-/src/str.c --- elmo-0.8.1/src/str.c 2003-07-31 15:08:36.000000000 +0200 +++ elmo-0.8.1-/src/str.c 2003-08-01 21:54:23.000000000 +0200 @@ -98,7 +98,7 @@ char * str_finished (str_t *str) { - char *result = str->str; + char *result = xrealloc (str->str, str->len + 1); xfree (str); return result;