mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-10-29 05:40:23 -04:00 
			
		
		
		
	Add xmltoman to the distribution. This saves pulling in an external dependancy
This commit is contained in:
		
							parent
							
								
									5099ab7b8b
								
							
						
					
					
						commit
						517727ebdc
					
				
					 3 changed files with 231 additions and 43 deletions
				
			
		
							
								
								
									
										26
									
								
								configure.ac
									
										
									
									
									
								
							
							
						
						
									
										26
									
								
								configure.ac
									
										
									
									
									
								
							|  | @ -1009,32 +1009,6 @@ AC_ARG_ENABLE(manpages, | |||
|   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;; | ||||
| esac],[manpages=yes]) | ||||
| 
 | ||||
| if test x$manpages = xyes ; then | ||||
|     # | ||||
|     # XMLTOMAN manpage generation | ||||
|     # | ||||
|     AC_ARG_ENABLE(xmltoman, | ||||
|     AS_HELP_STRING([--disable-xmltoman],[Enable rebuilding of man pages with xmltoman]), | ||||
|     [case "${enableval}" in | ||||
|       yes) xmltoman=yes ;; | ||||
|       no)  xmltoman=no ;; | ||||
|       *) AC_MSG_ERROR([bad value ${enableval} for --disable-xmltoman]) ;; | ||||
|     esac],[xmltoman=yes]) | ||||
| 
 | ||||
|     if test x$xmltoman = xyes ; then | ||||
|         AC_CHECK_PROG(have_xmltoman, xmltoman, yes, no) | ||||
|     fi | ||||
| 
 | ||||
|     if test x$have_xmltoman = xno -o x$xmltoman = xno; then | ||||
|         if ! test -e man/pulseaudio.1 ; then | ||||
|             AC_MSG_ERROR([*** xmltoman was not found or was disabled, it is required to build the manpages as they have not been pre-built, install xmltoman, pass --disable-manpages or dont pass --disable-xmltoman]) | ||||
|             exit 1 | ||||
|         fi | ||||
|         AC_MSG_WARN([*** Not rebuilding man pages as xmltoman is not found ***]) | ||||
|         xmltoman=no | ||||
|     fi | ||||
| fi | ||||
| AM_CONDITIONAL([USE_XMLTOMAN], [test "x$xmltoman" = xyes]) | ||||
| AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes]) | ||||
| 
 | ||||
| #### PulseAudio system group & user  ##### | ||||
|  |  | |||
|  | @ -117,49 +117,47 @@ default.pa.5.xml: default.pa.5.xml.in Makefile | |||
| 	    -e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \ | ||||
|             -e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@ | ||||
| 
 | ||||
| if USE_XMLTOMAN | ||||
| 
 | ||||
| CLEANFILES += \ | ||||
| 	$(man_MANS) | ||||
| 
 | ||||
| pulseaudio.1: pulseaudio.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| esdcompat.1: esdcompat.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pax11publish.1: pax11publish.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| paplay.1: paplay.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pacat.1: pacat.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pacmd.1: pacmd.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pactl.1: pactl.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pasuspender.1: pasuspender.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| padsp.1: padsp.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pabrowse.1: pabrowse.1.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pulse-daemon.conf.5: pulse-daemon.conf.5.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| pulse-client.conf.5: pulse-client.conf.5.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| default.pa.5: default.pa.5.xml Makefile | ||||
| 	xmltoman $< > $@ || rm -f $@ | ||||
| 	perl xmltoman $< > $@ || rm -f $@ | ||||
| 
 | ||||
| xmllint: $(noinst_DATA) | ||||
| 	for f in $(noinst_DATA) ; do \ | ||||
|  | @ -168,8 +166,6 @@ xmllint: $(noinst_DATA) | |||
| 
 | ||||
| endif | ||||
| 
 | ||||
| endif | ||||
| 
 | ||||
| EXTRA_DIST = \ | ||||
| 	$(man_MANS) \ | ||||
| 	pulseaudio.1.xml.in \ | ||||
|  | @ -185,6 +181,7 @@ EXTRA_DIST = \ | |||
| 	pulse-daemon.conf.5.xml.in \ | ||||
| 	pulse-client.conf.5.xml.in \ | ||||
| 	default.pa.5.xml.in \ | ||||
| 	xmltoman \ | ||||
| 	xmltoman.css \ | ||||
| 	xmltoman.xsl \ | ||||
| 	xmltoman.dtd | ||||
|  |  | |||
							
								
								
									
										217
									
								
								man/xmltoman
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										217
									
								
								man/xmltoman
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,217 @@ | |||
| #!/usr/bin/perl -w | ||||
| 
 | ||||
| #    xmltoman - simple xml to man converter | ||||
| #    Copyright (C) 2000-2002 Oliver Kurth <oku@masqmail.cx> | ||||
| #                       2003 Lennart Poettering <mzkzygbzna@0pointer.de> | ||||
| # | ||||
| #    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 | ||||
| #    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; if not, write to the Free Software | ||||
| #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
| 
 | ||||
| use XML::Parser; | ||||
| 
 | ||||
| my $buffer = ""; | ||||
| my $break_req = 0; | ||||
| 
 | ||||
| my @stack; | ||||
| my $stack_n = 0; | ||||
| 
 | ||||
| my $para = 0;  | ||||
| 
 | ||||
| sub out { | ||||
|     my $t = shift; | ||||
| 
 | ||||
|     if ($t ne "") { | ||||
|         print $t; | ||||
|         $break_req=1; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| sub out_buf { | ||||
|     local $_; | ||||
| 
 | ||||
|     my $space = shift; | ||||
| 
 | ||||
|     $_ = $buffer; | ||||
|     $buffer = ""; | ||||
| 
 | ||||
|     s/\n/\ /gm; | ||||
|     s/\s+/\ /gm; | ||||
|     s/^\s*//gm if (!$break_req); | ||||
|     s/^\s$//gm if (!$space); | ||||
|      | ||||
|     out($_); | ||||
| } | ||||
| 
 | ||||
| sub stack_push { | ||||
|     my $a = shift; | ||||
| 
 | ||||
|     if ($stack_n == 0 or $a ne $stack[$stack_n-1]) { | ||||
|         out("\\fB") if $a =~ /^bold$/; | ||||
|         out("\\fI") if $a =~ /^italic$/; | ||||
|     } | ||||
| 
 | ||||
|     $stack[$stack_n++] = $a; | ||||
| } | ||||
| 
 | ||||
| sub stack_pop { | ||||
|     local $_; | ||||
|      | ||||
|     if ($stack_n > 0) { | ||||
|         $stack_n--; | ||||
| 
 | ||||
|         if ($stack_n > 0) { | ||||
|             $a = $stack[$stack_n-1]; | ||||
|             out("\\fB") if $a =~ /^bold$/; | ||||
|             out("\\fI") if $a =~ /^italic$/; | ||||
|         } else { | ||||
|             out("\\f1"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| sub handle_start { | ||||
|     local $_; | ||||
|     my $expat = shift; | ||||
|     my $element = shift; | ||||
|     my %attr = @_; | ||||
|      | ||||
|     $_ = $element; | ||||
| 
 | ||||
|     if (/^manpage$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".TH " . $attr{name} . " " . $attr{section} . " User Manuals\n"; | ||||
|         print ".SH NAME\n"; | ||||
|         print $attr{name} . " \\- " . $attr{desc} . "\n"; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^synopsis$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".SH SYNOPSIS\n"; | ||||
|         $section = $element; | ||||
|         $break_req = 0; | ||||
|         stack_push("bold"); | ||||
|     } elsif (/^description$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".SH DESCRIPTION\n"; | ||||
|         $section = $element; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^options$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".SH OPTIONS\n"; | ||||
|         $section = $element; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^seealso$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".SH SEE ALSO\n"; | ||||
|         $section = $element; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^section$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".SH ".uc($attr{name})."\n"; | ||||
|         $section = $attr{name}; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^option$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         print ".TP\n"; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^p$/ or /^cmd$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($para); | ||||
|         $break_req = 0; | ||||
|     } elsif (/^optdesc$/) { | ||||
|         out_buf(0); | ||||
|         $break_req = 0; | ||||
|     } elsif (/^arg$/ or /^file$/) { | ||||
|         out_buf(1); | ||||
|         stack_push("italic"); | ||||
|     } elsif (/^opt$/) { | ||||
|         out_buf(1); | ||||
|         stack_push("bold"); | ||||
|     } elsif (/^manref$/) { | ||||
|         out_buf(1); | ||||
|         stack_push("bold"); | ||||
|         out($attr{name} ."(" . $attr{section} . ")"); | ||||
|         stack_pop(); | ||||
|     } elsif (/^url$/) { | ||||
|         out_buf(1); | ||||
|         stack_push("bold"); | ||||
|         out($attr{href}); | ||||
|         stack_pop(); | ||||
|     }; | ||||
| 
 | ||||
|     $para = 0; | ||||
| } | ||||
| 
 | ||||
| sub handle_end { | ||||
|     local $_; | ||||
|     my $expat = shift; | ||||
|     my $element = shift; | ||||
|      | ||||
|     $_ = $element; | ||||
| 
 | ||||
|     $para = 0; | ||||
| 
 | ||||
|     if (/^description$/ or /^options$/ or /^section$/ or /^seealso$/) { | ||||
|         out_buf(0); | ||||
|     } elsif (/^p$/ or /^cmd$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if ($break_req); | ||||
|         $para = 1; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^synopsis$/) { | ||||
|         out_buf(0); | ||||
|         stack_pop(); | ||||
|     } elsif (/^opt$/ or /^arg$/ or /^file$/) { | ||||
|         out_buf(1); | ||||
|         stack_pop(); | ||||
|     } elsif (/^manpage$/) { | ||||
|         out_buf(0); | ||||
|         print "\n" if $break_req; | ||||
|         $break_req = 0; | ||||
|     } elsif (/^optdesc$/ or /^cmd$/ or /^option$/) { | ||||
|         # Simply ignore | ||||
|     } else { | ||||
|         out_buf(1); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| sub handle_char { | ||||
|     local $_; | ||||
|     my $expat = shift; | ||||
|     my $string = shift; | ||||
|      | ||||
|     $buffer .= $string; | ||||
| } | ||||
| 
 | ||||
| MAIN:{ | ||||
|     my $file = shift; | ||||
| 
 | ||||
|     if (!$file) { | ||||
|         print STDERR "You need to specify a file to parse\n"; | ||||
|         exit(1); | ||||
|     } | ||||
|      | ||||
|     my $parser = new XML::Parser(Handlers => { | ||||
|         Start => \&handle_start,  | ||||
|         End => \&handle_end, | ||||
|         Char => \&handle_char}); | ||||
| 
 | ||||
|     $parser->parsefile($file, ProtocolEncoding => 'ISO-8859-1'); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Colin Guthrie
						Colin Guthrie