#! /usr/bin/perl
# 
# $Id$
# Captive project doc TODO page Perl template.
# Copyright (C) 2003 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; exactly version 2 of June 1991 is required
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


package project::captive::doc::TODO;
require 5.6.0;	# at least 'use warnings;' but we need some 5.6.0+ modules anyway
our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
our $CVS_ID=q$Id$;
use strict;
use warnings;

BEGIN{ open F,"Makefile"; our $top_dir=pop @{[split /\s/,(grep /^top_srcdir/,<F>)[0]]}; eval "use lib '$top_dir'"; close F; }
use My::Web;
require CGI;
BEGIN { Wuse 'project::captive::doc::Macros'; }


My::Web->init(
		"__PACKAGE__"=>__PACKAGE__,
		"title"=>'Captive NTFS Developer Documentation: TODO',
		"head_css"=>$doc_Macros_head_css,
		);
My::Web->heading();


print <<"HERE";


<a name="todo_fsck"><h1>TODO: Fsck of NTFS</h1></a>

	<p>Currently this project does not support checking of data structures
	of NTFS volume as being provided by <span class="command">chkdsk.exe</span>
	in W32 environment and <span class="command">fsck</span> in UNIX OS.</p>

	<p>W32 has its disk checking functionality split to
	<span class="fname">untfs.dll</span> W32 userland library.
	according to
	@{[ a_href 'http://www.sysinternals.com/ntw2k/source/fmifs.shtml',
			'Chkdskx and Formatx' ]}
	by @{[ a_href 'http://www.sysinternals.com/aboutus.shtml',
			'Mark Russinovich' ]}.

	<p>I&nbsp;assume its execution falls completely
	@{[ a_href 'Architecture.html.pl#existing_emulation','out of scope' ]}
	of this project as it is W32 userland.</p>

	<p>This possibility was not yet investigated in any way.</p>


<a name="todo_surprise"><h1>TODO: NTFS Support for
		<span class="productname">@{[ a_href '/project/surprise/','Partition Surprise' ]}</span></h1></a>

	<p>Although there currently exists
	<span class="productname">@{[ a_href 'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html','ntfsresize' ]}</span>
	I am not sure whether it is really reliable for all NTFS filesystems.
	<span class="productname">@{[ a_href '/project/surprise/','Partition Surprise' ]}</span>
	is the only partition manager capable of safely resize the disk
	by using just the original W32 filesystem driver by full rebuild of
	filesystem metadata.
	Almost no file data blocks would be moved even on these generic filesystems
	as W32 supports <span class="constant">FSCTL_MOVE_FILE</span> request
	according to
	@{[ a_href 'http://www.sysinternals.com/ntw2k/info/defrag.shtml',
			'Inside Windows NT Disk Defragmenting' ]}
	by @{[ a_href 'http://www.sysinternals.com/aboutus.shtml',
			'Mark Russinovich' ]}.


HERE


My::Web->footer();
