Diff for /loncom/interface/loncommon.pm between versions 1.737 and 1.765

version 1.737, 2009/01/30 09:05:36 version 1.765, 2009/03/09 05:25:40
Line 923  sub help_open_topic { Line 923  sub help_open_topic {
     }      }
   
     # Add the text      # Add the text
     if ($text ne "") {      if ($text ne "") {
  $template .=    $template.='<span class="LC_help_open_topic">'
             "<table bgcolor='#3333AA' cellspacing='1' cellpadding='1' border='0'><tr>".                    .'<a target="_top" href="'.$link.'">'
             "<td bgcolor='#5555FF'><a target=\"_top\" href=\"$link\"><span style=\"color:#FFFFFF;font-size:10pt;\">$text</span></a>";                    .$text.'</a>';
     }      }
   
     # Add the graphic      # (Always) Add the graphic
     my $title = &mt('Online Help');      my $title = &mt('Online Help');
     my $helpicon=&lonhttpdurl("/adm/help/help.png");      my $helpicon=&lonhttpdurl("/adm/help/help.png");
     $template .= <<"ENDTEMPLATE";      $template.=' <a target="_top" href="'.$link.'" title="'.$title.'">'
  <a target="_top" href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a>                .'<img src="'.$helpicon.'" border="0"'
 ENDTEMPLATE                .' alt="'.&mt('Help: [_1]',$topic).'"'
     if ($text ne '') { $template.='</td></tr></table>' };                .' title="'.$title.'"'
                 .' /></a>';
       if ($text ne "") {
           $template.='</span>';
       }
     return $template;      return $template;
   
 }  }
Line 947  sub helpLatexCheatsheet { Line 951  sub helpLatexCheatsheet {
     my $out;      my $out;
     my $addOther = '';      my $addOther = '';
     if ($topic) {      if ($topic) {
  $addOther = &Apache::loncommon::help_open_topic($topic,$text,   $addOther = '<span>'.&Apache::loncommon::help_open_topic($topic,&mt($text),
        undef, undef, 600).         undef, undef, 600).
    '</td><td>';     '</span> ';
     }      }
     $out = '<table><tr><td>'.      $out = '<span>' # Start cheatsheet
    $addOther .    .$addOther
    &Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'),            .'<span>'
        undef,undef,600).    .&Apache::loncommon::help_open_topic('Greek_Symbols',&mt('Greek Symbols'),
    '</td><td>'.         undef,undef,600)
    &Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'),    .'</span> <span>'
        undef,undef,600).    .&Apache::loncommon::help_open_topic('Other_Symbols',&mt('Other Symbols'),
    '</td>';         undef,undef,600)
     .'</span>';
     unless ($not_author) {      unless ($not_author) {
         $out .= '<td>'.          $out .= ' <span>'
         &Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'),         .&Apache::loncommon::help_open_topic('Authoring_Output_Tags',&mt('Output Tags'),
                                             undef,undef,600).                                              undef,undef,600)
         '</td>';         .'</span>';
     }      }
     $out .= '</tr></table>';      $out .= '</span>'; # End cheatsheet
     return $out;      return $out;
 }  }
   
Line 1746  sub select_level_form { Line 1751  sub select_level_form {
   
 =pod  =pod
   
 =item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc)  =item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$autosubmit)
   
 Returns a string containing a <select name='$name' size='1'> form to   Returns a string containing a <select name='$name' size='1'> form to 
 allow a user to select the domain to preform an operation in.    allow a user to select the domain to preform an operation in.  
Line 1755  See loncreateuser.pm for an example invo Line 1760  See loncreateuser.pm for an example invo
 If the $includeempty flag is set, it also includes an empty choice ("no domain  If the $includeempty flag is set, it also includes an empty choice ("no domain
 selected");  selected");
   
 If the $showdomdesc flag is set, the domain name is followed by the domain description.   If the $showdomdesc flag is set, the domain name is followed by the domain description.
   
   If the $autosubmit flag is set, the form containing the domain selector will be auto-submitted by an onchange action.  
   
 =cut  =cut
   
 #-------------------------------------------  #-------------------------------------------
 sub select_dom_form {  sub select_dom_form {
     my ($defdom,$name,$includeempty,$showdomdesc) = @_;      my ($defdom,$name,$includeempty,$showdomdesc,$autosubmit) = @_;
       my $onchange;
       if ($autosubmit) {
           $onchange = ' onchange="this.form.submit()"';
       }
     my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());      my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
     if ($includeempty) { @domains=('',@domains); }      if ($includeempty) { @domains=('',@domains); }
     my $selectdomain = "<select name=\"$name\" size=\"1\">\n";      my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n";
     foreach my $dom (@domains) {      foreach my $dom (@domains) {
         $selectdomain.="<option value=\"$dom\" ".          $selectdomain.="<option value=\"$dom\" ".
             ($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom;              ($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom;
Line 2804  sub aboutmewrapper { Line 2815  sub aboutmewrapper {
         return;          return;
     }      }
     return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'.      return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'.
  ($target?' target="$target"':'').' title="'.&mt("View this user's personal page").'">'.$link.'</a>';   ($target?' target="$target"':'').' title="'.&mt("View this user's personal information page").'">'.$link.'</a>';
 }  }
   
 # ------------------------------------------------------------ Syllabus Wrapper  # ------------------------------------------------------------ Syllabus Wrapper
Line 3073  sub languages { Line 3084  sub languages {
     return $preferred_possibilities[0];      return $preferred_possibilities[0];
 }  }
   
   sub user_lang {
       my ($touname,$toudom,$fromcid) = @_;
       my @userlangs;
       if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) {
           @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,
                       $env{'course.'.$fromcid.'.languages'}));
       } else {
           my %langhash = &getlangs($touname,$toudom);
           if ($langhash{'languages'} ne '') {
               @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'});
           } else {
               my %domdefs = &Apache::lonnet::get_domain_defaults($toudom);
               if ($domdefs{'lang_def'} ne '') {
                   @userlangs = ($domdefs{'lang_def'});
               }
           }
       }
       my @languages=&Apache::lonlocal::get_genlanguages(@userlangs);
       my $user_lh = Apache::localize->get_handle(@languages);
       return $user_lh;
   }
   
   
 ###############################################################  ###############################################################
 ##               Student Answer Attempts                     ##  ##               Student Answer Attempts                     ##
 ###############################################################  ###############################################################
Line 3788  sub blocking_status { Line 3822  sub blocking_status {
                              &Apache::lonnet::coursedescription($course);                               &Apache::lonnet::coursedescription($course);
                         $coursedesc = $courseinfo{'description'};                          $coursedesc = $courseinfo{'description'};
                     }                      }
                     $category = "Group files in the course '$coursedesc'";                      $category = "Group portfolio in the course '$coursedesc'";
                 } else {                  } else {
                     $category = 'Portfolio files belonging to ';                      $category = 'Portfolio files belonging to ';
                     if ($env{'user.name'} eq 'public' &&                       if ($env{'user.name'} eq 'public' && 
Line 4217  $realm&nbsp; Line 4251  $realm&nbsp;
 </td>  </td>
 ENDROLE  ENDROLE
   
     my $titleinfo = '<span class="LC_title_bar_title">'.$title.'</span>';      my $titleinfo = '<h1>'.$title.'</h1>';
     if ($customtitle) {      if ($customtitle) {
         $titleinfo = $customtitle;          $titleinfo = $customtitle;
     }      }
Line 4496  form, .inline { display: inline; } Line 4530  form, .inline { display: inline; }
   
 /* just for tests */  /* just for tests */
 .LC_300Box { width:300px; }  .LC_300Box { width:300px; }
 .LC_200Box {width:200px; }  .LC_400Box {width:400px; }
 .LC_500Box {width:500px; }  .LC_500Box {width:500px; }
 .LC_600Box {width:600px; }  .LC_600Box {width:600px; }
   .LC_800Box {width:800px;}
 /* end */  /* end */
   
 .LC_filename {font-family: $mono; white-space:pre;}  .LC_filename {font-family: $mono; white-space:pre;}
Line 4583  table#LC_title_bar td.LC_title_bar_who { Line 4618  table#LC_title_bar td.LC_title_bar_who {
 span.LC_metadata {  span.LC_metadata {
     font-family: $sans;      font-family: $sans;
 }  }
 span.LC_title_bar_title {  
   font: bold x-large $sans;  
 }  
 table#LC_title_bar td.LC_title_bar_domain_logo {  table#LC_title_bar td.LC_title_bar_domain_logo {
   background: $sidebg;    background: $sidebg;
   text-align: right;    text-align: right;
Line 5026  table.LC_pick_box td.LC_pick_box_title { Line 5058  table.LC_pick_box td.LC_pick_box_title {
   background: $tabbg;    background: $tabbg;
   font-weight: bold;    font-weight: bold;
   text-align: right;    text-align: right;
     vertical-align: top;
   width: 184px;    width: 184px;
   padding: 8px;    padding: 8px;
 }  }
Line 5537  h2,h3,h4,h5,h6 Line 5570  h2,h3,h4,h5,h6
 }  }
   
 .LC_bgLightGrey{  .LC_bgLightGrey{
  background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left top;    background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom;
 }  
 .LC_bgLightGreyYellow {  
  background-color:#EFECE0;  
 }  }
   
   
 /* Main Header with discription of Person, Course, etc. */  /* Main Header with discription of Person, Course, etc. */
 .LC_HeadRight {  .LC_HeadRight {
  text-align: right;   text-align: right;
Line 5554  h2,h3,h4,h5,h6 Line 5585  h2,h3,h4,h5,h6
         overflow:hidden;          overflow:hidden;
 }  }
   
   .LC_Right {
           float: right;
           margin: 0px;
           padding: 0px;
   }
   
 p, .LC_ContentBox {  p, .LC_ContentBox {
  padding: 10px;   padding: 10px;
   
 }  }
 .LC_FormSectionClearButton input {  .LC_FormSectionClearButton input {
                  background-color:transparent;        
         border:0px;          border:0px;
         cursor:pointer;          cursor:pointer;
         text-decoration:underline;          text-decoration:underline;
 }  }
   
   .LC_help_open_topic {
           color: #FFFFFF;
           background-color: #EEEEFF;
           margin: 1px;
           padding: 4px;
           border: 1px solid #000033;
           white-space: nowrap;
   }
   
 dl,ul,div,fieldset {  dl,ul,div,fieldset {
  margin: 10px 10px 10px 0px;   margin: 10px 10px 10px 0px;
Line 5589  ol.LC_smallMenu a { Line 5634  ol.LC_smallMenu a {
  color: RGB(80, 80, 80);   color: RGB(80, 80, 80);
  text-decoration: none;   text-decoration: none;
 }  }
   ol#LC_TabMainMenuContent, ul.LC_TabContent ,
 ol#LC_TabMainMenuContent {  ul.LC_TabContentBigger {
  display:block;   display:block;
  list-style:none;   list-style:none;
  margin: 0px 0px 10px 0px;   margin: 0px;
  padding: 0px;   padding: 0px;
 }  }
   
 ol#LC_TabMainMenuContent li {  ol#LC_TabMainMenuContent li, ul.LC_TabContent li,
   ul.LC_TabContentBigger li{
  display: inline;   display: inline;
    border-right: solid 1px $lg_border_color;
    float:left;
    line-height:140%;
    white-space:nowrap;
   }
   ol#LC_TabMainMenuContent li{
  vertical-align: bottom;   vertical-align: bottom;
  border-bottom: solid 1px RGB(175, 175, 175);   border-bottom: solid 1px RGB(175, 175, 175);
  border-right: solid 1px RGB(175, 175, 175);  
  padding: 5px 10px 5px 10px;   padding: 5px 10px 5px 10px;
  margin-right:3px;   margin-right:5px;
  line-height: 140%;   margin-bottom:3px;
  font-weight: bold;   font-weight: bold;
  white-space:nowrap;  
  background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;   background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
 }  }
   
Line 5615  ol#LC_TabMainMenuContent li a{ Line 5665  ol#LC_TabMainMenuContent li a{
  text-decoration: none;   text-decoration: none;
 }  }
 ul.LC_TabContent {  ul.LC_TabContent {
  margin:0px;   min-height:1.6em;
  padding:0px;  
  display:block;  
  list-style:none;  
  min-height:1.5em;  
 }  }
 ul.LC_TabContent li{  ul.LC_TabContent li{
  display:inline;   vertical-align:middle;
  vertical-align:top;   padding:0px 10px 0px 10px;
    background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;   border-bottom:solid 1px $lg_border_color;
  border-right:solid 1px $lg_border_color;  
  padding:5px 10px 5px 10px;  
  margin-right:2px;  
  background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;  
 }  }
 ul.LC_TabContent li a, ul.LC_TabContent li{  ul.LC_TabContent li a, ul.LC_TabContent li{ 
  color:rgb(47,47,47);   color:rgb(47,47,47);
  text-decoration:none;   text-decoration:none;
  font-size:95%;   font-size:95%;
  font-weight:bold;   font-weight:bold;
  white-space:nowrap;   padding-right: 16px;
 }  }
 ul.LC_TabContent   li:hover{  ul.LC_TabContent li:hover, ul.LC_TabContent li.active{
         background: url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;          background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center;
         color:#BF2317;   border-bottom:solid 1px #FFFFFF;
         text-decoration:none;   padding-right: 16px;
   }
   ul.LC_TabContentBigger li{
    vertical-align:bottom;
    border-top:solid 1px $lg_border_color;
    border-left:solid 1px $lg_border_color;
    padding:5px 10px 5px 10px;
    margin-left:2px;
    background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
   }
   ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active{
    background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;
   }
   ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a{
    font-size:110%;
    font-weight:bold;
   }
   #LC_CourseDocuments, #LC_SupplementalCourseDocuments
   {
    margin:0px;
 }  }
   
 .LC_hideThis  .LC_hideThis
Line 5661  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr Line 5723  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
 }  }
   
 ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {  ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
   /*
  background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;   background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
   */
  display: inline;   display: inline;
  padding: 0px 0px 0px 10px;   padding: 0px 0px 0px 10px;
  vertical-align: bottom;   vertical-align: bottom;
Line 5681  ol#LC_PathBreadcrumbs li a{ Line 5745  ol#LC_PathBreadcrumbs li a{
 {  {
  border: solid 1px $lg_border_color;   border: solid 1px $lg_border_color;
 }  }
 .LC_PopUp  .LC_ContentBoxSpecialContactInfo
 {  {
  padding:10px;   border: solid 1px $lg_border_color;
  border-left:solid 1px $lg_border_color;   max-width:25%;
   border-top:solid 1px $lg_border_color;   min-width:25%;
  border-bottom:outset 1px $lg_border_color;  }
  border-right:outset 1px $lg_border_color;  .LC_AboutMe_Image
  display:none;  {
  position:absolute;   float:left;
  right:0;   margin-right:10px;
  background-color:white;  }
  z-index:5;  .LC_Clear_AboutMe_Image
   {
    clear:left;
 }  }
   
 dl.LC_ListStyleClean dt {  dl.LC_ListStyleClean dt {
  padding-right: 5px;   padding-right: 5px;
  display: table-header-group;   display: table-header-group;
Line 5770  div.LC_columnSection { Line 5835  div.LC_columnSection {
 div.LC_columnSection>* {  div.LC_columnSection>* {
  float: left;   float: left;
  margin: 10px 20px 10px 0px;   margin: 10px 20px 10px 0px;
  overflow:hidden;   overflow:hidden;
 }  
 div.LC_columnSection > .LC_ContentBox,  
 div.LC_columnSection > .LC_ContentBoxSpecial  
  {  
  width: 400px;  
 }  }
   
 .ContentBoxSpecialTemplate  .ContentBoxSpecialTemplate
Line 5790  div.LC_columnSection > .ContentBoxTempla Line 5850  div.LC_columnSection > .ContentBoxTempla
 div.LC_columnSection > .ContentBoxSpecialTemplate  div.LC_columnSection > .ContentBoxSpecialTemplate
         {          {
         width: 600px;          width: 600px;
   
 }  }
   
 .clear{  .clear{
Line 5841  div.LC_columnSection > .ContentBoxSpecia Line 5900  div.LC_columnSection > .ContentBoxSpecia
 }  }
   
 .LC_loginpage_space {  .LC_loginpage_space {
  clear:both;   clear: both;
  margin-bottom:20px;   margin-bottom: 20px;
  border-bottom: 1px solid #CCCCCC;   border-bottom: 1px solid #CCCCCC;
 }  }
   
 .LC_loginpage_fieldset{  table em{
  border: 1px solid #CCCCCC;   font-weight: bold;
  margin: 0 auto;   font-style: normal;
 }  }
   
 .LC_loginpage_legend{  table#LC_tableOfContent{
  padding: 2px;   border-collapse: collapse;
  margin: 0px;   border-spacing: 0;
  font-size:14px;   padding: 3px;
  font-weight:bold;   border: 0;
    background-color: #FFFFFF;
    font-size: 90%;
   }
   table#LC_tableOfContent a {
    text-decoration: none;
   }
   
   table#LC_tableOfContent tr.LC_trOdd{
    background-color: #EEEEEE;
   }
   
   table#LC_tableOfContent img{
    border: none;
    height: 1.3em;
    vertical-align: text-bottom;
    margin-right: 0.3em;
   }
   
   a#LC_content_toolbar_firsthomework{
    background-image:url(/res/adm/pages/open-first-problem.gif);
   }
   
   a#LC_content_toolbar_launchnav{
    background-image:url(/res/adm/pages/start-navigation.gif);
   }
   
   a#LC_content_toolbar_closenav{
    background-image:url(/res/adm/pages/close-navigation.gif);
   }
   
   a#LC_content_toolbar_everything{
    background-image:url(/res/adm/pages/show-all.gif);
   }
   
   a#LC_content_toolbar_uncompleted{
    background-image:url(/res/adm/pages/show-incomplete-problems.gif);
   }
   
   #LC_content_toolbar_clearbubbles{
    background-image:url(/res/adm/pages/mark-discussionentries-read.gif);
   }
   
   a#LC_content_toolbar_changefolder{
    background : url(/res/adm/pages/close-all-folders.gif) top center ;
   }
   
   a#LC_content_toolbar_changefolder_toggled{
    background-image:url(/res/adm/pages/open-all-folders.gif);
   }
   
   ul#LC_toolbar li a:hover{
    background-position: bottom center;
   }
   
   ul#LC_toolbar{
    padding:0; 
    margin: 2px;
    list-style:none;
    position:relative;
    background-color:white;
   }
   
   ul#LC_toolbar li{
    border:1px solid white;
    padding:0;
    margin: 0;
    display:inline-block;
    vertical-align:middle;
   }
   
   a.LC_toolbarItem{
    display:inline-block;
    padding:0;
    margin:0;
    height: 32px;
    width: 32px;
    color:white; 
    border:0 none;
    background-repeat:no-repeat;
    background-color:transparent;
 }  }
   
   
Line 6128  sub start_page { Line 6267  sub start_page {
  $result = &html_encode($result);   $result = &html_encode($result);
     }      }
   
     if (exists($args->{'bread_crumbs'})) {   #Breadcrumbs
         &Apache::lonhtmlcommon::clear_breadcrumbs();      if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) {
         if (ref($args->{'bread_crumbs'}) eq 'ARRAY') {            &Apache::lonhtmlcommon::clear_breadcrumbs();
             foreach my $crumb (@{$args->{'bread_crumbs'}}){   #if any br links exists, add them to the breadcrumbs
                 &Apache::lonhtmlcommon::add_breadcrumb($crumb);   if (exists($args->{'bread_crumbs'}) and ref($args->{'bread_crumbs'}) eq 'ARRAY') {         
             }   foreach my $crumb (@{$args->{'bread_crumbs'}}){
         }   &Apache::lonhtmlcommon::add_breadcrumb($crumb);
         $result .= &Apache::lonhtmlcommon::breadcrumbs();   }
     }   }
   
    #if bread_crumbs_component exists show it as headline else show only the breadcrumbs
    if(exists($args->{'bread_crumbs_component'})){
    $result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'});
    }else{
    $result .= &Apache::lonhtmlcommon::breadcrumbs();
    }
       }
     return $result;      return $result;
 }  }
   
Line 6898  sub default_quota { Line 7044  sub default_quota {
                                             ['quotas'],$udom);                                              ['quotas'],$udom);
     if (ref($quotahash{'quotas'}) eq 'HASH') {      if (ref($quotahash{'quotas'}) eq 'HASH') {
         if ($inststatus ne '') {          if ($inststatus ne '') {
             my @statuses = split(/:/,$inststatus);              my @statuses = map { &unescape($_); } split(/:/,$inststatus);
             foreach my $item (@statuses) {              foreach my $item (@statuses) {
                 if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {                  if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') {
                     if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {                      if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') {
Line 7364  sub personal_data_fieldtitles { Line 7510  sub personal_data_fieldtitles {
                         middlename => 'Middle Name',                          middlename => 'Middle Name',
                         generation => 'Generation',                          generation => 'Generation',
                         gen => 'Generation',                          gen => 'Generation',
                           inststatus => 'Affiliation',
                    );                     );
     return %fieldtitles;      return %fieldtitles;
 }  }
Line 9874  sub init_user_environment { Line 10021  sub init_user_environment {
                 &Apache::lonnet::usertools_access($username,$domain,$tool,'reload');                  &Apache::lonnet::usertools_access($username,$domain,$tool,'reload');
         }          }
   
           foreach my $crstype ('official','unofficial') {
               $userenv{'canrequest.'.$crstype} =
                   &Apache::lonnet::usertools_access($username,$domain,$crstype,
                                                     'reload','requestcourses');
           }
   
  $env{'user.environment'} = "$lonids/$cookie.id";   $env{'user.environment'} = "$lonids/$cookie.id";
   
  if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",   if (tie(my %disk_env,'GDBM_File',"$lonids/$cookie.id",

Removed from v.1.737  
changed lines
  Added in v.1.765


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>