1# bdefinitions.perl 2# by Philippe Chauvat <philippe@chauvat.eu> 3# This file is designed to support the builing of Bacula (http://www.bacula.org) and/or 4# Bacula Enterprise Edition (http://www.baculasystems.com) manuals. 5# Support of the bdefinitions.sty Bacula package 6# ====================================================================== 7# Does not require any package => do_require_package('') ; 8 9 10 11# Package Options 12#No package options 13#sub do_bdefinitions_option {} 14 15# ====================================================================== 16sub bnext_arg { # Modifies $_ 17 # 18 # This is a whole duplicate of the x_next_arg function 19 # defined in the graphics-support.perl file. 20 # I renamed it to be: 21 # a) consistent with the other definitions 22 # b) be sure there will be no conflict with anything else. 23 my $arg; 24 &missing_braces unless ((s/$next_pair_pr_rx/$arg=$2;''/e) 25 ||(s/$next_pair_rx/$arg=$2;''/e)); 26 $arg; 27} 28 29sub do_cmd_bfilename { 30 local($_)=@_; 31 my $file = &bnext_arg(); 32 &styled_text_chunk('','','','','','bfilename',@_) ; 33} 34sub bfilename { 35 local($btext)= @_ ; 36 join('','<span class="bfilename">', $btext, '</span>') ; 37} 38 39sub do_cmd_btable { 40 local($_)=@_; 41 my $file = &bnext_arg(); 42 &styled_text_chunk('','','','','','btable',@_) ; 43} 44sub btable { 45 local($btext)= @_ ; 46 join('','<span class="btable">', $btext, '</span>') ; 47} 48 49sub do_cmd_bdirectoryname { 50 local($_)=@_; 51 my $file = &bnext_arg(); 52 &styled_text_chunk('','','','','','bdirectoryname',@_) ; 53} 54sub bdirectoryname { 55 local($btext)= @_ ; 56 join('','<span class="bdirectoryname">', $btext, '</span>') ; 57} 58 59sub do_cmd_bdirectory { 60 local($_)=@_; 61 my $file = &bnext_arg() ; 62 &styled_text_chunk('','','','','','bdirectory',@_) ; 63} 64sub bdirectory { 65 local($btext)= @_ ; 66 join(' ',eval("&bdirectoryname(\$btext)"),'directory') ; 67} 68 69sub do_cmd_bdirectivename { 70 local($_)=@_; 71 my $file = &bnext_arg(); 72 &styled_text_chunk('','','','','','bdirectivename',@_) ; 73} 74sub bdirectivename { 75 local($btext)=@_; 76 join('','<span class="bdirectivename">', $btext, '</span>') ; 77} 78sub do_cmd_bdirective { 79 local($_)=@_; 80 my $file = &bnext_arg() ; 81 &styled_text_chunk('','','','','','bdirective',@_) ; 82} 83sub bdirective { 84 local($btext)= @_ ; 85 join(' ',eval("&bdirectivename(\$btext)"),'directive') ; 86} 87 88sub do_cmd_bPool { 89 join('','<span class="bresourcename">','Pool','</span>',$_[0]) ; 90} 91sub do_cmd_bConsole { 92 join('','<span class="bresourcename">','Console','</span>',$_[0]) ; 93} 94sub do_cmd_bCatalog { 95 join('','<span class="bresourcename">','Catalog','</span>',$_[0]) ; 96} 97sub do_cmd_bJob { 98 join('','<span class="bresourcename">','Job','</span>',$_[0]) ; 99} 100sub do_cmd_bVolume { 101 join('','<span class="bresourcename">','Volume','</span>',$_[0]) ; 102} 103sub do_cmd_bDevice { 104 join('','<span class="bresourcename">','Device','</span>',$_[0]) ; 105} 106sub do_cmd_bFileSet { 107 join('','<span class="bresourcename">','FileSet','</span>',$_[0]) ; 108} 109sub do_cmd_bStorage { 110 join('','<span class="bresourcename">','Storage','</span>',$_[0]) ; 111} 112sub do_cmd_bJobId { 113 join('','<span class="bresourcename">','JobId','</span>',$_[0]) ; 114} 115sub do_cmd_bClient { 116 join('','<span class="bresourcename">','Client','</span>',$_[0]) ; 117} 118sub do_cmd_bDirector { 119 join('','<span class="bdaemon">','Director','</span>',$_[0]) ; 120} 121sub do_cmd_bconsolename { 122 join('','<span class="btool">','bconsole','</span>',$_[0]) ; 123} 124sub do_cmd_bconsole { 125 join('',bbacula(),'<span class="bcommandname">',' ','Console','</span>',$_[0]) ; 126} 127sub do_cmd_bstructurename { 128 local($_)=@_; 129 my $file = &bnext_arg(); 130 &styled_text_chunk('','','','','','bstructurename',@_) ; 131} 132sub bstructurename { 133 local($btext)= @_ ; 134 join('','<span class="bstructurename">',$btext,'</span>') ; 135} 136sub do_cmd_bstructure { 137 local($_)=@_; 138 my $mybstructure = &bnext_arg() ; 139 &styled_text_chunk('','','','','','bstructure',@_) ; 140} 141sub bstructure { 142 local($btext)= @_ ; 143 join(' ',eval("&bstructurename(\$btext)"),'structure') ; 144} 145sub do_cmd_bresourcename { 146 local($_)=@_; 147 my $file = &bnext_arg(); 148 &styled_text_chunk('SPAN','CLASS="bresourcename"','','','','',@_) ; 149} 150sub bresourcename { 151 local($mybresource) = @_ ; 152 join('','<span class="bresourcename">',$mybresource,'</span>') ; 153} 154sub bstatus { 155 local($mybstatus) = @_ ; 156 join('','<span class="bstatus">',$mybstatus,'</span>') ; 157} 158sub bjobtype { 159 local($mybjobtype) = @_ ; 160 join('','<span class="bjobtype">',$mybjobtype,'</span>') ; 161} 162sub do_cmd_bresource { 163 local($_)=@_; 164 my $file = &bnext_arg() ; 165 &styled_text_chunk('','','','','','bresource',@_) ; 166} 167sub bresource { 168 local($btext)= @_ ; 169 join(' ',eval("&bresourcename(\$btext)"),'resource') ; 170} 171sub do_cmd_bresources { 172 local($_)=@_; 173 my $file = &bnext_arg() ; 174 &styled_text_chunk('','','','','','bresources',@_) ; 175} 176sub bresources { 177 local($btext)= @_ ; 178 join('',eval("&bresource(\$btext)"),'s') ; 179} 180sub do_cmd_bresourceq { 181 local($_)=@_; 182 my $file = &bnext_arg() ; 183 &styled_text_chunk('','','','','','bresourceq',@_) ; 184} 185sub bresourceq { 186 local($btext)= @_ ; 187 $btext = join('',$btext,"'s") ; 188 join(' ',eval("&bresourcename(\$btext)"),'resource') ; 189} 190sub do_cmd_bcommandname { 191 local($_)=@_; 192 my $file = &bnext_arg(); 193 &styled_text_chunk('','','','','','bcommandname',@_) ; 194} 195sub bcommandname { 196 local($mybcommand) = @_ ; 197 join('','<span class="bcommandname">',$mybcommand,'</span>') ; 198} 199sub do_cmd_bcommand { 200 local($_)=@_; 201 my $file = &bnext_arg() ; 202 &styled_text_chunk('','','','','','bcommand',@_) ; 203} 204sub bcommand { 205 local($btext)= @_ ; 206 join('',eval("&bcommandname(\$btext)"),' command') ; 207} 208sub do_cmd_btool { 209 local($_)=@_; 210 my $tool = &bnext_arg() ; 211 &styled_text_chunk('','','','','','btool',@_) ; 212} 213sub btool { 214 local($btext) = @_; 215 print "PCT: btool: text: $text\n" if ($VERBOSITY > 10) ; 216 join('','<span class="btool">',$btext,'</span>') ; 217} 218sub do_cmd_bbracket { 219 local($_)=@_; 220 my $bracket = &bnext_arg() ; 221 &styled_text_chunk('','','','','','bbracket',@_) ; 222} 223sub bbracket { 224 local($btext)= @_ ; 225 join('','<span class="bbracket"><',$btext,'></span>') ; 226} 227sub do_cmd_bvalue { 228 local($_)=@_; 229 my $value = &bnext_arg(); 230 &styled_text_chunk('','','','','','bvalue',@_) ; 231} 232sub bvalue { 233 local($btext) = @_; 234 join('','<span class="bvalue">',$btext,'</span>') ; 235} 236sub do_cmd_bhighlight { 237 local($_)=@_; 238 my $value = &bnext_arg(); 239 &styled_text_chunk('','','','','','bhighlight',@_) ; 240} 241sub bhighlight { 242 local($btext) = @_; 243 join('','<span class="bhighlight">',$btext,'</span>') ; 244} 245sub do_cmd_bkeyword { 246 local($_)=@_; 247 my $value = &bnext_arg(); 248 &styled_text_chunk('','','','','','bkeyword',@_) ; 249} 250## 251## bkeyword is defined the same as bvalue 252sub bkeyword { 253 local($btext) = @_; 254 join('','<span class="bvalue">',$btext,'</span>') ; 255} 256sub do_cmd_bdefaultvalue { 257 local($_)=@_; 258 my $value = &bnext_arg(); 259 &styled_text_chunk('','','','','','bdefaultvalue',@_) ; 260} 261sub bdefaultvalue { 262 local($btext) = @_; 263 join('','<span class="bdefaultvalue">',$btext,'</span>') ; 264} 265sub do_cmd_bacula { 266 local($_)=@_; 267 my $bbacula = &bnext_arg(); 268 &styled_text_chunk('','','','','','bbacula',@_) ; 269} 270sub bbacula { 271 local($_)=@_; 272 join('','<span class="bbacula">','Bacula','</span>') ; 273} 274sub do_cmd_baculasystems{ 275 join('','<a class="baculasystems" href="http://www.baculasystems.com">','Bacula Systems','</a>',$_[0]); 276} 277sub do_cmd_bweb{ 278 join('','<span class="bweb">BWeb</span>',$_[0]); 279} 280sub do_cmd_mssql{ 281 join('','<span class="bsqltool">MSSQL</span>',$_[0]); 282} 283sub do_cmd_postgresql { 284 join('','<span class="bsqltool">PostgreSQL</span>',$_[0]); 285} 286sub do_cmd_mysql { 287 join('','<span class="bsqltool">MySQL</span>',$_[0]); 288} 289sub do_cmd_sqlite { 290 join('','<span class="bsqltool">SQLite</span>',$_[0]); 291} 292 293sub do_cmd_bnextpage { 294 # We don't do nothing with it.. 295} 296sub do_cmd_byesorno { 297 join('','<span class="byesorno"><yes|no></span>',$_[0]); 298} 299sub do_cmd_bzeroone { 300 join('','<span class="bzeroone"><0|1></span>',$_[0]); 301} 302sub do_cmd_gt { 303 join('',">",$_[0]); 304} 305sub do_cmd_lt { 306 join('',"<",$_[0]); 307} 308# 309# Manual names 310sub buildmanualname { 311 local($mymanual) = @_ ; 312 my $bacula = bbacula() ; 313 my $bedition = &do_cmd_beditionname() ; 314 join('','<span class="bmanualname">',$bacula,' ',$bedition,' ',$mymanual,'</span>'); 315} 316sub do_cmd_bmainman { 317 $mybuild = buildmanualname("Main manual") ; 318 join('',$mybuild,$_[0]); 319} 320sub do_cmd_bconsoleman { 321 $mybuild = buildmanualname("Console manual") ; 322 join('',$mybuild,$_[0]); 323} 324sub do_cmd_bdevelman { 325 $mybuild = buildmanualname("Developer's manual") ; 326 join('',$mybuild,$_[0]); 327} 328sub do_cmd_butilityman { 329 $mybuild = buildmanualname("Utility Programs manual") ; 330 join('',$mybuild,$_[0]); 331} 332# 333#sub do_cmd_bproblemsman { 334# &do_cmd_bproblemman() ; 335#} 336sub do_cmd_bproblemman { 337 $mybuild = buildmanualname("Problems Resolution guide") ; 338 join('',$mybuild,$_[0]); 339} 340sub do_cmd_bmiscman { 341 $mybuild = buildmanualname("Miscellaneous guide") ; 342 join('',$mybuild,$_[0]); 343} 344 345sub do_cmd_bregistered { 346 join('',"®",$_[0]); 347} 348sub do_cmd_bstar { 349 join('',"★",$_[0]); 350} 351sub do_cmd_vb { 352 join('',"|",$_[0]); 353} 354sub url { 355 local($burl) = @_ ; 356 join('','<a href="',$burl,'">',$burl,'</a>') ; 357} 358sub do_cmd_bcopyright { 359 join('',"©",$_[0]); 360} 361sub do_cmd_byear { 362 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) ; 363 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); 364 $year += 1900 ; 365 join('',$year,$_[0]); 366} 367sub do_cmd_btitlelogo { 368 print "PCT: ALERT! do_cmd_btitlelogo: Is this used ?\n" ; 369 join('', 370 # Logo and documentation title 371 '<div class="bsys_topclass" id="bsys_topid">', 372 '<img alt="BaculaSystems Logo" id="bsys_logo" src="blogo-header.png" />', 373 '<img alt="BaculaSystems Documentation text" id="bsys_doctitle" src="btitle-header.png" />', 374 '</div>', 375 # Breadcrumbs and search field 376 '<div class="bsys_breadnsearchclass" id="bsys_breadnsearchid">', 377 '<div class="bsys_searchclass" id="bsys_searchid">', 378 '<span class="bsys_searchtitleclass" id="bsys_searchtitleid">Search</span>', 379 '<input class="bsys_searchfieldclass" id="bsys_searchfieldid" type="text" value="Type your text here" />', 380 '</div>', 381 '<div class="bsys_breadcrumbsclass" id="bsys_breadcrumbsid">', 382 '<p class="bsys_breadcrumbscontentclass" id="bsys_breadcrumbscontentid">Main</p>', 383 '</div>', 384 '</div>', 385 $_[0]) ; 386} 387 388sub do_cmd_bru{ 389 join('','<span class="btool">bru</span>',$_[0]) ; 390} 391 392sub do_cmd_bdump { 393 join('','<span class="btool">dump</span>',$_[0]) ; 394} 395sub do_cmd_tar { 396 join('','<span class="btool">tar</span>',$_[0]) ; 397} 398 399sub do_cmd_mtx { 400 join('','<span class="btool">mtx</span>',$_[0]) ; 401} 402 403sub do_cmd_mtxchanger { 404 join('','<span class="btool">mtx-changer</span>',$_[0]) ; 405} 406 407sub do_cmd_bat { 408 join('',eval("&bacs('BAT')"),$_[0]) ; 409} 410# 411# Acronyms 412sub bacs { 413 local($bkey)=@_ ; 414 print "PCT: bacs: key: >$bkey< @_\n" if ($VERBOSITY > 20) ; 415 join('','<a class="bacronyms" href="Acronyms.html#', eval("&make_acronym_id(\$bkey)"),'">',$bkey,"</a>") ; 416} 417sub do_cmd_acs { 418 local($_)=@_; 419 &styled_text_chunk('','','','','','bacs',$_[0]) ; 420} 421sub bacsp { 422 local($bkey) = @_ ; 423 join('','<a class="bacronyms" href="Acronyms.html#',eval("&make_acronym_id($bkey)"),'">',$bkey,'s</a>') ; #,$_[0]) ; 424} 425sub do_cmd_acsp { 426 local($_)=@_; 427 my $bkey = &bnext_arg(); 428 &styled_text_chunk('','','','','','bacsp',$_[0]) ; 429} 430sub bac { 431 local($bkey)=@_; 432 my $bvalue = $bkey ; 433 if ($bacronyms{$bkey}{'displayed'} == 0) { 434 print "PCT: bac: never displayed: $bkey\n" if ($VERBOSITY > 10) ; 435 $bacronyms{$bkey}{'displayed'} = 1 ; 436 $bvalue = join('',$bacronyms{$bkey}{'value'},' (',$bkey,')') ; 437 } 438 join('','<a class="bacronyms" href="Acronyms.html#', eval("&make_acronym_id(\$bkey)"), '">', $bvalue, '</a>') ; 439} 440sub do_cmd_ac { 441 local($_)=@_; 442 my $bkey = &bnext_arg(); 443 &styled_text_chunk('','','','','','bac',@_) ; 444} 445sub bacp { 446 local($bkey)=@_; 447 my $bvalue = join('',$bkey,'s') ; 448 if ($bacronyms{$bkey}{'displayed'} == 0) { 449 print "PCT: do_cmd_acp: never displayed: $bkey\n" if ($VERBOSITY > 10) ; 450 $bacronyms{$bkey}{'displayed'} = 1 ; 451 $bvalue = join('',$bacronyms{$bkey}{'value'},'s (', $bkey,'s)') ; 452 } 453 join('','<a class="bacronyms" href="Acronyms.html#',eval("&make_acronym_id(\$bkey)"),'">', $bvalue, '</a>') ; 454} 455sub do_cmd_acp { 456 local($_)=@_; 457 &styled_text_chunk('','','','','','bacp',@_) ; 458} 459 460sub bacl { 461 local($bkey)=@_; 462 print "PCT: do_cmd_acl: key: $bkey\n" if ($VERBOSITY > 5) ; 463 my $bvalue = $bacronyms{$bkey}{'value'} ; 464 print "PCT: do_cmd_acl: val: $bvalue\n" if ($VERBOSITY > 5) ; 465 join('','<a class="bacronyms" href="Acronyms.html#', eval("&make_acronym_id(\$bkey)"), '">', $bvalue, '</a>') ; 466} 467sub do_cmd_acl { 468 local($_)=@_; 469 my $bkey = &bnext_arg(); 470 &styled_text_chunk('','','','','','bacl',@_) ; 471} 472 473sub baclp { 474 local($bkey)=@_; 475 my $bvalue = $bacronyms{$bkey}{'value'} ; 476 join('','<a class="bacronyms" href="Acronyms.html#', eval("&make_acronym_id(\$bkey)"),'">',$bvalue,'s</a>') ; 477} 478sub do_cmd_aclp { 479 local($_)=@_; 480 &styled_text_chunk('','','','','','baclp',@_) ; 481} 482sub make_acronym_id { 483 local($bkey) = @_ ; 484 $bacronyms{$bkey}{'seen'} = 1 ; 485 print "PCT: make_acronym_id: $bkey seen\n" if ($VERBOSITY > 10) ; 486 join('','bacronyms_',lc($bkey)) ; 487} 488# 489# Images 490sub bcompute_image { 491 local($bclass,$bfilename,$blabel,$bcaption,$bsize) = @_ ; 492 &anchor_label($blabel,$CURRENT_FILE,$_); 493 join('','<div class="',$bclass,'">',"\n", 494 '<a name="',$blabel,'">',"\n", 495 '<img class="',$bclass,'" src="',$bfilename,'" ',$bsize,'>',"\n", 496 '<div class="caption">',"\n", 497 '<span class="',$bclass,'">',$bcaption,'</span>',"\n", 498 '</div>',"\n", 499 '</a>',"\n", 500 '</div>',$_) ; 501} 502# Horizontal image 503sub do_cmd_bimageH { 504 local($_) = @_ ; 505 # bimageH[an optional width]{image_filename}{caption to display}{label to use} 506 print "do_cmd_bimageH: $_\n" if ($VERBOSITY > 20) ; 507 local($bwidth,$bfilename,$bcaption,$blabel) ; 508 $bwidth = &get_next_optional_argument() ; 509 $bfilename = join('','../../images/',&bnext_arg(),'.png') ; 510 $bcaption = &bnext_arg() ; 511 $blabel = &bnext_arg() ; 512 print "do_cmd_bimageH: Width = $bwidth\tFile = $bfilename\tCaption = $bcaption\tLabel = $blabel\n" if ($VERBOSITY > 100) ; 513 if ($bwidth ne "") { 514 print "do_cmd_bimageH: bwidth: $bwidth\n" if ($VERBOSITY > 200) ; 515 if ($bwidth =~ /\[(.*)\\linewidth\]/) { 516 print "do_cmd_bimageH: ratio = $1\n" if ($VERBOSITY > 100) ; 517 $bwidth = $1 * 100 ; 518 $bwidth = join('','style="width: ',$bwidth,'%;"') ; 519 } 520 } 521 print "do_cmd_bimageH: bwidth: $bwidth\n" if ($VERBOSITY > 10) ; 522 &bcompute_image("bimageH",$bfilename,$blabel,$bcaption,$bwidth) ; 523} 524# 525# Images with no orientation 526sub do_cmd_bimageN { 527 local($_) = @_ ; 528 # bimageN[an optional width]{image_filename}{caption to display}{label to use} 529 print "do_cmd_bimageN: $_\n" if ($VERBOSITY > 20) ; 530 local($bwidth,$bfilename,$bcaption,$blabel) ; 531 $bwidth = &get_next_optional_argument() ; 532 $bfilename = join('','../../images/',&bnext_arg(),'.png') ; 533 $bcaption = &bnext_arg() ; 534 $blabel = &bnext_arg() ; 535 print "do_cmd_bimageN: Width = $bwidth\tFile = $bfilename\tCaption = $bcaption\tLabel = $blabel\n" if ($VERBOSITY > 10) ; 536 if ($bwidth ne "") { 537 print "do_cmd_bimageN: bwidth: $bwidth\n" if ($VERBOSITY > 10) ; 538 if ($bwidth =~ /\[(.*)\\linewidth\]/) { 539 $bwidth = join('','style="width: ',$1 * 100,'%;"') ; 540 } 541 } 542 print "do_cmd_bimageN: bwidth: $bwidth\n" if ($VERBOSITY > 10) ; 543 &bcompute_image("bimageN",$bfilename,$blabel,$bcaption,$bwidth) ; 544} 545 546# 547# Images with no orientation 548sub do_cmd_bimageV { 549 local($_) = @_ ; 550 # bimageV[an optional height]{image_filename}{caption to display}{label to use} 551 print "do_cmd_bimageV: $_\n" if ($VERBOSITY > 20) ; 552 local($bheight,$bfilename,$bcaption,$blabel) ; 553 $bheight = &get_next_optional_argument() ; 554 $bfilename = join('','../../images/',&bnext_arg(),'.png') ; 555 $bcaption = &bnext_arg() ; 556 $blabel = &bnext_arg() ; 557 print "do_cmd_bimageV: Height = $bheight\tFile = $bfilename\tCaption = $bcaption\tLabel = $blabel\n" if ($VERBOSITY > 10) ; 558 # 559 # As we are in HTML, we can not calculate anything based on "linewidth". So either an absolute dimension is specified 560 # and everything is fine 561 # or no dimension or a relative dimension is provided and we are in trouble => no width no height. 562 if ($bheight ne "" and $bheight !~ /\\/) { 563 $bheight = join('','style: "height: ',$bheight,';"') ; 564 } 565 else { 566 $bheight = "" ; 567 } 568 print "do_cmd_bimageV: bheight: $bheight\n" if ($VERBOSITY > 10) ; 569 &bcompute_image("bimageV",$bfilename,$blabel,$bcaption,$bheight) ; 570} 571 572sub do_cmd_textcolor { 573 local($_) = @_ ; 574 my $bcolor = &bnext_arg() ; 575 my $btext = &bnext_arg() ; 576 print "PCT: do_cmd_textcolor: color: $bcolor - text: $btext\n" if ($VERBOSITY > 10) ; 577 join('',$btext,$_) ; 578} 579 580sub do_cmd_vref { 581 local($_) = @_ ; 582 # 583 # The only arg is the label name 584 my $blabel=&bnext_arg() ; 585 print "PCT: do_cmd_vref: label: $blabel\n" if ($VERBOSITY > 10) ; 586 if (my $bfilename = $ref_files{$blabel}) { 587 if ($bfilename ne $CURRENT_FILE) { 588 $burl = join('',$bfilename,'#',$blabel) ; 589 } 590 else { 591 $burl = join('','#',$blabel) ; 592 } 593 } 594 else { 595 $burl = join('','__TO_BE_REPLACED_WITH_HTML_FILENAME__','#',$blabel) ; 596 } 597 print "PCT: do_cmd_vref: ref_files: " . $ref_files{$blabel} . "\n\turl: $burl\n\tlabel: $blabel\n\tcaption: " .$captions{$blabel}."\n\tfilename: $bfilename\n\n" if ($VERBOSITY > 10) ; 598 join('','(<a class="bref" href="',$burl,'" alt="',$captions{$blabel},'" >here</a>)',$_) ; 599} 600 601sub do_cmd_bref { 602 local($_) = @_ ; 603 my $burl = &bnext_arg(); 604 my $btext=&bnext_arg() ; 605 print "\nPCT: do_cmd_bref: text: $btext - url: $burl\n" if ($VERBOSITY > 2) ; 606 if ($burl !~ /http(s?):/) { 607 if (my $bfilename = $ref_files{$burl}) { 608 if ($bfilename ne $CURRENT_FILE) { 609 $burl = join('',$bfilename,'#',$burl) ; 610 } 611 else { 612 $burl = join('','#',$burl) ; 613 } 614 } 615 } 616 join('','<a class="bref" href="',$burl,'">',$btext,'</a>',$_) ; 617} 618 619sub do_cmd_bfootref { 620 local($_) = @_ ; 621 &do_cmd_bref($_) ; 622} 623 624sub do_cmd_textrightarrow { 625 join('',"→",$_[0]); 626} 627 628sub do_cmd_bilink { 629 local($_) = @_; 630 local($btext) ; 631 local($blink) = &get_next_optional_argument() ; 632 $btext = &missing_braces unless 633 ((s/$next_pair_pr_rx/$btext = $2; ''/eo) 634 ||(s/$next_pair_rx/$btext = $2; ''/eo)); 635 print "PCT: bilink: btext: $btext --- blink: $blink\n" if ($VERBOSITY > 3) ; 636 &bprocess_ref("bilink",$btext) ; 637} 638sub do_cmd_bxdlink { 639 # \bxdlink}[4]{\href{../#3/#3}{\textbf{#1}} (#4 \vref{#3-#2})} 640 # Format is bxdlink{Mail Command in the Messages Resource}{blb:mailcommand}{main}{chapter} 641 local($_) = @_ ; 642 local($btext,$blabel,$bmanual,$bwhat,$text) ; 643 $btext = &bnext_arg() ; 644 $blabel = &bnext_arg() ; 645 $bmanual = &bnext_arg() ; 646 $bwhat = &bnext_arg() ; 647 # 648 # There is only one case we know where we are 649 my $blinkedfile = "__TO_BE_REPLACED_WITH_HTML_FILENAME__" ; 650 if ($bmanual eq $FILE) { 651 $blinkedfile = $CURRENT_FILE ; 652 } 653 join('','<a class="bxdlink" href="../',$bmanual,'/',$blinkedfile,'#',$blabel,'">',$btext,'</a>',$_) ; 654} 655 656 657sub do_cmd_bvalueddirective { 658 local($_)=@_; 659 my $bdirectivename = &bnext_arg(); 660 my $bvalue = &bnext_arg(); 661 join('','<span class="bdirectivename">',$bdirectivename,'</span>',' = ','<span class="bvalue">',$bvalue,'</span>',$_) ; 662} 663 664sub do_cmd_bxlink { 665 # Format is bxlink{Mail Command in the Messages Resource}{blb:mailcommand}{main}{chapter} 666 local($_) = @_ ; 667 local($btext,$blabel,$bmanual,$bwhat,$text) ; 668 $btext = &bnext_arg() ; 669 $blabel = &bnext_arg() ; 670 $bmanual = &bnext_arg() ; 671 $bwhat = &bnext_arg() ; 672 # 673 # There is only one case we know where we are 674 my $blinkedfile = "__TO_BE_REPLACED_WITH_HTML_FILENAME__" ; 675 if ($bmanual eq $FILE) { 676 $blinkedfile = $CURRENT_FILE ; 677 } 678 join('','<a class="bxlink" href="../',$bmanual,'/',$blinkedfile,'#',$blabel,'">',$btext,' ',$bwhat,'</a>',$_) ; 679} 680 681sub do_cmd_label { 682 local($_) = @_; 683 local($label); 684 print "do_cmd_label: converting $FILE to $CURRENT_FILE\n" if ($VERBOSITY > 5) ; 685 $label = &missing_braces unless ( 686 (s/$next_pair_pr_rx\n?/$label = $2;''/eo) 687 ||(s/$next_pair_rx\n?/$label = $2;''/eo)); 688 &anchor_label($label,$CURRENT_FILE,$_); 689 $label =~ s/<[^>]*>//go; 690 $label =~ s/$label_rx/_/g; 691 if ($ref_files{$label} ne $CURRENT_FILE) { 692 $ref_files{$label} = $CURRENT_FILE; 693 $noresave{$label} = 0; $changed = 1; 694 print "PCT: do_cmd_label: ref_files: ". $ref_files{$label} . "\n" if ($VERBOSITY > 10) ; 695 } 696 print "<LABEL: $label>\n\t ref_files: ". $ref_files{$label} . "\n" if ($VERBOSITY > 3); 697 join('',"<A class=\"blabel\" NAME=\"$label\">$anchor_mark</A>",$_); 698} 699 700# This is used by external style files ... 701sub bprocess_ref { 702 local($class, $btext) = @_; 703 $btext = &balance_inner_tags($btext) 704 if $btext =~ (/<\/([A-Z]+)>($math_verbatim_rx.*)<\1>/); 705 $btext = &translate_environments($btext); 706 $btext = &simplify(&translate_commands($btext)) 707 if ($btext =~ /\\/ ); 708 local($breference,$id); 709 local($pretag) = &get_next_optional_argument; 710 $pretag = &translate_commands($pretag) if ($pretag =~ /\\/); 711 $breference = &missing_braces unless ( 712 (s/$next_pair_pr_rx/($id, $breference) = ($1, $2);''/eo) 713 ||(s/$next_pair_rx/($id, $breference) = ($1, $2);''/eo)); 714 if ($breference) { 715 $breference =~ s/<[^>]*>//go ; #RRM: Remove any HTML tags 716 $breference =~ s/$label_rx/_/g; # replace non alphanumeric characters 717 718 $symbolic_labels{"$pretag$breference$id"} = $btext if ($btext); 719 if (($symbolic_labels{$pretag.$breference})&&!($btext)) { 720 $btext = $symbolic_labels{$pretag.$breference} 721 } 722 $btext = ( (!$btext && $breference) || $btext); 723 724 print "\nLINK: Reference: $breference --- btext: $btext\n" if ($VERBOSITY > 3); 725 # The quotes around the HREF are inserted later 726 my $localfile = "" ; 727 if ($ref_files{$breference}) { 728 $localfile = $ref_files{$breference} ; 729 } 730 join('','<a class="',$class,'" href=',$localfile,'#',$breference,'>',$btext,'</a>', $_); 731 } 732 else { 733 print "Cannot find label argument after <$last_word>\n" if $last_word; 734 $after_label . $_; 735 } 736} 737# 738# Quotes 739sub do_cmd_bog { 740 join('','<span class="bleftquote">','_left_quote_','</span>',$_[0]) ; 741} 742sub do_cmd_cog { 743 join('','<span class="brightquote">','_right_quote_','</span>',$_[0]) ; 744} 745 746sub do_cmd_babove { 747 join('','≥',$_[0]) ; 748} 749 750sub do_cmd_bwebdoc { 751 local($_) = @_; 752 local($label); 753 $label = &missing_braces unless ( 754 (s/$next_pair_pr_rx\n?/$label = $2;''/eo) 755 ||(s/$next_pair_rx\n?/$label = $2;''/eo)); 756 &anchor_label($label,$CURRENT_FILE,$_); 757} 758 759sub do_cmd_bmathequation { 760 local($_) = @_; 761 local($bequation); 762 $bequation = &missing_braces unless ( 763 (s/$next_pair_pr_rx\n?/$bequation = $2;''/eo) 764 ||(s/$next_pair_rx\n?/$bequation = $2;''/eo)); 765 $bequation =~ s/_([^\s]+)/<sub>\1<\/sub>/g ; 766 $bequation =~ s/\n//g ; 767 $bequation = join("\n",'__bbmathequation__',$bequation,'__bemathequation__') ; 768 print "PCT: bmathequation: equation: $bequation\n" if ($VERBOSITY > 10) ; 769 join('',$bequation,$_) ; 770} 771 772sub do_cmd_leqslant { 773 join('',' ≤ ',$_[0]); 774} 775 776 777# ====================================================================== 7781; 779