================================================================
Dear Bug Team!
When i edit text and saving changes or running autosave, xemacs is hangs.
When i am uplied this patches, working is ok.
--- src/regex.h.orig Sat Nov 27 03:43:44 2004
+++ src/regex.h Mon Apr 16 12:24:54 2001
@@ -358,14 +358,9 @@
when it is matched. */
RE_TRANSLATE_TYPE translate;
- /* Number of returnable groups found by the compiler. (This does
- not count shy groups.) */
+ /* Number of subexpressions found by the compiler. */
Element_count re_nsub;
- /* Total number of groups found by the compiler. (Including
- shy ones.) */
- Element_count re_ngroups;
-
/* Zero if this pattern cannot match the empty string, one else.
Well, in truth it's used only in `re_search_2', to see
whether or not we should use the fastmap, so we don't set
@@ -399,12 +394,6 @@
/* If true, an anchor at a newline matches. */
unsigned newline_anchor : 1;
-
- /* Mapping between back references and groups (may not be
- equivalent with shy groups). */
- int *external_to_internal_register;
-
- int external_to_internal_register_size;
/* [[[end pattern_buffer]]] */
};
--- src/regex.c.orig Sat Nov 27 03:43:44 2004
+++ src/regex.c Tue Oct 21 03:22:11 2003
@@ -974,7 +974,6 @@
}
printf ("re_nsub: %ld\t", (long)bufp->re_nsub);
- printf ("re_ngroups: %ld\t", (long)bufp->re_ngroups);
printf ("regs_alloc: %d\t", bufp->regs_allocated);
printf ("can_be_null: %d\t", bufp->can_be_null);
printf ("newline_anchor: %d\n", bufp->newline_anchor);
@@ -984,20 +983,6 @@
printf ("syntax: %d\n", bufp->syntax);
/* Perhaps we should print the translate table? */
/* and maybe the category table? */
-
- if (bufp->external_to_internal_register)
- {
- int i;
-
- printf ("external_to_internal_register:\n");
- for (i = 0; i <= bufp->re_nsub; i++)
- {
- if (i > 0)
- printf (", ");
- printf ("%d -> %d", i, bufp->external_to_internal_register[i]);
- }
- printf ("\n");
- }
}
@@ -1708,7 +1693,6 @@
ignore the excess. */
typedef unsigned regnum_t;
-#define INIT_REG_TRANSLATE_SIZE 5
/* Macros for the compile stack. */
@@ -1892,9 +1876,7 @@
`syntax' is set to SYNTAX;
`used' is set to the length of the compiled pattern;
`fastmap_accurate' is zero;
- `re_ngroups' is the number of groups/subexpressions (including shy
- groups) in PATTERN;
- `re_nsub' is the number of non-shy groups in PATTERN;
+ `re_nsub' is the number of subexpressions in PATTERN;
`not_bol' and `not_eol' are zero;
The `fastmap' and `newline_anchor' fields are neither
@@ -1992,23 +1974,6 @@
/* Always count groups, whether or not bufp->no_sub is set. */
bufp->re_nsub = 0;
- bufp->re_ngroups = 0;
-
- if (bufp->external_to_internal_register == 0)
- {
- bufp->external_to_internal_register_size = INIT_REG_TRANSLATE_SIZE;
- RETALLOC (bufp->external_to_internal_register,
- bufp->external_to_internal_register_size,
- int);
- }
-
- {
- int i;
-
- bufp->external_to_internal_register[0] = 0;
- for (i = 1; i < bufp->external_to_internal_register_size; i++)
- bufp->external_to_internal_register[i] = (int) 0xDEADBEEF;
- }
#if !defined (emacs) && !defined (SYNTAX_TABLE)
/* Initialize the syntax table. */
@@ -2591,7 +2556,6 @@
handle_open:
{
regnum_t r;
- int shy = 0;
if (!(syntax & RE_NO_SHY_GROUPS)
&& p != pend
@@ -2602,7 +2566,7 @@
switch (c)
{
case ':': /* shy groups */
- shy = 1;
+ r = MAX_REGNUM + 1;
break;
/* All others are reserved for future constructs. */
@@ -2610,32 +2574,11 @@
FREE_STACK_RETURN (REG_BADPAT);
}
}
-
- r = ++regnum;
- bufp->re_ngroups++;
- if (!shy)
- {
- bufp->re_nsub++;
- while (bufp->external_to_internal_register_size <=
- bufp->re_nsub)
- {
- int i;
- int old_size =
- bufp->external_to_internal_register_size;
- bufp->external_to_internal_register_size += 5;
- RETALLOC (bufp->external_to_internal_register,
- bufp->external_to_internal_register_size,
- int);
- /* debugging */
- for (i = old_size;
- i < bufp->external_to_internal_register_size; i++)
- bufp->external_to_internal_register[i] =
- (int) 0xDEADBEEF;
- }
-
- bufp->external_to_internal_register[bufp->re_nsub] =
- bufp->re_ngroups;
- }
+ else
+ {
+ bufp->re_nsub++;
+ r = ++regnum;
+ }
if (COMPILE_STACK_FULL)
{
@@ -2659,10 +2602,7 @@
/* We will eventually replace the 0 with the number of
groups inner to this one. But do not push a
start_memory for groups beyond the last one we can
- represent in the compiled pattern.
- #### bad bad bad. this will fail in lots of ways, if we
- ever have to backtrack for these groups.
- */
+ represent in the compiled pattern. */
if (r <= MAX_REGNUM)
{
COMPILE_STACK_TOP.inner_group_offset
@@ -3052,23 +2992,18 @@
case '1': case '2': case '3': case '4': case
'5':
case '6': case '7': case '8': case '9':
{
- int reg;
+ regnum_t reg;
if (syntax & RE_NO_BK_REFS)
goto normal_char;
reg = c - '0';
- if (reg > bufp->re_nsub)
+ if (reg > regnum)
FREE_STACK_RETURN (REG_ESUBREG);
- {
- int regint = bufp->external_to_internal_register[reg];
- /* Can't back reference to a subexpression if inside it. */
- if (group_in_compile_stack (compile_stack, regint))
- {
- goto normal_char;
- }
- }
+ /* Can't back reference to a subexpression if inside of it. */
+ if (group_in_compile_stack (compile_stack, reg))
+ goto normal_char;
laststart = buf_end;
BUF_PUSH_2 (duplicate, reg);
@@ -3186,7 +3121,7 @@
isn't necessary unless we're trying to avoid calling alloca in
the search and match routines. */
{
- int num_regs = bufp->re_ngroups + 1;
+ int num_regs = bufp->re_nsub + 1;
/* Since DOUBLE_FAIL_STACK refuses to double only if the current size
is strictly greater than re_max_failures, the largest possible stack
@@ -4449,7 +4384,7 @@
/* We fill all the registers internally, independent of what we
return, for use in backreferences. The number here includes
an element for register zero. */
- int num_regs = bufp->re_ngroups + 1;
+ int num_regs = bufp->re_nsub + 1;
/* The currently active registers. */
int lowest_active_reg = NO_LOWEST_ACTIVE_REG;
@@ -4535,7 +4470,7 @@
there are groups, we include space for register 0 (the whole
pattern), even though we never use it, since it simplifies the
array indexing. We should fix this. */
- if (bufp->re_ngroups)
+ if (bufp->re_nsub)
{
regstart = REGEX_TALLOC (num_regs, re_char *);
regend = REGEX_TALLOC (num_regs, re_char *);
@@ -4711,87 +4646,80 @@
DEBUG_PRINT1 ("Accepting match.\n");
/* If caller wants register contents data back, do it. */
- {
- int num_nonshy_regs = bufp->re_nsub + 1;
- if (regs && !bufp->no_sub)
- {
- /* Have the register data arrays been allocated? */
- if (bufp->regs_allocated == REGS_UNALLOCATED)
- { /* No. So allocate them with malloc. We need one
- extra element beyond `num_regs' for the `-1' marker
- GNU code uses. */
- regs->num_regs = MAX (RE_NREGS, num_nonshy_regs + 1);
- regs->start = TALLOC (regs->num_regs, regoff_t);
- regs->end = TALLOC (regs->num_regs, regoff_t);
- if (regs->start == NULL || regs->end == NULL)
- {
- FREE_VARIABLES ();
- return -2;
- }
- bufp->regs_allocated = REGS_REALLOCATE;
- }
- else if (bufp->regs_allocated == REGS_REALLOCATE)
- { /* Yes. If we need more elements than were already
- allocated, reallocate them. If we need fewer, just
- leave it alone. */
- if (regs->num_regs < num_nonshy_regs + 1)
- {
- regs->num_regs = num_nonshy_regs + 1;
- RETALLOC (regs->start, regs->num_regs, regoff_t);
- RETALLOC (regs->end, regs->num_regs, regoff_t);
- if (regs->start == NULL || regs->end == NULL)
- {
- FREE_VARIABLES ();
- return -2;
- }
- }
- }
- else
- {
- /* The braces fend off a "empty body in an else-statement"
- warning under GCC when assert expands to nothing. */
- assert (bufp->regs_allocated == REGS_FIXED);
- }
-
- /* Convert the pointer data in `regstart' and `regend' to
- indices. Register zero has to be set differently,
- since we haven't kept track of any info for it. */
- if (regs->num_regs > 0)
- {
- regs->start[0] = pos;
- regs->end[0] = (MATCHING_IN_FIRST_STRING
- ? ((regoff_t) (d - string1))
- : ((regoff_t) (d - string2 + size1)));
- }
+ if (regs && !bufp->no_sub)
+ {
+ /* Have the register data arrays been allocated? */
+ if (bufp->regs_allocated == REGS_UNALLOCATED)
+ { /* No. So allocate them with malloc. We need one
+ extra element beyond `num_regs' for the `-1' marker
+ GNU code uses. */
+ regs->num_regs = MAX (RE_NREGS, num_regs + 1);
+ regs->start = TALLOC (regs->num_regs, regoff_t);
+ regs->end = TALLOC (regs->num_regs, regoff_t);
+ if (regs->start == NULL || regs->end == NULL)
+ {
+ FREE_VARIABLES ();
+ return -2;
+ }
+ bufp->regs_allocated = REGS_REALLOCATE;
+ }
+ else if (bufp->regs_allocated == REGS_REALLOCATE)
+ { /* Yes. If we need more elements than were already
+ allocated, reallocate them. If we need fewer, just
+ leave it alone. */
+ if (regs->num_regs < num_regs + 1)
+ {
+ regs->num_regs = num_regs + 1;
+ RETALLOC (regs->start, regs->num_regs, regoff_t);
+ RETALLOC (regs->end, regs->num_regs, regoff_t);
+ if (regs->start == NULL || regs->end == NULL)
+ {
+ FREE_VARIABLES ();
+ return -2;
+ }
+ }
+ }
+ else
+ {
+ /* These braces fend off a "empty body in an else-statement"
+ warning under GCC when assert expands to nothing. */
+ assert (bufp->regs_allocated == REGS_FIXED);
+ }
- /* Go through the first `min (num_regs, regs->num_regs)'
- registers, since that is all we initialized. */
- for (mcnt = 1;
- mcnt < MIN (num_nonshy_regs, regs->num_regs);
- mcnt++)
- {
- int ireg = bufp->external_to_internal_register[mcnt];
+ /* Convert the pointer data in `regstart' and `regend' to
+ indices. Register zero has to be set differently,
+ since we haven't kept track of any info for it. */
+ if (regs->num_regs > 0)
+ {
+ regs->start[0] = pos;
+ regs->end[0] = (MATCHING_IN_FIRST_STRING
+ ? ((regoff_t) (d - string1))
+ : ((regoff_t) (d - string2 + size1)));
+ }
- if (REG_UNSET (regstart[ireg]) || REG_UNSET (regend[ireg]))
- regs->start[mcnt] = regs->end[mcnt] = -1;
- else
- {
- regs->start[mcnt]
- = (regoff_t) POINTER_TO_OFFSET (regstart[ireg]);
- regs->end[mcnt]
- = (regoff_t) POINTER_TO_OFFSET (regend[ireg]);
- }
- }
- } /* regs && !bufp->no_sub */
- }
+ /* Go through the first `min (num_regs, regs->num_regs)'
+ registers, since that is all we initialized. */
+ for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++)
+ {
+ if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
+ regs->start[mcnt] = regs->end[mcnt] = -1;
+ else
+ {
+ regs->start[mcnt]
+ = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]);
+ regs->end[mcnt]
+ = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
+ }
+ }
+ } /* regs && !bufp->no_sub */
/* If we have regs and the regs structure has more elements than
- were in the pattern, set the extra elements to -1. If we
+ were in the pattern, set the extra elements to -1. If we
(re)allocated the registers, this is the case, because we
always allocate enough to have at least one -1 at the end.
We do this even when no_sub is set because some applications
- (XEmacs) reuse register structures which may contain stale
+ (XEmacs) reuse register structures which may contain stale
information, and permit attempts to access those registers.
It would be possible to require the caller to do this, but we'd
@@ -4801,20 +4729,20 @@
for (mcnt = num_regs; mcnt < regs->num_regs; mcnt++)
regs->start[mcnt] = regs->end[mcnt] = -1;
- DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
- nfailure_points_pushed, nfailure_points_popped,
- nfailure_points_pushed - nfailure_points_popped);
- DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
+ DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
+ nfailure_points_pushed, nfailure_points_popped,
+ nfailure_points_pushed - nfailure_points_popped);
+ DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
- mcnt = d - pos - (MATCHING_IN_FIRST_STRING
+ mcnt = d - pos - (MATCHING_IN_FIRST_STRING
? string1
: string2 - size1);
- DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
+ DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
- FREE_VARIABLES ();
- return mcnt;
- }
+ FREE_VARIABLES ();
+ return mcnt;
+ }
/* Otherwise match next pattern command. */
switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
@@ -5143,15 +5071,11 @@
/* \<digit> has been turned into a `duplicate' command which is
- followed by the numeric value of <digit> as the register number.
- (Already passed through external-to-internal-register mapping,
- so it refers to the actual group number, not the non-shy-only
- numbering used in the external world.) */
+ followed by the numeric value of <digit> as the register number. */
case duplicate:
{
REGISTER re_char *d2, *dend2;
- /* Get which register to match against. */
- int regno = *p++;
+ int regno = *p++; /* Get which register to match against. */
DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
/* Can't back reference a group which we've never matched. */
@@ -6373,7 +6294,7 @@
if (cflags & REG_ICASE)
{
- int i;
+ unsigned i;
preg->translate = (char *) malloc (CHAR_SET_SIZE);
if (preg->translate == NULL)
================================================================
System Info to help track down your bug:
---------------------------------------
uname -a: FreeBSD santinel.home.ua 5.3-STABLE FreeBSD 5.3-STABLE #0: Tue Nov 30 13:06:39
EET 2004 anray@santinel.home.ua:/usr/obj/usr/src/sys/ANRAY i386
./configure '--with-x11' '--with-mule'
'--x-includes=/usr/X11R6/include' '--x-libraries=/usr/X11R6/lib'
'--site-libraries=/usr/local/lib' '--site-includes=/usr/local/include'
'--with-xface' '--with-sound=native' '--with-site-lisp'
'--with-pop' '--with-xfs' '--with-jpeg' '--with-png'
'--with-tiff' '--with-ldap=no'
'--infopath=/usr/local/lib/xemacs/info:/usr/local/info:/usr/X11R6/info:/usr/info:/usr/local/lib/texmf/doc/info:/usr/lib/texmf/doc:/usr/share/info'
'--with-clash-detection' '--with-database=berkdb' '--with-xpm'
'--with-xim=xlib' '--with-athena=xaw' '--with-menubars=lucid'
'--with-scrollbars=motif' '--with-dialogs=motif'
'--with-widgets=motif' '--with-canna=no' '--with-wnn=no'
'--with-wnn6=no' '--prefix=/usr/local' 'i386--freebsd'
XEmacs 21.4.16 "Corporate Culture" configured for `i386--freebsd'.
Compilation / Installation:
Source code location:
/usr/ports/editors/xemacs21-mule.new/work/xemacs-21.4.16
Installation prefix: /usr/local
Additional header files: /usr/local/include
Additional libraries: /usr/local/lib
Runtime library search path: /usr/local/lib:/usr/X11R6/lib
Operating system description file: `s/freebsd.h'
Machine description file: `m/intel386.h'
Compiler: cc -O2 -pipe -march=athlon-xp -Wall
Compiler version: cc on i386--freebsd
Relocating allocator for buffers: yes
GNU version of malloc: yes
Linking with `-z nocombreloc'.
- Consider configuring with --pdump.
libc: system-provided libc on i386--freebsd
Window System:
Compiling in support for the X window system:
- X Windows headers location: /usr/X11R6/include
- X Windows libraries location: /usr/X11R6/lib
- Handling WM_COMMAND properly.
Compiling in support for Motif.
*WARNING* Many versions of Motif are buggy, requiring workarounds.
You are likely to experience slow redisplay.
You may need to install vendor patches to Motif.
See PROBLEMS for more information.
Using Lucid menubars.
Using Motif scrollbars.
Using Motif dialog boxes.
Using Motif native widgets.
TTY:
Compiling in support for ncurses.
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Compiling in support for X-Face message headers.
Sound:
Compiling in support for sound (native).
Databases:
Compiling in support for Berkeley database.
Internationalization:
Compiling in support for Mule (multi-lingual Emacs).
Compiling in support for XIM (X11R5+ I18N input method).
- Using raw Xlib to provide XIM support.
- Using XFontSet to provide bilingual menubar.
Mail:
Compiling in support for POP mail retrieval.
Compiling in support for "flock" mail spool file locking method.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Load-Path Lisp Shadows:
----------------------
(/usr/local/lib/xemacs/site-packages/lisp/flim/std11
/usr/local/lib/xemacs/xemacs-packages/lisp/apel/std11
/usr/local/lib/xemacs/site-packages/lisp/flim/sha1
/usr/local/lib/xemacs/xemacs-packages/lisp/ecrypto/sha1
/usr/local/lib/xemacs/site-packages/lisp/flim/md5
/usr/local/lib/xemacs/xemacs-packages/lisp/ecrypto/md5
/usr/local/lib/xemacs/site-packages/lisp/flim/md4
/usr/local/lib/xemacs/xemacs-packages/lisp/ecrypto/md4
/usr/local/lib/xemacs/site-packages/lisp/flim/hex-util
/usr/local/lib/xemacs/xemacs-packages/lisp/ecrypto/hex-util
~/.xemacs/xemacs-packages/lisp/mic-paren
/usr/local/lib/xemacs/xemacs-packages/lisp/edit-utils/mic-paren
~/.xemacs/xemacs-packages/lisp/ibuffer
/usr/local/lib/xemacs/xemacs-packages/lisp/ibuffer/ibuffer
~/.xemacs/xemacs-packages/lisp/mozmail
/usr/local/lib/xemacs/xemacs-packages/lisp/net-utils/mozmail
~/.xemacs/xemacs-packages/lisp/lua-mode
/usr/local/lib/xemacs/xemacs-packages/lisp/prog-modes/lua-mode
/usr/local/lib/xemacs/site-packages/lisp/flim/hmac-def
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/hmac-def
/usr/local/lib/xemacs/site-packages/lisp/flim/hmac-md5
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/hmac-md5
/usr/local/lib/xemacs/site-packages/lisp/flim/hmac-sha1
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/hmac-sha1
/usr/local/lib/xemacs/site-packages/lisp/flim/ntlm
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/ntlm
/usr/local/lib/xemacs/site-packages/lisp/flim/sasl
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/sasl
/usr/local/lib/xemacs/site-packages/lisp/flim/sasl-cram
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/sasl-cram
/usr/local/lib/xemacs/site-packages/lisp/flim/sasl-digest
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/sasl-digest
/usr/local/lib/xemacs/site-packages/lisp/flim/sasl-ntlm
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/sasl-ntlm
/usr/local/lib/xemacs/site-packages/lisp/flim/sasl-scram
/usr/local/lib/xemacs/xemacs-packages/lisp/sasl/sasl-scram
~/.xemacs/xemacs-packages/lisp/filladapt
/usr/local/lib/xemacs/xemacs-packages/lisp/text-modes/filladapt
~/.xemacs/xemacs-packages/lisp/folding
/usr/local/lib/xemacs/xemacs-packages/lisp/text-modes/folding
/usr/local/lib/xemacs/site-packages/lisp/flim/mel-g
/usr/local/lib/xemacs/xemacs-packages/lisp/tm/mel-g
/usr/local/lib/xemacs/site-packages/lisp/flim/mel-q
/usr/local/lib/xemacs/xemacs-packages/lisp/tm/mel-q
/usr/local/lib/xemacs/site-packages/lisp/flim/mel-u
/usr/local/lib/xemacs/xemacs-packages/lisp/tm/mel-u
/usr/local/lib/xemacs/site-packages/lisp/flim/mel
/usr/local/lib/xemacs/xemacs-packages/lisp/tm/mel
~/.xemacs/xemacs-packages/lisp/xlib-testing
/usr/local/lib/xemacs/xemacs-packages/lisp/xlib/xlib-testing
/usr/local/lib/xemacs/xemacs-packages/lisp/build/build-report
/usr/local/lib/xemacs-21.4.16/lisp/build-report)
Installed XEmacs Packages:
-------------------------
(mule-ucs ver: 1.06 upstream: 0.84)
(xwem ver: 1.12 upstream: 0.2)
(xslt-process ver: 1.11 upstream: 1.2.1)
(xslide ver: 1.09 upstream: 0.2.2)
(xlib ver: 1.06 upstream: 0.1)
(xemacs-devel ver: 1.68 upstream: No-Upstream-Ver)
(xemacs-base ver: 1.92 upstream: No-Upstream-Ver)
(x-symbol ver: 1.1 upstream: 4.5.1)
(w3 ver: 1.3 upstream: 4.0pre47)
(vm ver: 7.18 upstream: 7.17)
(view-process ver: 1.13 upstream: 2.4)
(vhdl ver: 1.19 upstream: 3.32.20)
(vc ver: 1.39 upstream: No-Upstream-Ver)
(tramp ver: 1.2 upstream: 2.0.45)
(tpu ver: 1.14 upstream: 4.2X)
(tooltalk ver: 1.15 upstream: No-Upstream-Ver)
(tm ver: 1.37 upstream: No-Upstream-Ver)
(time ver: 1.14 upstream: 1.17)
(textools ver: 1.15 upstream: No-Upstream-Ver)
(text-modes ver: 1.81 upstream: No-Upstream-Ver)
(texinfo ver: 1.25 upstream: No-Upstream-Ver)
(supercite ver: 1.2 upstream: 3.55x3)
(strokes ver: 1.1 upstream: No-Upstream-Ver)
(speedbar ver: 1.27 upstream: 0.14beta4)
(sounds-wav ver: 1.12 upstream: No-Upstream-Ver)
(sounds-au ver: 1.12 upstream: No-Upstream-Ver)
(sml-mode ver: 0.11 upstream: 3.9.5)
(slider ver: 1.15 upstream: 0.3x1)
(sieve ver: 1.17 upstream: No-Upstream-Ver)
(sh-script ver: 1.18 upstream: 2.0e)
(sgml ver: 1.11 upstream: No-Upstream-Ver)
(semantic ver: 1.19 upstream: 1.4.4)
(scheme ver: 1.14 upstream: No-Upstream-Ver)
(sasl ver: 1.15 upstream: 1.14.4)
(ruby-modes ver: 1.02 upstream: 1.6.8)
(rmail ver: 1.14 upstream: No-Upstream-Ver)
(riece ver: 1.15 upstream: 0.2.2)
(reftex ver: 1.34 upstream: 4.21)
(python-modes ver: 1.06 upstream: No-Upstream-Ver)
(psgml-dtds ver: 1.03 upstream: No-Upstream-Ver)
(psgml ver: 1.43 upstream: 1.3.1)
(ps-print ver: 1.11 upstream: 6.5.6)
(prog-modes ver: 2.01 upstream: No-Upstream-Ver)
(pgg ver: 1.05 upstream: 0.1)
(perl-modes ver: 1.06 upstream: No-Upstream-Ver)
(pcomplete ver: 1.03 upstream: 1.1.6)
(pcl-cvs ver: 1.65 upstream: R-2_9_9)
(pc ver: 1.26 upstream: No-Upstream-Ver)
(os-utils ver: 1.35 upstream: No-Upstream-Ver)
(oo-browser ver: 1.04 upstream: 4.08)
(ocaml ver: 0.05 upstream: 3.06)
(net-utils ver: 1.44 upstream: N/A)
(mmm-mode ver: 1.02 upstream: 0.4.7)
(misc-games ver: 1.18 upstream: No-Upstream-Ver)
(mine ver: 1.16 upstream: 1.9)
(mh-e ver: 1.28 upstream: 7.4.2)
(mailcrypt ver: 2.14 upstream: 3.5.8)
(mail-lib ver: 1.69 upstream: No-Upstream-Ver)
(jde ver: 1.46 upstream: 2.3.2)
(ispell ver: 1.29 upstream: 3.6)
(ilisp ver: 1.33 upstream: 5.12.0)
(igrep ver: 1.13 upstream: 2.111)
(ibuffer ver: 1.09 upstream: No-Upstream-Ver)
(hyperbole ver: 1.16 upstream: 4.18)
(hm--html-menus ver: 1.23 upstream: 5.9)
(haskell-mode ver: 1.07 upstream: 1.45)
(gnus ver: 1.82 upstream: 5.10.6)
(games ver: 1.15 upstream: 1.04)
(fsf-compat ver: 1.15 upstream: No-Upstream-Ver)
(frame-icon ver: 1.11 upstream: No-Upstream-Ver)
(forms ver: 1.15 upstream: 2.37)
(footnote ver: 1.16 upstream: 0.18x)
(eterm ver: 1.15 upstream: No-Upstream-Ver)
(ess ver: 1.12 upstream: 5.2.3)
(eshell ver: 1.07 upstream: 2.4.1)
(erc ver: 0.12 upstream: Version 4.0 Revision: 1.675)
(emerge ver: 1.11 upstream: No-Upstream-Ver)
(elib ver: 1.11 upstream: 1.0)
(eieio ver: 1.05 upstream: 0.17)
(efs ver: 1.33 upstream: 1.23)
(edit-utils ver: 2.18 upstream: No-Upstream-Ver)
(ediff ver: 1.5 upstream: 2.75)
(edebug ver: 1.21 upstream: No-Upstream-Ver)
(ecrypto ver: 0.18 upstream: 2.0)
(ecb ver: 1.2 upstream: 2.30.1)
(docbookide ver: 0.07000000000000001 upstream: 0.1)
(dired ver: 1.16 upstream: 7.12)
(dictionary ver: 1.15 upstream: 1.8)
(debug ver: 1.17 upstream: No-Upstream-Ver)
(cookie ver: 1.15 upstream: No-Upstream-Ver)
(cc-mode ver: 1.43 upstream: 5.30.9)
(calendar ver: 1.23 upstream: No-Upstream-Ver)
(calc ver: 1.26 upstream: 2.02fX3)
(c-support ver: 1.2 upstream: No-Upstream-Ver)
(build ver: 1.14 upstream: 2.02)
(bbdb ver: 1.25 upstream: 2.34)
(auctex ver: 1.38 upstream: 11.14)
(apel ver: 1.27 upstream: 10.2)
(mule-base ver: 1.46 upstream: No-Upstream-Ver)
(leim ver: 1.22 upstream: No-Upstream-Ver)
(w3m ver: 1.3 upstream: regular)
(flim ver: 1.14 upstream: regular)
Installed Modules:
-----------------
Features:
--------
(flyspell xemacsbug shadow flow-fill annotations sort gnus-cite
gnus-agent gnus-srvr nnvirtual gnus-async gnus-bcklg gnus-score
score-mode ispell gnus-ml nnfolder gnus-cache rfc2104 nnimap imap
nndraft nnmh efs-cu bbdb-gnus bbdb-snarf mail-extr encrypt gnus-demon
nntp mailcrypt spam-report spam spam-stat bbdb-com bbdb hashcash gnus-uu
gnus-msg gnus-art mm-uu mml2015 pgg pgg-parse pgg-def mm-view gnus-sum
nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range message mml mml-sec mml-smime smime dig mm-decode
mm-bodies mm-encode mailcap lpr mail-parse rfc2045 rfc2231 rfc2047 qp
ietf-drums mail-abbrevs sendmail rfc822 mailheader canlock gnus-win gnus
gnus-ems gnus-xmas messagexmas nnheader nnheaderxm gnus-util netrc
mail-utils mm-util mail-prsvr font paren blink-paren saveplace jka-compr
mmm-mode mmm-univ mmm-class mmm-region mmm-auto mmm-vars mmm-utils
mmm-compat overlay foldingo ffap edmacro boxquote rect uniquify
time-stamp erc-dcc erc-page erc-nickserv erc-nets erc-menu erc-autojoin
erc-button wid-edit erc-ring erc-pcomplete pcomplete erc-track erc-match
erc-fill erc-stamp erc-netsplit erc erc-backend erc-compat time-date
parse-time easy-mmode thingatpt pp font-lock jabber-ft-client
jabber-si-client jabber-ft-server jabber-si-server jabber-feature-neg
jabber jabber-activity jabber-watch jabber-keepalive jabber-modeline
jabber-ahc-presence jabber-ahc jabber-version jabber-browse
jabber-search jabber-register jabber-chat jabber-roster jabber-presence
jabber-muc jabber-widget jabber-disco jabber-alert jabber-iq
jabber-keymap jabber-core jabber-sasl sasl sasl-anonymous sasl-login
sasl-plain jabber-logon sha1 sha1-el hex-util jabber-xml xml jabber-menu
jabber-util semantic-load semanticdb eieio-base eieio senator
semantic-imenu imenu semantic-ctxt semantic-util-modes semantic-util
semantic assoc working mozmail gnuserv tramp-smb tramp regexp-opt
executable shell comint ring password format-spec timer trampver time
calc vvb-mode pc-select disp-table cyril-util codesys-ext
hack-file-coding byte-optimize advice advice-preload ukr-koi8u
yk-decode-ctext unicode mule-ucs-unicode un-data mucs mucs-ccl
trans-util mucs-type mucs-error latin-unity-tables latin-unity-utils
latin-unity-latin10 latin-unity-latin9 latin-unity-latin8
latin-unity-latin7 latin-unity-vars latin-unity un-define mule-uni
mule-ucs-autoloads desktop xwem-autoloads xslt-process-autoloads
xslide-autoloads xlib-autoloads xemacs-devel-autoloads
xemacs-base-autoloads x-symbol-autoloads w3-autoloads vm-autoloads
view-process-autoloads vhdl-autoloads vc-autoloads tramp-autoloads
tpu-autoloads tooltalk-autoloads tm-autoloads time-autoloads
textools-autoloads text-modes-autoloads texinfo-autoloads
supercite-autoloads strokes-autoloads speedbar-autoloads
sounds-wav-autoloads sounds-au-autoloads sml-mode-autoloads
slider-autoloads sieve-autoloads sh-script-autoloads sgml-autoloads
semantic-autoloads scheme-autoloads sasl-autoloads ruby-modes-autoloads
rmail-autoloads riece-autoloads reftex-autoloads python-modes-autoloads
psgml-dtds-autoloads psgml-autoloads ps-print-autoloads
prog-modes-autoloads pgg-autoloads perl-modes-autoloads
pcomplete-autoloads pcl-cvs-autoloads pc-autoloads os-utils-autoloads
oo-browser-autoloads ocaml-autoloads net-utils-autoloads
mmm-mode-autoloads misc-games-autoloads mine-autoloads mh-e-autoloads
mailcrypt-autoloads mail-lib-autoloads jde-autoloads ispell-autoloads
ilisp-autoloads igrep-autoloads ibuffer-autoloads hyperbole-autoloads
hm--html-menus-autoloads haskell-mode-autoloads gnus-autoloads
games-autoloads fsf-compat-autoloads frame-icon-autoloads
forms-autoloads footnote-autoloads eterm-autoloads ess-autoloads
eshell-autoloads erc-autoloads emerge-autoloads elib-autoloads
eieio-autoloads efs-autoloads edit-utils-autoloads ediff-autoloads
edebug-autoloads ecrypto-autoloads ecb-autoloads docbookide-autoloads
dired-autoloads dictionary-autoloads debug-autoloads cookie-autoloads
cc-mode-autoloads calendar-autoloads calc-autoloads c-support-autoloads
build-autoloads bbdb-autoloads auctex-autoloads apel-autoloads
mule-base-autoloads leim-autoloads xtla-autoloads w3m-autoloads w3m-load
flim-autoloads eicq-autoloads eicq bytecomp byte-compile eicq-version
eicq-world eicq-meta eicq-comm eicq-v8 eicq-log cus-face outline
timezone eicq-menu lisp-autoloads loadhist auto-show fontl-hooks
x-iso8859-1 slovenian czech romanian ccl mule-help code-cmds
gutter-items menubar-items x-menubar mode-motion mouse itimer auto-save
lisp-mode easymenu iso8859-1 page buff-menu lib-complete cus-file
derived frame text-props obsolete cus-start custom widget cl-extra
mini-cl cl cl-19 packages backquote very-early-lisp file-coding mule
motif-scrollbars cut-buffer lucid-menubars motif-dialogs x
c-balloon-help tty-frames tty toolbar native-sound scrollbar
unix-processes multicast network-streams subprocesses modules
menu-accelerator-support menubar berkeley-db md5 xemacs xim gutter tiff
png gif jpeg xface xpm xbm lisp-float-type berkeley-unix dialog devices
window-system base64)
Recent keystrokes:
-----------------
down down down down down down down down down down down
down down down down down down down down down down down
down down down down down down down down down down down
down down down down down down down down down down down
down down down down down up RET M-x x e m TAB b TAB
BS BS BS ESC ESC ESC misc-user x e m a c s SPC i s
SPC l o BS BS BS BS BS BS BS BS BS BS BS BS x e m a
c s SPC ESC ESC ESC misc-user
Recent messages (most recent first):
-----------------------------------
Loading flyspell...done
Loading flyspell...
Parsing /home/anray/.mailrc... done
Parsing /home/anray/.mailrc...
Quit
Loading xemacsbug...done
Quit
Loading xemacsbug...
No more unread articles
Generating summary...done
Generating summary...
(Next local Ispell command will use russian dictionary)
Fetching headers for nnimap+localhost:INBOX.anray...done
nnimap: Retrieving headers...done
nnimap: Retrieving headers... /
Fetching headers for nnimap+localhost:INBOX.anray...
nnimap: Updating info for nnimap+localhost:INBOX.anray...done
nnimap: Updating info for nnimap+localhost:INBOX.anray...
Retrieving newsgroup: nnimap+localhost:INBOX.anray...
No more unread newsgroups