* bug#9447: 24.0.50; woman loses single quotes @ 2011-09-06 1:07 Eric Hanchrow 2011-09-07 0:37 ` Glenn Morris 0 siblings, 1 reply; 8+ messages in thread From: Eric Hanchrow @ 2011-09-06 1:07 UTC (permalink / raw) To: 9447 I typed M-x woman RET Moose::Manual::Classes RET. I saw (among other text) this: package Person; use Moose; has ssn => ( is => rw ); That looks perfectly plausible. But I eventually realized that there are supposed to be single-quotes around the "ssn" and the "rw". M-x man gets it right (although for some reason it has some blank lines): package Person; use Moose; has 'ssn' => ( is => 'rw' ); In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.4) of 2011-08-22 on erich-laptop Windowing system distributor `The X.Org Foundation', version 11.0.11001000 Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_US.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: WoMan Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t global-auto-revert-mode: t ido-everywhere: t display-time-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-u C-n C-u C-n C-u C-n C-u C-n C-n C-n M-0 C-l C-v C-n M-0 C-l SPC C-v C-v C-l C-v SPC SPC SPC C-x b s h e <return> C-c C-p M-0 C-l C-v C-l C-v C-v C-v C-l M-> C-x b <return> C-u C-n C-u C-n C-u C-n C-u C-n M-0 C-l C-u C-u C-n C-u C-n C-u C-n M-0 C-l C-u C-u C-n C-u C-n M-0 C-l C-u C-n C-u C-n C-n C-n M-m <return> C-u C-u C-n C-u C-n C-u C-n C-u C-n C-u C-n M-0 C-l C-u C-u C-n C-u C-n M-0 C-l C-v C-v C-l q C-e M-b <return> C-v C-v C-x 2 C-x C-b C-x 0 C-u C-u C-n C-u C-n C-u C-n C-l M-m <return> C-u C-n C-u C-n C-n C-n C-n C-n C-n M-0 C-l C-v C-v C-v C-v C-v C-v C-v q C-n C-n C-n C-n <return> C-u C-u C-n C-u C-n C-u C-n C-p C-p C-SPC C-n C-n C-n M-w C-/ C-x C-j C-s m o o s e : : m a n C-w : : c l C-e C-SPC M-b M-b M-b M-b M-b M-w C-x b s h e <return> d l o c a t e SPC C-y <return> C-p C-a C-M-SPC M-w M-> a p t i t u s <backspace> d e SPC s h o w SPC C-y <return> C-c C-p C-n C-n C-n C-n C-b C-b C-SPC M-b M-b M-w M-> C-x b C-s <return> M-x m a n <return> M-p M-p M-n C-e : : M a n <tab> : : C l a s s <tab> <return> C-x o C-s s s n C-a C-x o C-p C-p C-p M-0 C-l M-x r e p o r t - e m a c s - b u g <return> Recent messages: uncompressing Moose::Manual::Unsweetened.3pm.gz...done WoMan formatting buffer...done in 0.023766 seconds Mark set /usr/share/man/man3/ Mark saved where search started Mark set [7 times] Invoking man Moose::Manual::Classes in the background Please wait: formatting the Moose::Manual::Classes man page... Moose::Manual::Classes man page formatted Mark saved where search started Load-path shadows: ~/.emacs.d/custom hides /usr/local/src/emacs-git/master/lisp/custom Features: (shadow sort mail-extr message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader emacsbug tabify rect cperl-mode vc-dir ewoc vc ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff vc-dispatcher disp-table jka-compr dabbrev pcmpl-unix shell pcomplete dired-aux multi-isearch epa-file epa epg epg-config tramp tramp-compat format-spec tramp-loaddefs ffap js2-mode-autoloads swank-clojure-autoloads clojure-mode-autoloads slime-repl-autoloads slime-autoloads package tabulated-list ibuf-ext scribble woman man midnight uniquify warnings magit diff-mode log-edit pcvs-util add-log magit-bisect magit-key-mode vc-git autorevert paste-to-dropbox ansi-color geiser-racket geiser-guile geiser-repl geiser-doc geiser-compile geiser-debug geiser-menu geiser-company geiser-autodoc advice advice-preload eldoc info-look info geiser-edit etags geiser-completion easy-mmode geiser-eval geiser-connection tq geiser-syntax scheme geiser-log derived geiser-popup view geiser-impl help-fns geiser-custom geiser-base geiser path server starttls smtpmail auth-source eieio byte-opt bytecomp byte-compile cconv macroexp assoc gnus-util password-cache sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils grep compile comint ring cl find-func ibuf-macs ibuffer ido dired-x easymenu dired regexp-opt edmacro kmacro rx autoinsert time protbuf time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-06 1:07 bug#9447: 24.0.50; woman loses single quotes Eric Hanchrow @ 2011-09-07 0:37 ` Glenn Morris 2011-09-09 6:48 ` Glenn Morris 0 siblings, 1 reply; 8+ messages in thread From: Glenn Morris @ 2011-09-07 0:37 UTC (permalink / raw) To: 9447; +Cc: Eric Hanchrow [-- Attachment #1: Type: text/plain, Size: 372 bytes --] The man page has a fairly complicated header, and isn't using plain quotes (source attached). WoMan complains: ** Undefined register F defaulted to 0. ** if v -- unrecognized condition name rejected! ** if v -- unrecognized condition name rejected! ** Undefined string Aq not interpolated! ** Unknown font CW. ** rm #[ #] #H #V #F C request ignored! [-- Attachment #2: Moose::Manual::Classes.3p --] [-- Type: application/octet-stream, Size: 8159 bytes --] .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Moose::Manual::Classes 3p" .TH Moose::Manual::Classes 3p "2009-02-03" "perl v5.10.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Moose::Manual::Classes \- Making your classes use Moose (and subclassing) .SH "USING MOOSE" .IX Header "USING MOOSE" Using Moose is very simple, you just \f(CW\*(C`use Moose\*(C'\fR: .PP .Vb 1 \& package Person; \& \& use Moose; .Ve .PP That's it, you've made a class with Moose! .PP There's actually a lot going on here under the hood, so let's step through it. .PP When you load Moose, a bunch of sugar functions are exported into your class. These include things like \f(CW\*(C`extends\*(C'\fR, \f(CW\*(C`has\*(C'\fR, \f(CW\*(C`with\*(C'\fR, and more. These functions are what you use to define your class. For example, you might define an attribute ... .PP .Vb 1 \& package Person; \& \& use Moose; \& \& has \*(Aqssn\*(Aq => ( is => \*(Aqrw\*(Aq ); .Ve .PP Attributes are described in the Moose::Manual::Attributes documentation. .PP Loading Moose also turns enables \f(CW\*(C`strict\*(C'\fR and \f(CW\*(C`warnings\*(C'\fR pragmas in your class. .PP When you load Moose, your class will become a subclass of Moose::Object. The Moose::Object class provides a default constructor, destructor, as well as object construction helper methods. You can read more about this in the Moose::Manual::Construction document. .PP As a convenience, Moose creates a new class type for your class. See the Moose::Manual::Types document to learn more about types. .PP It also creates a Moose::Meta::Class object for your class. This metaclass object is now available by calling a \f(CW\*(C`meta\*(C'\fR method on your class, for example \f(CW\*(C`Person\->meta\*(C'\fR. .PP The metaclass object provides an introspection \s-1API\s0 for your class. It is also used by Moose itself under the hood to add attributes, define parent classes, and so on. In fact, all of Moose's sugar does the real work by calling methods on this metaclass object (and other meta \s-1API\s0 objects). .SH "SUBCLASSING" .IX Header "SUBCLASSING" Moose provides a simple sugar function for declaring your parent classes, \f(CW\*(C`extends\*(C'\fR: .PP .Vb 1 \& package User; \& \& use Moose; \& \& extends \*(AqPerson\*(Aq; \& \& has \*(Aqusername\*(Aq => ( is => \*(Aqrw\*(Aq ); .Ve .PP Note that each call to \f(CW\*(C`extends\*(C'\fR will \fIreset\fR your parents. For multiple inheritance you must provide all the parents at once, \&\f(CW\*(C`extends \*(AqFoo\*(Aq, \*(AqBar\*(Aq\*(C'\fR. .PP You can use Moose to extend a non-Moose parent. However, when you do this, you will inherit the parent class's constructor (assuming it is also called \f(CW\*(C`new\*(C'\fR). In that case, you will have to take care of initializing attributes manually, either in the parent's constructor, or in your subclass, and you will lose a lot of Moose magic. .SH "NO MOOSE" .IX Header "NO MOOSE" Moose also allows you to remove its sugar functions from your class's namespace. We recommend that you take advantage of this feature, since it just makes your classes \*(L"cleaner\*(R". You can do this by simply adding \&\f(CW\*(C`no Moose\*(C'\fR at the end of your module file. .PP This deletes Moose's sugar functions from your class's namespace, so that \f(CW\*(C`Person\->can(\*(Aqhas\*(Aq)\*(C'\fR will no longer return true. .SH "MAKING IT FASTER" .IX Header "MAKING IT FASTER" Moose has a feature called \*(L"immutabilization\*(R" that you can use to greatly speed up your classes at runtime. However, using it does incur a cost when your class is first being loaded. When you make your class immutable you tell Moose that you will not be changing it in the future. You will not adding any more attributes, methods, roles, etc. .PP This allows Moose to generate code specific to your class. In particular, it creates an \*(L"inline\*(R" constructor, making object construction much faster. .PP To make your class immutable you simply call \f(CW\*(C`make_immutable\*(C'\fR on your class's metaclass object. .PP .Vb 1 \& _\|_PACKAGE_\|_\->meta\->make_immutable; .Ve .SH "AUTHOR" .IX Header "AUTHOR" Dave Rolsky <autarch@urth.org> .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2008\-2009 by Infinity Interactive, Inc. .PP <http://www.iinteractive.com> .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-07 0:37 ` Glenn Morris @ 2011-09-09 6:48 ` Glenn Morris 2011-09-09 7:24 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Glenn Morris @ 2011-09-09 6:48 UTC (permalink / raw) To: 9447; +Cc: Eric Hanchrow close 9447 24.1 stop I think I fixed this. AFAICS, woman-if-body, which was unchanged since woman.el was introduced, contained code that made no sense. A minimal example of a file showing the problem is anything with more than one .ie block, eg: .ie n .ds Ab x .el .ds Ab y .ie \n(.g .ds Aq \(aq .el .ds Aq ' .TH Moose .nh .SH "NAME" for example .PP \& has \*(Aqssn\*(Aq I sort of wonder what the point of woman.el is. It has a punny name, but is basically a partial, buggy, reimplementation of a very standard external program that is surely installed on any system where man pages are used. Eg I note that it doesn't render man.1 correctly on my current system, with the current trunk doing a worse job than Emacs 23.3 does. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-09 6:48 ` Glenn Morris @ 2011-09-09 7:24 ` Eli Zaretskii 2011-09-09 7:34 ` Glenn Morris 0 siblings, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2011-09-09 7:24 UTC (permalink / raw) To: Glenn Morris; +Cc: 9447, eric.hanchrow > From: Glenn Morris <rgm@gnu.org> > Date: Fri, 09 Sep 2011 02:48:47 -0400 > Cc: Eric Hanchrow <eric.hanchrow@gmail.com> > > I sort of wonder what the point of woman.el is. It has a punny name, but > is basically a partial, buggy, reimplementation of a very standard > external program that is surely installed on any system where man pages > are used. You obviously forget the use case of Emacs on MS-Windows. Man pages come with many ported packages (including Emacs ;-), but I know of only 2 decent version of the `man' program available for Windows: one requires Cygwin to be installed, the other was written by yours truly, and is not available as a Windows binary in any public site that I know of (although the sources are available under GPL and can be easily compiled on Windows). Thus woman.el. > Eg I note that it doesn't render man.1 correctly on my current > system, with the current trunk doing a worse job than Emacs 23.3 does. Patches are very welcome. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-09 7:24 ` Eli Zaretskii @ 2011-09-09 7:34 ` Glenn Morris 2011-09-09 7:58 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Glenn Morris @ 2011-09-09 7:34 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 9447, eric.hanchrow Eli Zaretskii wrote: > You obviously forget the use case of Emacs on MS-Windows. If only I could... > Patches are very welcome. The patch is to revert r103011, as commented in bug#7843. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-09 7:34 ` Glenn Morris @ 2011-09-09 7:58 ` Eli Zaretskii 2011-09-09 12:25 ` Andy Moreton 0 siblings, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2011-09-09 7:58 UTC (permalink / raw) To: Glenn Morris; +Cc: 9447, eric.hanchrow > From: Glenn Morris <rgm@gnu.org> > Cc: 9447@debbugs.gnu.org, eric.hanchrow@gmail.com > Date: Fri, 09 Sep 2011 03:34:00 -0400 > > Eli Zaretskii wrote: > > > You obviously forget the use case of Emacs on MS-Windows. > > If only I could... And btw, man.el doesn't work on Windows anyway, even if you have an external `man' program, due to its quoting that assumes a Posix shell. I tried to fix that once, but gave up after a few hours, telling myself "they always have woman.el...". ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-09 7:58 ` Eli Zaretskii @ 2011-09-09 12:25 ` Andy Moreton 2011-09-09 13:56 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Andy Moreton @ 2011-09-09 12:25 UTC (permalink / raw) To: 9447 On Fri 09 Sep 2011, Eli Zaretskii wrote: >> From: Glenn Morris <rgm@gnu.org> >> Cc: 9447@debbugs.gnu.org, eric.hanchrow@gmail.com >> Date: Fri, 09 Sep 2011 03:34:00 -0400 >> >> Eli Zaretskii wrote: >> >> > You obviously forget the use case of Emacs on MS-Windows. >> >> If only I could... > > And btw, man.el doesn't work on Windows anyway, even if you have an > external `man' program, due to its quoting that assumes a Posix shell. > I tried to fix that once, but gave up after a few hours, telling > myself "they always have woman.el...". Works perfectly well with Cygwin though :-) AndyM ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#9447: 24.0.50; woman loses single quotes 2011-09-09 12:25 ` Andy Moreton @ 2011-09-09 13:56 ` Eli Zaretskii 0 siblings, 0 replies; 8+ messages in thread From: Eli Zaretskii @ 2011-09-09 13:56 UTC (permalink / raw) To: Andy Moreton; +Cc: 9447 > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Fri, 09 Sep 2011 13:25:53 +0100 > > > And btw, man.el doesn't work on Windows anyway, even if you have an > > external `man' program, due to its quoting that assumes a Posix shell. > > I tried to fix that once, but gave up after a few hours, telling > > myself "they always have woman.el...". > > Works perfectly well with Cygwin though :-) Which part of "assumes a Posix shell" did I fail to make clear? ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-09-09 13:56 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-09-06 1:07 bug#9447: 24.0.50; woman loses single quotes Eric Hanchrow 2011-09-07 0:37 ` Glenn Morris 2011-09-09 6:48 ` Glenn Morris 2011-09-09 7:24 ` Eli Zaretskii 2011-09-09 7:34 ` Glenn Morris 2011-09-09 7:58 ` Eli Zaretskii 2011-09-09 12:25 ` Andy Moreton 2011-09-09 13:56 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).