.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .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" '' . ds C` . ds C' '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 (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Dpkg::Changelog::Parse 3" .TH Dpkg::Changelog::Parse 3 "2016-04-25" "1.17.27" "libdpkg-perl" .\" 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" Dpkg::Changelog::Parse \- generic changelog parser for dpkg\-parsechangelog .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides a single function \fIchangelog_parse()\fR which reproduces all the features of dpkg-parsechangelog. .SS "\s-1FUNCTIONS\s0" .IX Subsection "FUNCTIONS" .ie n .IP "my $fields = changelog_parse(%opt)" 4 .el .IP "my \f(CW$fields\fR = changelog_parse(%opt)" 4 .IX Item "my $fields = changelog_parse(%opt)" This function will parse a changelog. In list context, it return as many Dpkg::Control object as the parser did output. In scalar context, it will return only the first one. If the parser didn't return any data, it will return an empty in list context or undef on scalar context. If the parser failed, it will die. .Sp The parsing itself is done by an external program (searched in the following list of directories: \f(CW$opt\fR{libdir}, \&\fI/usr/local/lib/dpkg/parsechangelog\fR, \fI/usr/lib/dpkg/parsechangelog\fR) That program is named according to the format that it's able to parse. By default it's either \*(L"debian\*(R" or the format name lookep up in the 40 last lines of the changelog itself (extracted with this perl regular expression \&\*(L"\eschangelog\-format:\es+([0\-9a\-z]+)\eW\*(R"). But it can be overridden with \f(CW$opt\fR{changelogformat}. The program expects the content of the changelog file on its standard input. .Sp The changelog file that is parsed is \fIdebian/changelog\fR by default but it can be overridden with \f(CW$opt\fR{file}. .Sp All the other keys in \f(CW%opt\fR are forwarded as parameter to the external parser. If the key starts with \*(L"\-\*(R", it's passed as is. If not, it's passed as \*(L"\-\-\*(R". If the value of the corresponding hash entry is defined, then it's passed as the parameter that follows. .SH "CHANGES" .IX Header "CHANGES" .SS "Version 1.00" .IX Subsection "Version 1.00" Mark the module as public.