*** lib/MT/App/Viewer.pm.orig	Sun Feb 23 16:25:46 2003
--- lib/MT/App/Viewer.pm	Mon Dec  8 02:23:38 2003
***************
*** 20,25 ****
--- 20,26 ----
      $app->SUPER::init(@_) or return;
      $app->add_methods(main => \&view);
      $app->{default_mode} = 'main';
+     $app->{charset} = $app->{cfg}->PublishCharset;
      $app;
  }
  
*** lib/MT/Template/Context.pm.orig	Wed May 28 16:48:24 2003
--- lib/MT/Template/Context.pm	Tue Dec  9 01:34:04 2003
***************
*** 78,83 ****
--- 78,84 ----
      $ctx->register_handler(TrackbackScript => \&_hdlr_trackback_script);
      $ctx->register_handler(SearchScript => \&_hdlr_search_script);
      $ctx->register_handler(XMLRPCScript => \&_hdlr_xmlrpc_script);
+     $ctx->register_handler(ViewScript => \&_hdlr_view_script);
      $ctx->register_handler(Date => \&_hdlr_sys_date);
      $ctx->register_handler(Version => \&_hdlr_mt_version);
      $ctx->register_handler(PublishCharset => \&_hdlr_publish_charset);
***************
*** 409,414 ****
--- 410,416 ----
  sub _hdlr_trackback_script { MT::ConfigMgr->instance->TrackbackScript }
  sub _hdlr_search_script { MT::ConfigMgr->instance->SearchScript }
  sub _hdlr_xmlrpc_script { MT::ConfigMgr->instance->XMLRPCScript }
+ sub _hdlr_view_script { MT::ConfigMgr->instance->ViewScript }
  
  sub _hdlr_blogs {
      my($ctx, $args, $cond) = @_;
***************
*** 874,886 ****
      $path .= '/' unless $path =~ m!/$!;
      $path .= $cfg->TrackbackScript . '/' . $tb->id;
      my $url;
!     if (my $at = $_[0]->{current_archive_type}) {
!         $url = $e->archive_url($at);
!         $url .= '#' . sprintf("%06d", $e->id)
!             unless $at eq 'Individual';
!     } else {
          $url = $e->permalink;
!     }
      my $rdf = '';
      my $comment_wrap = defined $args->{comment_wrap} ?
          $args->{comment_wrap} : 1;
--- 876,889 ----
      $path .= '/' unless $path =~ m!/$!;
      $path .= $cfg->TrackbackScript . '/' . $tb->id;
      my $url;
! #    if (my $at = $_[0]->{current_archive_type}) {
! #        $url = $e->archive_url($at);
! #        $url .= '#' . sprintf("%06d", $e->id)
! #            unless $at eq 'Individual';
! #    } else {
          $url = $e->permalink;
! #    }
! 
      my $rdf = '';
      my $comment_wrap = defined $args->{comment_wrap} ?
          $args->{comment_wrap} : 1;
*** lib/MT/Entry.pm.orig	Thu May 29 06:15:52 2003
--- lib/MT/Entry.pm	Tue Dec  9 01:36:29 2003
***************
*** 237,250 ****
  sub permalink {
      my $entry = shift;
      my $blog_id = $entry->blog_id;
!     require MT::Blog;
!     my $blog = MT::Blog->load($blog_id) or
!         return $entry->error(MT->translate(
!             "Load of blog '[_1]' failed: [_2]", $blog_id, MT::Blog->errstr));
!     my $url = $entry->archive_url(@_);
!     $url .= '#' . sprintf("%06d", $entry->id)
!         unless $blog->archive_type_preferred eq 'Individual';
!     $url;
  }
  
  sub text_filters {
--- 237,252 ----
  sub permalink {
      my $entry = shift;
      my $blog_id = $entry->blog_id;
! #    require MT::Blog;
! #    my $blog = MT::Blog->load($blog_id) or
! #        return $entry->error(MT->translate(
! #            "Load of blog '[_1]' failed: [_2]", $blog_id, MT::Blog->errstr));
! #    my $url = $entry->archive_url(@_);
! #    $url .= '#' . sprintf("%06d", $entry->id)
! #        unless $blog->archive_type_preferred eq 'Individual';
! #    $url;
!     my $cfg = MT::ConfigMgr->instance;
!     $cfg->CGIPath . $cfg->ViewScript . '/' . $blog_id . '/entry/' . $entry->id;
  }
  
  sub text_filters {
