Changeset 1218


Ignore:
Timestamp:
Mar 27, 2011, 1:44:29 AM (7 years ago)
Author:
julian.reschke@…
Message:

xml2rfc 1.36

Location:
xml2rfc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • xml2rfc/rfc2629.dtd

    r799 r1218  
    105105          category    (std|bcp|info|exp|historic)
    106106                                         #IMPLIED
     107          consensus   (no|yes)           #IMPLIED
    107108          seriesNo    %NUMBER;           #IMPLIED
    108109          ipr         (full2026|noDerivativeWorks2026|none
  • xml2rfc/xml2rfc.tcl

    r833 r1218  
    1212global prog prog_version prog_url prog_ack
    1313set prog "xml2rfc"
    14 set prog_version "v1.35"
     14set prog_version "v1.36"
    1515set prog_url "http://xml.resource.org/"
    1616set prog_ack \
     
    40184018                                    sortrefs            no            \
    40194019                                    strict              no            \
     4020                                    text-list-symbols   "o*+-"        \
    40204021                                    toc                 no            \
    40214022                                    tocappendix         yes           \
     
    42664267 }
    42674268
     4269set rfc5741StatusOfMemo_ietf_std {
     4270"This is an Internet Standards Track document."
     4271}
     4272set rfc5741StatusOfMemo_ietf_bcp {
     4273"This memo documents an Internet Best Current Practice."
     4274}
     4275set rfc5741StatusOfMemo_ietf_exp {
     4276"This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation."
     4277}
     4278set rfc5741StatusOfMemo_ietf_historic {
     4279"This document is not an Internet Standards Track specification; it is published for the historical record."
     4280}
     4281set rfc5741StatusOfMemo_ietf_info {
     4282"This document is not an Internet Standards Track specification; it is published for informational purposes."
     4283}
     4284set rfc5741StatusOfMemo_iab_exp {
     4285"This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation."
     4286}
     4287set rfc5741StatusOfMemo_iab_historic {
     4288"This document is not an Internet Standards Track specification; it is published for the historical record."
     4289}
     4290set rfc5741StatusOfMemo_iab_info {
     4291"This document is not an Internet Standards Track specification; it is published for informational purposes."
     4292}
     4293set rfc5741StatusOfMemo_irtf_exp {
     4294"This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation."
     4295}
     4296set rfc5741StatusOfMemo_irtf_historic {
     4297"This document is not an Internet Standards Track specification; it is published for the historical record."
     4298}
     4299set rfc5741StatusOfMemo_irtf_info {
     4300"This document is not an Internet Standards Track specification; it is published for informational purposes."
     4301}
     4302set rfc5741StatusOfMemo_ind_exp {
     4303"This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation."
     4304}
     4305set rfc5741StatusOfMemo_ind_historic {
     4306"This document is not an Internet Standards Track specification; it is published for the historical record."
     4307}
     4308set rfc5741StatusOfMemo_ind_info {
     4309"This document is not an Internet Standards Track specification; it is published for informational purposes."
     4310}
     4311set rfc5741StatusOfMemo2_ietf_std {
     4312"This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741."
     4313}
     4314set rfc5741StatusOfMemo2_ietf_bcp {
     4315"This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on BCPs is available in Section 2 of RFC 5741."
     4316}
     4317set rfc5741StatusOfMemo2_ietf_exp_consensus {
     4318"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4319}
     4320set rfc5741StatusOfMemo2_ietf_exp_noconsensus {
     4321"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4322}
     4323set rfc5741StatusOfMemo2_ietf_historic_consensus {
     4324"This document defines a Historic Document for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4325}
     4326set rfc5741StatusOfMemo2_ietf_historic_noconsensus {
     4327"This document defines a Historic Document for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4328}
     4329set rfc5741StatusOfMemo2_ietf_info_consensus {
     4330"This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4331}
     4332set rfc5741StatusOfMemo2_ietf_info_noconsensus {
     4333"This document is a product of the Internet Engineering Task Force (IETF). It has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4334}
     4335set rfc5741StatusOfMemo2_iab_exp {
     4336"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Architecture Board (IAB) and represents information that the IAB has deemed valuable to provide for permanent record. Documents approved for publication by the IAB are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4337}
     4338set rfc5741StatusOfMemo2_iab_historic {
     4339"This document defines a Historic Document for the Internet community. This document is a product of the Internet Architecture Board (IAB) and represents information that the IAB has deemed valuable to provide for permanent record. Documents approved for publication by the IAB are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4340}
     4341set rfc5741StatusOfMemo2_iab_info {
     4342"This document is a product of the Internet Architecture Board (IAB) and represents information that the IAB has deemed valuable to provide for permanent record. Documents approved for publication by the IAB are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4343}
     4344set rfc5741StatusOfMemo2_irtf_exp_consensus {
     4345"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4346}
     4347set rfc5741StatusOfMemo2_irtf_exp_noconsensus {
     4348"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the individual opinion(s) of one or more members of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4349}
     4350set rfc5741StatusOfMemo2_irtf_exp_nogroup {
     4351"This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4352}
     4353set rfc5741StatusOfMemo2_irtf_historic_consensus {
     4354"This document defines a Historic Document for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4355}
     4356set rfc5741StatusOfMemo2_irtf_historic_noconsensus {
     4357"This document defines a Historic Document for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the individual opinion(s) of one or more members of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4358}
     4359set rfc5741StatusOfMemo2_irtf_historic_nogroup {
     4360"This document defines a Historic Document for the Internet community. This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4361}
     4362set rfc5741StatusOfMemo2_irtf_info_consensus {
     4363"This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4364}
     4365set rfc5741StatusOfMemo2_irtf_info_noconsensus {
     4366"This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the individual opinion(s) of one or more members of the %WORKGROUPNAME% Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4367}
     4368set rfc5741StatusOfMemo2_irtf_info_nogroup {
     4369"This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. Documents approved for publication by the IRSG are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4370}
     4371set rfc5741StatusOfMemo2_ind_exp {
     4372"This document defines an Experimental Protocol for the Internet community. This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4373}
     4374set rfc5741StatusOfMemo2_ind_historic {
     4375"This document defines a Historic Document for the Internet community. This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4376}
     4377set rfc5741StatusOfMemo2_ind_info {
     4378"This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741."
     4379}
     4380set rfc5741StatusOfMemo3 {
     4381"Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc%RFC%."
     4382}
     4383
    42684384#       }}}2 Categories and IPR status texts
    42694385#       {{{2 Start and end tag callbacks
     
    43504466                            unexpected error \
    43514467                                "submissionType=\"$attrs(submissionType)\" attribute unknown in #$elemN:<rfc>"
     4468                        }
     4469                    }
     4470                }
     4471                if {![catch { set attrs(consensus) }]} {
     4472                    switch -- $attrs(consensus) {
     4473                        yes - no {}
     4474                        default {
     4475                            unexpected error \
     4476                                "consensus=\"$attrs(consensus)\" attribute unknown in #$elemN:<rfc>"
    43524477                        }
    43534478                    }
     
    55465671    array set attrs [list number     ""   obsoletes      ""   updates   "" \
    55475672                          seriesNo   ""   ipr            "" \
    5548                           iprExtract ""   submissionType IETF xml:lang  en]
     5673                          iprExtract ""   submissionType IETF xml:lang  en \
     5674                          consensus  ""]
    55495675    array set attrs $elem($elemX)
    55505676    set elem($elemX) [array get attrs]
     
    55795705        set ymd ""
    55805706    }
    5581    
     5707
     5708    # newP=9 is the latest.
     5709    # See if it needs to be dropped back to an earlier version.
    55825710    if {[string compare $attrs(number) ""]} {
    55835711        if {$attrs(number) <= 2499} {
     
    59006028
    59016029    if {($options(.STRICT)) && ([set l [llength $authors]] > 5)} {
    5902         unexpected error "$l authors, maximum of 5 allowed"
     6030        unexpected error "$l authors, maximum of 5 allowed. Remove strict='yes' to proceed."
    59036031    }
    59046032
     
    59276055        }
    59286056    }
     6057    # set copylong to the proper value
    59296058    if {$newP} {
    59306059        global copylong2 copylong3 copylong4 copylong5 validity1 validity2
     
    59406069                    default {
    59416070                        unexpected error \
    5942                             "submissionType=\"$attrs(submissionType)\" unexpected for this boilerplate"
     6071                            "submissionType=\"$attrs(submissionType)\" unexpected for this boilerplate (1)"
    59436072                    }
    59446073                }
     
    59546083                    default {
    59556084                        unexpected error \
    5956                             "submissionType=\"$attrs(submissionType)\" unexpected for this boilerplate"
     6085                            "submissionType=\"$attrs(submissionType)\" unexpected for this boilerplate (2)"
    59576086                    }
    59586087                }
     
    60056134    }
    60066135
     6136    # determine the value of iprstmt
    60076137    if {$newP} {
    60086138        global iprlong2
     
    62336363    catch { set ofile $rv(docName) }
    62346364
     6365    if {![info exists attrs(.PARSEDDATE)]} {
     6366        set secs [get_publication_date_seconds $date]
     6367        set attrs(.PARSEDDATE) $secs
     6368    }
     6369   
     6370    if {[catch { clock format $attrs(.PARSEDDATE) -format "%Y%m%d" -gmt true } \
     6371               ymd]} {
     6372        # Should differentiate between PARSEDATE not set (e.g., early pass)
     6373        # vs. PARSEDATE set to 0 (i.e., couldn't parse date)
     6374        set ymd ""
     6375    }
     6376   
     6377    # determine the value of consensus (default yes), and
     6378    # remember whether it was specified
     6379    set consensus "yes"
     6380    set consensusConsumed "no"
     6381    set consensusSpecified "no"
     6382    if {![catch { set rv(consensus) }]} {
     6383        set consensus $rv(consensus)
     6384        set consensusSpecified "yes"
     6385        if {![string compare $consensus ""]} {
     6386            set consensus "yes"
     6387            set consensusSpecified "no"
     6388        }
     6389    }
     6390   
    62356391    if {$options(.PRIVATE)} {
    62366392        lappend left $options(private)
     
    62386394        set status ""
    62396395    } else {
     6396
     6397        # do we need the 2010 header format?
     6398        set boilerplateformat ""
     6399        if {$ymd >= "20100101" ||
     6400            ([lsearch {5741 5742 5743} $rv(number)] >= 0)} {
     6401            set boilerplateformat "2010"
     6402        }
     6403       
    62406404        set first ""
    62416405        if {(![string compare $rv(number) ""]) \
     
    62466410            set first [string trim $wv(.CTEXT)]
    62476411        }
     6412        if {([string compare $rv(number) ""]) &&
     6413             ![string compare $first ""] &&
     6414             ![string compare $boilerplateformat "2010"]} {
     6415            # starting in 2010, put the submission type into the top left corner
     6416            if {![catch { set rv(submissionType) }]} {
     6417                switch -- $rv(submissionType) {
     6418                    independent {
     6419                        set first "Independent Submission"
     6420                    }
     6421                    IETF {
     6422                        set first "Internet Engineering Task Force (IETF)"
     6423                    }
     6424                    IRTF {
     6425                        set first "Internet Research Task Force (IRTF)"
     6426                    }
     6427                    IAB {
     6428                        set first "Internet Architecture Board (IAB)"
     6429                    }
     6430                    default {
     6431                        unexpected error \
     6432                            "submissionType=\"$rv(submissionType)\" unexpected for this boilerplate (3)"
     6433                    }
     6434                }
     6435            }
     6436        }
    62486437        if {![string compare $first ""]} {
    62496438            set first "Network Working Group"
     
    62816470            set category [lindex [lindex $categories $cindex] 1]
    62826471            lappend left "Category:$colonspace $category"
    6283             set status [list [lindex [lindex $categories $cindex] 3]]
     6472           
     6473            if {![string compare $boilerplateformat "2010"]} {
     6474                # starting in 2010, add the ISSN
     6475                lappend left "ISSN:$colonspace 2070-1721"
     6476               
     6477                # and use a new variant of "Status of this Memo"
     6478                global rfc5741StatusOfMemo3
     6479
     6480                set statusOfMemo3 $rfc5741StatusOfMemo3
     6481                regsub -all -- %RFC% $statusOfMemo3 $rv(number) statusOfMemo3
     6482
     6483                # below used for debugging unhandled case
     6484                set status "FIND ME"
     6485             
     6486                if {![catch { set rv(submissionType) }]} {
     6487                    switch -- $rv(submissionType) {
     6488                        IAB {
     6489                            if {![catch { set rv(category) }]} {
     6490                                switch -- $rv(category) {
     6491                                    exp {
     6492                                        global rfc5741StatusOfMemo_iab_exp rfc5741StatusOfMemo2_iab_exp
     6493                                        set status "$rfc5741StatusOfMemo_iab_exp $rfc5741StatusOfMemo2_iab_exp $statusOfMemo3"
     6494                                    }
     6495                                    historic {
     6496                                        global rfc5741StatusOfMemo_iab_historic rfc5741StatusOfMemo2_iab_historic
     6497                                        set status "$rfc5741StatusOfMemo_iab_historic $rfc5741StatusOfMemo2_iab_historic $statusOfMemo3"
     6498                                    }
     6499                                    info {
     6500                                        global rfc5741StatusOfMemo_iab_info rfc5741StatusOfMemo2_iab_info
     6501                                        set status "$rfc5741StatusOfMemo_iab_info $rfc5741StatusOfMemo2_iab_info $statusOfMemo3"
     6502                                    }
     6503                                    default {
     6504                                        unexpected_error "invalid combination of submissionType=\$rv(submissionType\" and category=\"$rv(category)\""
     6505                                    }
     6506                                }
     6507                            }
     6508                        }
     6509                        IETF {
     6510                            if {![catch { set rv(category) }]} {
     6511                                switch -- $rv(category) {
     6512                                    bcp {
     6513                                        set consensusConsumed "yes"
     6514                                        switch -- $consensus {
     6515                                            yes {
     6516                                                global rfc5741StatusOfMemo_ietf_bcp rfc5741StatusOfMemo2_ietf_bcp
     6517                                                set status "$rfc5741StatusOfMemo_ietf_bcp $rfc5741StatusOfMemo2_ietf_bcp $statusOfMemo3"
     6518                                            }
     6519                                            default {
     6520                                                # "no" not allowed here
     6521                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6522                                            }
     6523                                        }
     6524                                    }
     6525                                    exp {
     6526                                        set consensusConsumed "yes"
     6527                                        switch -- $consensus {
     6528                                            yes {
     6529                                                global rfc5741StatusOfMemo_ietf_exp rfc5741StatusOfMemo2_ietf_exp_consensus
     6530                                                set status "$rfc5741StatusOfMemo_ietf_exp $rfc5741StatusOfMemo2_ietf_exp_consensus $statusOfMemo3"
     6531                                            }
     6532                                            no {
     6533                                                global rfc5741StatusOfMemo_ietf_exp rfc5741StatusOfMemo2_ietf_exp_noconsensus
     6534                                                set status "$rfc5741StatusOfMemo_ietf_exp $rfc5741StatusOfMemo2_ietf_exp_noconsensus $statusOfMemo3"
     6535                                            }
     6536                                            default {
     6537                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6538                                            }
     6539                                        }
     6540                                    }
     6541                                    historic {
     6542                                        set consensusConsumed "yes"
     6543                                        switch -- $consensus {
     6544                                            yes {
     6545                                                global rfc5741StatusOfMemo_ietf_historic rfc5741StatusOfMemo2_ietf_historic_consensus
     6546                                                set status "$rfc5741StatusOfMemo_ietf_historic $rfc5741StatusOfMemo2_ietf_historic_consensus $statusOfMemo3"
     6547                                            }
     6548                                            no {
     6549                                                global rfc5741StatusOfMemo_ietf_historic rfc5741StatusOfMemo2_ietf_historic_noconsensus
     6550                                                set status "$rfc5741StatusOfMemo_ietf_historic $rfc5741StatusOfMemo2_ietf_historic_noconsensus $statusOfMemo3"
     6551                                            }
     6552                                            default {
     6553                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6554                                            }
     6555                                        }
     6556                                    }
     6557                                    info {
     6558                                        set consensusConsumed "yes"
     6559                                        switch -- $consensus {
     6560                                            yes {
     6561                                                global rfc5741StatusOfMemo_ietf_info rfc5741StatusOfMemo2_ietf_info_consensus
     6562                                                set status "$rfc5741StatusOfMemo_ietf_info $rfc5741StatusOfMemo2_ietf_info_consensus $statusOfMemo3"
     6563                                            }
     6564                                            no {
     6565                                                global rfc5741StatusOfMemo_ietf_info rfc5741StatusOfMemo2_ietf_info_noconsensus
     6566                                                set status "$rfc5741StatusOfMemo_ietf_info $rfc5741StatusOfMemo2_ietf_info_noconsensus $statusOfMemo3"
     6567                                            }
     6568                                            default {
     6569                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6570                                            }
     6571                                        }
     6572                                    }
     6573                                    std {
     6574                                        set consensusConsumed "yes"
     6575                                        switch -- $consensus {
     6576                                            yes {
     6577                                                global rfc5741StatusOfMemo_ietf_std rfc5741StatusOfMemo2_ietf_std
     6578                                                set status "$rfc5741StatusOfMemo_ietf_std $rfc5741StatusOfMemo2_ietf_std $statusOfMemo3"
     6579                                            }
     6580                                            default {
     6581                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6582                                            }
     6583                                        }
     6584                                    }
     6585                                    default {
     6586                                        unexpected_error "invalid combination of submissionType=\$rv(submissionType\" and category=\"$rv(category)\""
     6587                                    }
     6588                                }
     6589                            }
     6590                        }
     6591                        independent {
     6592                            if {![catch { set rv(category) }]} {
     6593                                switch -- $rv(category) {
     6594                                    exp {
     6595                                        global rfc5741StatusOfMemo_ind_exp rfc5741StatusOfMemo2_ind_exp
     6596                                        set status "$rfc5741StatusOfMemo_ind_exp $rfc5741StatusOfMemo2_ind_exp $statusOfMemo3"
     6597                                    }
     6598                                    historic {
     6599                                        global rfc5741StatusOfMemo_ind_historic rfc5741StatusOfMemo2_ind_historic
     6600                                        set status "$rfc5741StatusOfMemo_ind_historic $rfc5741StatusOfMemo2_ind_historic $statusOfMemo3"
     6601                                    }
     6602                                    info {
     6603                                        global rfc5741StatusOfMemo_ind_info rfc5741StatusOfMemo2_ind_info
     6604                                        set status "$rfc5741StatusOfMemo_ind_info $rfc5741StatusOfMemo2_ind_info $statusOfMemo3"
     6605                                    }
     6606                                    default {
     6607                                        unexpected_error "invalid combination of submissionType=\$rv(submissionType\" and category=\"$rv(category)\""
     6608                                    }
     6609                                }
     6610                            }
     6611                        }
     6612                        IRTF {
     6613                            set workgroupname ""
     6614                            if {([string compare \
     6615                                           [set workgroup [lindex [find_element workgroup \
     6616                                                     $attrs(.CHILDREN)] 0]] ""])} {
     6617                                array set wv $elem($workgroup)
     6618                                # jre: this escapes angle brackets; why?
     6619                                set workgroupname [string trim $wv(.CTEXT)]
     6620                            }
     6621
     6622                            if {![catch { set rv(category) }]} {
     6623                                switch -- $rv(category) {
     6624                                    exp {
     6625                                        set consensusConsumed "yes"
     6626                                        switch -- $consensus {
     6627                                            yes {
     6628                                                if {[string compare $workgroupname ""]} {
     6629                                                    global rfc5741StatusOfMemo_irtf_exp rfc5741StatusOfMemo2_irtf_exp_consensus
     6630                                                    set status "$rfc5741StatusOfMemo_irtf_exp $rfc5741StatusOfMemo2_irtf_exp_consensus $statusOfMemo3"
     6631                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6632                                                } else {
     6633                                                    global rfc5741StatusOfMemo_irtf_exp rfc5741StatusOfMemo2_irtf_exp_nogroup
     6634                                                    set status "$rfc5741StatusOfMemo_irtf_exp $rfc5741StatusOfMemo2_irtf_exp_nogroup $statusOfMemo3"
     6635                                                }
     6636                                            }
     6637                                            no {
     6638                                                if {[string compare $workgroupname ""]} {
     6639                                                    global rfc5741StatusOfMemo_irtf_exp rfc5741StatusOfMemo2_irtf_exp_noconsensus
     6640                                                    set status "$rfc5741StatusOfMemo_irtf_exp $rfc5741StatusOfMemo2_irtf_exp_noconsensus $statusOfMemo3"
     6641                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6642                                                } else {
     6643                                                    global rfc5741StatusOfMemo_irtf_exp rfc5741StatusOfMemo2_irtf_exp_nogroup
     6644                                                    set status "$rfc5741StatusOfMemo_irtf_exp $rfc5741StatusOfMemo2_irtf_exp_nogroup $statusOfMemo3"
     6645                                                }
     6646                                            }
     6647                                            default {
     6648                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6649                                            }
     6650                                        }
     6651                                    }
     6652                                    historic {
     6653                                        set consensusConsumed "yes"
     6654                                        switch -- $consensus {
     6655                                            yes {
     6656                                                if {[string compare $workgroupname ""]} {
     6657                                                    global rfc5741StatusOfMemo_irtf_historic rfc5741StatusOfMemo2_irtf_historic_consensus
     6658                                                    set status "$rfc5741StatusOfMemo_irtf_historic $rfc5741StatusOfMemo2_irtf_historic_consensus $statusOfMemo3"
     6659                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6660                                                } else {
     6661                                                    global rfc5741StatusOfMemo_irtf_historic rfc5741StatusOfMemo2_irtf_historic_nogroup
     6662                                                    set status "$rfc5741StatusOfMemo_irtf_historic $rfc5741StatusOfMemo2_irtf_historic_nogroup $statusOfMemo3"
     6663                                                }
     6664                                            }
     6665                                            no {
     6666                                                if {[string compare $workgroupname ""]} {
     6667                                                    global rfc5741StatusOfMemo_irtf_historic rfc5741StatusOfMemo2_irtf_historic_noconsensus
     6668                                                    set status "$rfc5741StatusOfMemo_irtf_historic $rfc5741StatusOfMemo2_irtf_historic_noconsensus $statusOfMemo3"
     6669                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6670                                                } else {
     6671                                                    global rfc5741StatusOfMemo_irtf_historic rfc5741StatusOfMemo2_irtf_historic_nogroup
     6672                                                    set status "$rfc5741StatusOfMemo_irtf_historic $rfc5741StatusOfMemo2_irtf_historic_nogroup $statusOfMemo3"
     6673                                                }
     6674                                            }
     6675                                            default {
     6676                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6677                                            }
     6678                                        }
     6679                                    }
     6680                                    info {
     6681                                        set consensusConsumed "yes"
     6682                                        switch -- $consensus {
     6683                                            yes {
     6684                                                if {[string compare $workgroupname ""]} {
     6685                                                    global rfc5741StatusOfMemo_irtf_info rfc5741StatusOfMemo2_irtf_info_consensus
     6686                                                    set status "$rfc5741StatusOfMemo_irtf_info $rfc5741StatusOfMemo2_irtf_info_consensus $statusOfMemo3"
     6687                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6688                                                } else {
     6689                                                    global rfc5741StatusOfMemo_irtf_info rfc5741StatusOfMemo2_irtf_info_nogroup
     6690                                                    set status "$rfc5741StatusOfMemo_irtf_info $rfc5741StatusOfMemo2_irtf_info_nogroup $statusOfMemo3"
     6691                                                }
     6692                                            }
     6693                                            no {
     6694                                                if {[string compare $workgroupname ""]} {
     6695                                                    global rfc5741StatusOfMemo_irtf_info rfc5741StatusOfMemo2_irtf_info_noconsensus
     6696                                                    set status "$rfc5741StatusOfMemo_irtf_info $rfc5741StatusOfMemo2_irtf_info_noconsensus $statusOfMemo3"
     6697                                                    regsub -all -- %WORKGROUPNAME% $status "$workgroupname" status
     6698                                                } else {
     6699                                                    global rfc5741StatusOfMemo_irtf_info rfc5741StatusOfMemo2_irtf_info_nogroup
     6700                                                    set status "$rfc5741StatusOfMemo_irtf_info $rfc5741StatusOfMemo2_irtf_info_nogroup $statusOfMemo3"
     6701                                                }
     6702                                            }
     6703                                            default {
     6704                                                unexpected_error "invalid combination of submissionType=\$rv(submissionType\", category=\"$rv(category)\" and consensus=\"$rv(consensus)\""
     6705                                            }
     6706                                        }
     6707                                    }
     6708                                    default {
     6709                                        unexpected_error "invalid combination of submissionType=\$rv(submissionType\" and category=\"$rv(category)\""
     6710                                    }
     6711                                }
     6712                            }
     6713                        }
     6714                    }
     6715                }
     6716            } else {
     6717                # pre-2010 (RFC 5741) "Status Of This Memo"
     6718                set status [list [lindex [lindex $categories $cindex] 3]]
     6719            }
    62846720        } else {
    62856721            if {$options(.STRICT)} {
     
    63586794           
    63596795            if {($ymd < "20100401")} {
    6360               # insert "to IETF" for documents before Feb 01 2010
     6796              # insert "to IETF" for documents before Apr 01 2010
    63616797              regsub -all -- %TOIETF% $ipr "to IETF" ipr
    63626798            } else {
     
    63896825    }
    63906826
     6827    # check consensus usage
     6828    if {![string compare $consensusSpecified "yes"]} {
     6829        if {![string compare $consensusConsumed "no"]} {
     6830            unexpected warning "a consensus attribute was specified, but not applicable for the generated boilerplate"
     6831        }
     6832    }
     6833       
    63916834    set authors ""
    63926835    set names ""
     
    64946937    front_${mode}_begin $left $right $top $bottom $title $keywords $rv(xml:lang)
    64956938
     6939    # make boilerplate ordering change on 20090701 for RFCs and
     6940    # on 20091101 otherwise
    64966941    if {[string compare $rv(number) ""]} {
    64976942      set cutoff 20090701
     
    64996944      set cutoff 20091101
    65006945    }
    6501 
    6502     if {([catch { clock format $attrs(.PARSEDDATE) -format %Y%m%d \
    6503                                -gmt true } ymd]) \
    6504             || ($ymd < "$cutoff")} {
     6946    if {($ymd < "$cutoff")} {
    65056947        set options(.ABSTRACT1ST) 0
    65066948        write_status_${mode} $status $copying 0
     
    80028444
    80038445    if {$options(.TOPBLOCK)} {
    8004         set left [munge_long $left]
    8005         set right [munge_long $right]
     8446        set left [munge_long $left 1]
     8447        set right [munge_long $right 0]
    80068448        foreach l $left r $right {
    80078449            set l [chars_expand $l]
     
    82988740
    82998741            symbols {
    8300                 set counter "[lindex { - o * + } [expr [llength $l] & 3]] "
     8742                set counter "[string index $options(text-list-symbols) [expr [expr [llength $l] - 1] % [string length $options(text-list-symbols)]]]"
    83018743            }
    83028744
     
    994410386    global footer lineno pageno unpaginated
    994510387    global page_width page_head_height page_body_height page_foot_height
     10388    global guiP
    994610389
    994710390    flush_text
     
    996110404
    996210405    set text [format "\[Page %d\]" $pageno]
     10406    if {$guiP == 1} {
     10407        wm title . $text ; update
     10408    }
    996310409    incr pageno
    996410410    set len [string length $text]
     
    1025010696    set level -1
    1025110697    for { set x [expr {[info level] + $level}] } { $x > 0 } { incr x -1 } {
    10252         append stack "    called from [info level $x]\n"
     10698        append stack "    called from [info level $x]\n"
    1025310699    }
    1025410700    puts stderr $stack
     
    1076511211    if {$options(.TOPBLOCK)} {
    1076611212        write_html "<table summary=\"layout\" width=\"66%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><table summary=\"layout\" width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">"
    10767         set left [munge_long $left]
    10768         set right [munge_long $right]
     11213        set left [munge_long $left 1]
     11214        set right [munge_long $right 0]
    1076911215        set lc ""
    1077011216        set rc ""
     
    1159212038                     target2 width annotations} {
    1159312039    global options
    11594     global rfcTxtHome rfcHtmlHome idTxtHome
     12040    global rfcTxtHome rfcHtmlHome idTxtHome idHtmlHome
    1159512041
    1159612042    if {[string compare $target2 ""]} {
     
    1162712073            if {[regexp -nocase -- "internet-draft&nbsp;(draft-.*)" $serial x n] \
    1162812074                    == 1} {
    11629                 set target $idTxtHome/$n.txt
     12075#                set target $idTxtHome/$n.txt
     12076                set target $idHtmlHome/$n
    1163012077                break
    1163112078            }
     
    1202812475    puts $out_fd "<tr><td>"
    1202912476    puts $out_fd "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">"
    12030     set left [munge_long $left]
    12031     set right [munge_long $right]
     12477    set left [munge_long $left 1]
     12478    set right [munge_long $right 0]
    1203212479    set lc ""
    1203312480    set rc ""
     
    1247512922
    1247612923    if {$options(.TOPBLOCK)} {
    12477         set left [munge_long $left]
    12478         set right [munge_long $right]
     12924        set left [munge_long $left 1]
     12925        set right [munge_long $right 0]
    1247912926        foreach l $left r $right {
    1248012927            set l [chars_expand $l]
     
    1322913676set indents {}
    1323013677
    13231 global rfcTxtHome rfcHtmlHome idTxtHome
     13678global rfcTxtHome rfcHtmlHome idTxtHome idHtmlHome
    1323213679
    1323313680set rfcTxtHome ftp://ftp.isi.edu/in-notes
    1323413681set rfcHtmlHome http://tools.ietf.org/html
    1323513682set idTxtHome http://www.ietf.org/internet-drafts
     13683set idHtmlHome http://tools.ietf.org/html
    1323613684
    1323713685#       }}}2 Some globals
     
    1356214010}
    1356314011
    13564 proc munge_long {lines} {
     14012proc munge_long {lines isleft} {
    1356514013    global page_width
    1356614014    global mode
    1356714015
    1356814016    set result ""
    13569     set max [expr $page_width / 2 - 2]
     14017   
     14018    # as of 2010, need 39 characters in the left column
     14019    # maybe this should be done in a smarter way, taking the width
     14020    # of the text in both columns into account
     14021   
     14022    if {$isleft} {
     14023        set max 39
     14024    } else {
     14025        set max [expr $page_width - 39 - 1]
     14026    }
    1357014027
    1357114028    foreach buffer $lines {
     
    1744717904                              iprExtract  \
    1744817905                              submissionType \
     17906                              consensus   \
    1744917907                              docName     \
    1745017908                              xml:lang]   \
Note: See TracChangeset for help on using the changeset viewer.