emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#22156: closed (CC Mode 5.33 (C++/l); Strange end-o


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#22156: closed (CC Mode 5.33 (C++/l); Strange end-of-buffer error)
Date: Tue, 22 Dec 2015 16:38:01 +0000

Your message dated Tue, 22 Dec 2015 16:39:56 +0000
with message-id <address@hidden>
and subject line Re: bug#22156: CC Mode 5.33 (C++/l); Strange end-of-buffer 
error
has caused the debbugs.gnu.org bug report #22156,
regarding CC Mode 5.33 (C++/l); Strange end-of-buffer error
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
22156: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22156
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: CC Mode 5.33 (C++/l); Strange end-of-buffer error Date: Sun, 13 Dec 2015 00:15:42 -0500 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)
Using emacs -Q /tmp/foo.cpp to start a new file, type the following:

struct foo<A<B,

When you type the comma, you should get an "End of buffer" error.  The
error seems to be at the point following this in the backtrace:

Debugger entered--returning value: nil
  c-syntactic-re-search-forward("[<;{},|+&-]\\|[>)]" nil t t)
* c-forward-<>-arglist-recur(nil)
* c-forward-<>-arglist-recur(nil)
* c-forward-<>-arglist(nil)
* c-forward-name()
* c-forward-type(t)
* #[(preceding-token-end context last-cast-end) 
"`\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211 
address@hidden \203C\310 
\210\2028`O\306\211PQ\306R\311S!\204cT\312=\203\213\311\313!\203\213\314 
U\315\216\311V!\203s\316E*\317\320!W\321WX\")P\212\322\320!\210`Q)\323\316!\211R\203\366T\324=\203\272C\325W\321WX\")=\203\272\311\326!\203\272\316\306ROb\210M\203\325\3273M\330=\203\325\212Lb\210\316Y\323
 
\210*MJLIKHPGRMOL`K\306\211BAP\203\210P\331Z\211[ZN*\203#\3163M\203QK\202QNQb\202\222\306JQNR\203WP\332Z\211[ZN*\203A\316BP\333Z\211[ZN*\205\222\316\211A\202\222P\332Z\211[ZN*\203i\316FP\333Z\211[ZN*\203{\316D\3163PCQb\202\222R\205\222R\316=?,\204CM\316=\203\261\311\\!\203\253\322\320!\210\202\235`K\202\233M\334=\203\276\316M\202\233M\204\312NK\202\233M\335=\203\233T\324=\203\233\212\306\211\211]^_Kb\210\336
 
\210`^\337\340!\341W\204*T\342=\203\232``\343\306x\341W\203!\344\306x\341W\203!\311a!\203!\341\225`Y\203!\316\202&`b\210\306)\203\232\345`^\"_\346\306x\341W\203\232`]\337\340!\341W\204zT\342=\203\232``\343\306x\341W\203q\344\306x\341W\203q\311a!\203q\341\225`Y\203q\316\202v`b\210\306)\203\232`LY\203\232\345`]\"_\232\203\232Lb\210\306\211MJLK,`\341\306\211\211\211\211\211\211\211\211\211\211\211bcdefghijkl`mOKb\210n\203\347o\347\232\203\347\306f\350=\203<mTm\306u\210\202<\311o!\203<T\324=\203\351\224\203``\352
 
\211j\203<`b\311\353!\203<\306j\306f\350=\203$mTm\306u\210\2026h\204/m\341Uh\316l\320\225b\210\310
 \210\202\347m\341Vkj\204a\311p!\203a`\211`\203a\352 
\211j\203a`b\311q!\203\300\306f\354=\203\201m\341V\203pmSm\306u\210\202j\314 
U\355\216\311\356!*\203\241\3571\235\360`\320\"b\210\3160\202\246\210\202p\320\225b\210\316\203pg\204\271m\341U\203\271\341\224g\316\211i\202gm\320U\203ph\204pM\316=\204pJ\204\354D\204\354A\204\354n\203pr\204p\3611\371\362`\320\211#0\202\373\210\306\211`\203p`\206`Sf\354=\203pMeLd\306k\316\211jiKg\341mJ\334=\2031\316\2023J\211M\203DILHK\202LNLNKF\204UBFD\204^ADKO`b\210\316\203p\310
 
\210\202a\f\203{\311s!\204\224D\204\205A\203\350j\204\350l\204\350M\203\350MeLd\306k\316\211jiKg\341mJ\334=\203\267\316\202\271J\211M\203\312ILHK\202\322NLNKF\204\333BFD\204\344ADKO\f\203\311t!\203\212\341\225b\210\310
 \210`L\323 
M)\3632\354m\341V\203*\3641\362`\320m#b0\202!\210\202\"\210\365\3633\316=\"address@hidden@\371!fj\203\345M\204RD\203al\204ak\204a\365\363\316\"\210k\203Ul\204UJ\204\216D\204\216A\204\2163\316=\204\216\212bb\210\323
 
\372>)\204UMeLd\306k\316\211jiKg\341mJ\334=\203\261\316\202\263J\211M\203\304ILHK\202\314NLNKF\204\325BFD\204\336ADKO\202UJ\203G`OU\203-\306f\373=\203%T\312=\204%3\316=\203\365\363\316\"address@hidden"address@hidden"address@hidden"\210\202\223M\316=\203S\365\363\316\"\210`OU\203\223f\203\215r\374=\203wv\204pw\203\205M\375>\202\202r\366=\203\215M\376>\203\215\365\363\316\"\210\202\223\365\3633\"\210k\203
 l\204 r\204 M\316=\204 J\204\311D\204\311A\204\311n\203 
i\203\311\311x!\204 
MeLd\306k\316\211jiKg\341mJ\334=\203\354\316\202\356J\211M\203\377ILHK\202NLNKF\204BFD\204ADKO\202Ul\2034k\204/i\2034\365\363\316\"\210M\203Ul\204Uk\204Ug\203Ugf\350=\203U\365\363\306\"\2103\203_\365\363\316\"\210j\203\347r\204\347\311y!\203\347k\203\335l\204\335i\204\335M\316=\204\335MeLd\306k\316\211jiKg\341mJ\334=\203\251\316\202\253J\211M\203\274ILHK\202\304NLNKF\204\315BFD\204\326ADKO\202\342g\203\347\365\363\316\"\210l\204\361k\204\375M\377>\203\375\365\363\316\"\210M\201\212>\203\365\363\316\"\210T\324=\203re\203re\201\213>\204mdf\201\214=\203r\212dTb\210\310
 \210\201\215 z\201\216\216\201\217{!\210\311|!+\204m\212dTb\210`\323 
\210`}~\321\201\220~}#\200\"+\203r\365\363\316\"\210j\203\302h\203\235M\203\235f\204\216\311\201\221!\203\235r\204\235i\204\235\365\363\316\"\210g\204\252\311\201\221!\203\347M\330=\203\347r\201\222=\204\347\365\363\316\"\210\202\347r\203\347l\204\342r\374=\203\347w\204\347k\204\342i\203\347\365\363\316\"\210r\374=03.\212\201\205\224
     \202eV\205\224  \202\206        `Sf\201>\205\224        \310 
\210\311\201\223!\205\224  \306\211`u\210\310 \210`\311\203!\205[  
\341\225`\201\224\224\204N      \320\224\203F   3\204N  M\201\225>\202K 
\311\204!?\205[ \311\205!?\206[ \341\225`X)\205\224     \202eV\205\224  
\202Sb\210`\206=\206\224        \336 \210\337\340!\341W\203\204 
\311\207!\202\224       `Sf\201\226>?\205\224   \201\227 ?)\203\274     
\203\263       M\203\263       M\316=\204\263  \316YLb\210\323 
\210)address@hidden     J\334=\203\321  \316\202\323    J\211M\203\344  
ILHK\202\354    NLNKF\204\365   BFD\204\376     
ADr\374=\203'\n\311\201\231!\203'\n`\201\232\210\211`\211\201\233\211\211T\201\234\210$+\210\203<\nM\203<\n\316Y\212Lb\210\323
 \210*KF\204H\nE\205M\nFEBB\202V\n\n\306.\207" [c-record-type-identifiers 
c-record-ref-identifiers save-rec-ref-ids save-rec-type-ids new-style-auto 
cast-end nil c-forward-annotation c-forward-sws looking-at java-mode 
"@[A-Za-z0-9]+" match-data #[nil "\301\302\"\207" [save-match-data-internal 
set-match-data evaporate] 3] t match-string 1 intern-soft 
c-forward-keyword-clause c-forward-type c++-mode "auto" "[=(]" ids found 
c-decl-hangon-kwds c-typedef-decl-kwds c-typeless-decl-kwds prefix maybe 
c-backward-sws skip-syntax-backward "w_" 0 pike-mode "-!%&*+/<=>^|~[]()" "`" 
buffer-substring-no-properties ":~   \n\f" "\\<\\>" 40 3 c-forward-name 
"\\(::\\)" 41 #[nil "\301\302\"\207" [save-match-data-internal set-match-data 
evaporate] 3] "\\s(" (error) scan-sexps (error) ...] 21](1 nil nil)
* apply(#[(preceding-token-end context last-cast-end) 
"`\306\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211   
address@hidden \203C\310 
\210\2028`O\306\211PQ\306R\311S!\204cT\312=\203\213\311\313!\203\213\314 
U\315\216\311V!\203s\316E*\317\320!W\321WX\")P\212\322\320!\210`Q)\323\316!\211R\203\366T\324=\203\272C\325W\321WX\")=\203\272\311\326!\203\272\316\306ROb\210M\203\325\3273M\330=\203\325\212Lb\210\316Y\323
 
\210*MJLIKHPGRMOL`K\306\211BAP\203\210P\331Z\211[ZN*\203#\3163M\203QK\202QNQb\202\222\306JQNR\203WP\332Z\211[ZN*\203A\316BP\333Z\211[ZN*\205\222\316\211A\202\222P\332Z\211[ZN*\203i\316FP\333Z\211[ZN*\203{\316D\3163PCQb\202\222R\205\222R\316=?,\204CM\316=\203\261\311\\!\203\253\322\320!\210\202\235`K\202\233M\334=\203\276\316M\202\233M\204\312NK\202\233M\335=\203\233T\324=\203\233\212\306\211\211]^_Kb\210\336
 
\210`^\337\340!\341W\204*T\342=\203\232``\343\306x\341W\203!\344\306x\341W\203!\311a!\203!\341\225`Y\203!\316\202&`b\210\306)\203\232\345`^\"_\346\306x\341W\203\232`]\337\340!\341W\204zT\342=\203\232``\343\306x\341W\203q\344\306x\341W\203q\311a!\203q\341\225`Y\203q\316\202v`b\210\306)\203\232`LY\203\232\345`]\"_\232\203\232Lb\210\306\211MJLK,`\341\306\211\211\211\211\211\211\211\211\211\211\211bcdefghijkl`mOKb\210n\203\347o\347\232\203\347\306f\350=\203<mTm\306u\210\202<\311o!\203<T\324=\203\351\224\203``\352
 
\211j\203<`b\311\353!\203<\306j\306f\350=\203$mTm\306u\210\2026h\204/m\341Uh\316l\320\225b\210\310
 \210\202\347m\341Vkj\204a\311p!\203a`\211`\203a\352 
\211j\203a`b\311q!\203\300\306f\354=\203\201m\341V\203pmSm\306u\210\202j\314 
U\355\216\311\356!*\203\241\3571\235\360`\320\"b\210\3160\202\246\210\202p\320\225b\210\316\203pg\204\271m\341U\203\271\341\224g\316\211i\202gm\320U\203ph\204pM\316=\204pJ\204\354D\204\354A\204\354n\203pr\204p\3611\371\362`\320\211#0\202\373\210\306\211`\203p`\206`Sf\354=\203pMeLd\306k\316\211jiKg\341mJ\334=\2031\316\2023J\211M\203DILHK\202LNLNKF\204UBFD\204^ADKO`b\210\316\203p\310
 
\210\202a\f\203{\311s!\204\224D\204\205A\203\350j\204\350l\204\350M\203\350MeLd\306k\316\211jiKg\341mJ\334=\203\267\316\202\271J\211M\203\312ILHK\202\322NLNKF\204\333BFD\204\344ADKO\f\203\311t!\203\212\341\225b\210\310
 \210`L\323 
M)\3632\354m\341V\203*\3641\362`\320m#b0\202!\210\202\"\210\365\3633\316=\"address@hidden@\371!fj\203\345M\204RD\203al\204ak\204a\365\363\316\"\210k\203Ul\204UJ\204\216D\204\216A\204\2163\316=\204\216\212bb\210\323
 
\372>)\204UMeLd\306k\316\211jiKg\341mJ\334=\203\261\316\202\263J\211M\203\304ILHK\202\314NLNKF\204\325BFD\204\336ADKO\202UJ\203G`OU\203-\306f\373=\203%T\312=\204%3\316=\203\365\363\316\"address@hidden"address@hidden"address@hidden"\210\202\223M\316=\203S\365\363\316\"\210`OU\203\223f\203\215r\374=\203wv\204pw\203\205M\375>\202\202r\366=\203\215M\376>\203\215\365\363\316\"\210\202\223\365\3633\"\210k\203
 l\204 r\204 M\316=\204 J\204\311D\204\311A\204\311n\203 
i\203\311\311x!\204 
MeLd\306k\316\211jiKg\341mJ\334=\203\354\316\202\356J\211M\203\377ILHK\202NLNKF\204BFD\204ADKO\202Ul\2034k\204/i\2034\365\363\316\"\210M\203Ul\204Uk\204Ug\203Ugf\350=\203U\365\363\306\"\2103\203_\365\363\316\"\210j\203\347r\204\347\311y!\203\347k\203\335l\204\335i\204\335M\316=\204\335MeLd\306k\316\211jiKg\341mJ\334=\203\251\316\202\253J\211M\203\274ILHK\202\304NLNKF\204\315BFD\204\326ADKO\202\342g\203\347\365\363\316\"\210l\204\361k\204\375M\377>\203\375\365\363\316\"\210M\201\212>\203\365\363\316\"\210T\324=\203re\203re\201\213>\204mdf\201\214=\203r\212dTb\210\310
 \210\201\215 z\201\216\216\201\217{!\210\311|!+\204m\212dTb\210`\323 
\210`}~\321\201\220~}#\200\"+\203r\365\363\316\"\210j\203\302h\203\235M\203\235f\204\216\311\201\221!\203\235r\204\235i\204\235\365\363\316\"\210g\204\252\311\201\221!\203\347M\330=\203\347r\201\222=\204\347\365\363\316\"\210\202\347r\203\347l\204\342r\374=\203\347w\204\347k\204\342i\203\347\365\363\316\"\210r\374=03.\212\201\205\224
     \202eV\205\224  \202\206        `Sf\201>\205\224        \310 
\210\311\201\223!\205\224  \306\211`u\210\310 \210`\311\203!\205[  
\341\225`\201\224\224\204N      \320\224\203F   3\204N  M\201\225>\202K 
\311\204!?\205[ \311\205!?\206[ \341\225`X)\205\224     \202eV\205\224  
\202Sb\210`\206=\206\224        \336 \210\337\340!\341W\203\204 
\311\207!\202\224       `Sf\201\226>?\205\224   \201\227 ?)\203\274     
\203\263       M\203\263       M\316=\204\263  \316YLb\210\323 
\210)address@hidden     J\334=\203\321  \316\202\323    J\211M\203\344  
ILHK\202\354    NLNKF\204\365   BFD\204\376     
ADr\374=\203'\n\311\201\231!\203'\n`\201\232\210\211`\211\201\233\211\211T\201\234\210$+\210\203<\nM\203<\n\316Y\212Lb\210\323
 \210*KF\204H\nE\205M\nFEBB\202V\n\n\306.\207" [c-record-type-identifiers 
c-record-ref-identifiers save-rec-ref-ids save-rec-type-ids new-style-auto 
cast-end nil c-forward-annotation c-forward-sws looking-at java-mode 
"@[A-Za-z0-9]+" match-data #[nil "\301\302\"\207" [save-match-data-internal 
set-match-data evaporate] 3] t match-string 1 intern-soft 
c-forward-keyword-clause c-forward-type c++-mode "auto" "[=(]" ids found 
c-decl-hangon-kwds c-typedef-decl-kwds c-typeless-decl-kwds prefix maybe 
c-backward-sws skip-syntax-backward "w_" 0 pike-mode "-!%&*+/<=>^|~[]()" "`" 
buffer-substring-no-properties ":~   \n\f" "\\<\\>" 40 3 c-forward-name 
"\\(::\\)" 41 #[nil "\301\302\"\207" [save-match-data-internal set-match-data 
evaporate] 3] "\\s(" (error) scan-sexps (error) ...] 21] (1 nil nil))
* c-forward-decl-or-cast-1(1 nil nil)
  c-just-after-func-arglist-p(1)
  c-guess-basic-syntax()
  c-indent-line()
  c-electric-semi&comma(nil)
  funcall-interactively(c-electric-semi&comma nil)
  call-interactively(c-electric-semi&comma nil nil)
  command-execute(c-electric-semi&comma)


Emacs  : GNU Emacs 25.1.50.1 (x86_64-pc-linux-gnu, X toolkit)
 of 2015-11-26
Package: CC Mode 5.33 (C++/l)
Buffer Style: SiLK
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes 
gen-string-delim gen-comment-delim syntax-properties 1-bit)

current state:
==============
(setq
 c-basic-offset 4
 c-comment-only-line-offset 0
 c-indent-comment-alist '((anchored-comment column . 0) (end-block space . 1)
                          (cpp-end-block space . 2))
 c-indent-comments-syntactically-p nil
 c-block-comment-prefix "* "
 c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+")
                           (other . "//+\\|\\**"))
 c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc)
                       (c-mode . gtkdoc))
 c-cleanup-list '(scope-operator)
 c-hanging-braces-alist '((brace-list-open) (brace-entry-open)
                          (statement-cont) (substatement-open after)
                          (block-close . c-snug-do-while)
                          (extern-lang-open after) (namespace-open after)
                          (module-open after) (composition-open after)
                          (inexpr-class-open after)
                          (inexpr-class-close before) (arglist-cont-nonempty))
 c-hanging-colons-alist nil
 c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
 c-backslash-column 48
 c-backslash-max-column 72
 c-special-indent-hook nil
 c-label-minimum-indentation 1
 c-offsets-alist '((inexpr-class . +)
                   (inexpr-statement . +)
                   (lambda-intro-cont . +)
                   (inlambda . c-lineup-inexpr-block)
                   (template-args-cont c-lineup-template-args +)
                   (incomposition . +)
                   (inmodule . +)
                   (innamespace . 0)
                   (inextern-lang . 0)
                   (composition-close . 0)
                   (module-close . 0)
                   (namespace-close . 0)
                   (extern-lang-close . 0)
                   (composition-open . 0)
                   (module-open . 0)
                   (namespace-open . 0)
                   (extern-lang-open . 0)
                   (objc-method-call-cont
                    c-lineup-ObjC-method-call-colons
                    c-lineup-ObjC-method-call
                    +
                    )
                   (objc-method-args-cont . c-lineup-ObjC-method-args)
                   (objc-method-intro . [0])
                   (friend . 0)
                   (cpp-define-intro c-lineup-cpp-define +)
                   (cpp-macro-cont . +)
                   (cpp-macro . [0])
                   (inclass . +)
                   (stream-op . c-lineup-streamop)
                   (arglist-cont-nonempty
                    c-lineup-gcc-asm-reg
                    c-lineup-arglist
                    )
                   (arglist-cont c-lineup-gcc-asm-reg 0)
                   (comment-intro
                    c-lineup-knr-region-comment
                    c-lineup-comment
                    )
                   (catch-clause . 0)
                   (else-clause . 0)
                   (do-while-closure . 0)
                   (access-label . /)
                   (case-label . *)
                   (substatement . +)
                   (statement-case-intro . *)
                   (statement . 0)
                   (brace-entry-open . 0)
                   (brace-list-entry . 0)
                   (brace-list-intro . +)
                   (brace-list-close . 0)
                   (block-close . 0)
                   (block-open . 0)
                   (inher-cont . c-lineup-multi-inher)
                   (inher-intro . +)
                   (member-init-cont . c-lineup-multi-inher)
                   (member-init-intro . +)
                   (annotation-var-cont . +)
                   (annotation-top-cont . 0)
                   (topmost-intro . 0)
                   (knr-argdecl . 0)
                   (func-decl-cont . +)
                   (inline-close . 0)
                   (class-close . 0)
                   (class-open . 0)
                   (defun-block-intro . +)
                   (defun-close . 0)
                   (defun-open . 0)
                   (c . c-lineup-C-comments)
                   (string . c-lineup-dont-change)
                   (topmost-intro-cont . c-lineup-topmost-intro-cont)
                   (brace-list-open . 0)
                   (inline-open . 0)
                   (arglist-close . +)
                   (arglist-intro . +)
                   (statement-cont . c-lineup-math)
                   (statement-case-open . *)
                   (label . *)
                   (substatement-label . 2)
                   (substatement-open . 0)
                   (knr-argdecl-intro . +)
                   (statement-block-intro . +)
                   )
 c-buffer-is-cc-mode 'c++-mode
 c-tab-always-indent t
 c-syntactic-indentation t
 c-syntactic-indentation-in-macros t
 c-ignore-auto-fill '(string cpp code)
 c-auto-align-backslashes t
 c-backspace-function 'backward-delete-char-untabify
 c-delete-function 'delete-char
 c-electric-pound-behavior nil
 c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
 c-enable-xemacs-performance-kludge-p nil
 c-old-style-variable-behavior nil
 defun-prompt-regexp nil
 tab-width 8
 comment-column 32
 parse-sexp-ignore-comments t
 parse-sexp-lookup-properties t
 auto-fill-function nil
 comment-multi-line t
 comment-start-skip "\\(//+\\|/\\*+\\)\\s *"
 fill-prefix nil
 fill-column 70
 paragraph-start "[     ]*\\(//+\\|\\**\\)[     ]*$\\|^\f"
 adaptive-fill-mode t
 adaptive-fill-regexp "[        ]*\\(//+\\|\\**\\)[     ]*\\([  
]*\\([-–!|#%;>*·•‣⁃◦]+[         ]*\\)*\\)"
 )

-- 
Michael Welsh Duggan
(address@hidden)



--- End Message ---
--- Begin Message --- Subject: Re: bug#22156: CC Mode 5.33 (C++/l); Strange end-of-buffer error Date: Tue, 22 Dec 2015 16:39:56 +0000 User-agent: Mutt/1.5.23 (2014-03-12)
Hello, Michael.

On Tue, Dec 22, 2015 at 01:13:38AM -0500, Michael Welsh Duggan wrote:
> Alan Mackenzie <address@hidden> writes:

[ .... ]

> >> Emacs  : GNU Emacs 25.1.50.1 (x86_64-pc-linux-gnu, X toolkit)
> >>  of 2015-11-26
> >> Package: CC Mode 5.33 (C++/l)
> >> Buffer Style: SiLK
> >> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes
> >> gen-string-delim gen-comment-delim syntax-properties 1-bit)

> > [ Dump of CC Mode's state snipped, but appreciated. ]

> > The cause was a simple coding error: after searching forward (for a
> > closing >), c-forward-<>-arglist-recur failed to set point back to the
> > starting place before trying the next possibility.

> > Here is a patch which I hope fixes things.  Please let me know whether
> > or not it works satisfactorily.

> I can confirm that this seems to fix the problem.

Thanks.  I've committed the fix (both to SourceForge and savannah
emacs-25 branch) and am marking this bug as closed.

> -- 
> Michael Welsh Duggan
> (address@hidden)

-- 
Alan Mackenzie (Nuremberg, Germany).


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]