# change_history.pod
#
# Copyright (c) 2010 Accenture. All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Accenture - Initial contribution
#

__END__

=head1 FShell Change History

=head2 Release 003 [NOT YET MADE]

=over 5

=item *

Fixed objinfo command so that it works on modern (S^3 or later, S60 5th or later) baselines.

=back

=head2 Release 002

=over 5

=item *

Open signing of fshell SIS files is now supported for production S60 handsets. Build fshell with the C<FSHELL_OPEN_SIGNED> macro defined (and without defining C<FSHELL_CAP_ALL> or C<FSHELL_PROTECTED_UIDS>) in your platform.mmh and submit \epoc32\fshell\fshell.unsigned.sis to https://www.symbiansigned.com/app/page/public/openSignedOnline.do . The following commands are not available when using Open Signing due to Platform Security restrictions: fdb; kerninfo; chunkinfo; svrinfo; objinfo; sudo; fsck; localdrive; ramdefrag; readmem; reboot; setcritical; setpriority; showdebug. Others such as chkdeps, e32header, ps, and fshell itself will run but in a restricted capacity (for example, fshell will no longer allow you to modify files in the \sys\bin directory).

=item *

Changed S60 3rd and 5th platforms to default to the Open Signed configuration, as that's what most people will be using.

=item *

Commands can now define a C<==smoke-test> section in their CIF files, which defines a snippet of fshell script that will be run as part of C<fshell smoketest> or by invoking L<ciftest|commands::ciftest> directly. See the ciftest documentation for more details.

=item *

Fixed crash in fed's handling of UTF-8 sequences split over a block boundary. Fixed a link bug in the autogenerated documentation.

=item *

Added support for automatically starting a USB personality to vt100usbcons via a new C<personality=x> key-value pair. See the L<vt100usbcons|vt100cons/usb variant> documentation for more information.

=item *

Added support for beagleboard to sf\3tshell platform.

=item *

Updated chkdeps command so that it works with byte-pair compressed binaries (experimental).

=item *

Added L<showdebug|commands::showdebug> command to redirect RDebug::Print()s to the console.

=item *

Added L<input|commands::input> command to allow hardware key presses to be easily simulated via a console.

=item *

Added L<base64|commands::base64> command for encoding to and decoding from Base64.

=item *

Added C<CBtraceAppStart> to btrace_parser.dll. Also changed the interface of C<CBtraceAppResponse> to use window group name patterns rather than process ids (to make it consistent with other parts of the API).

=item *

Fshell now reuses threads for built-in commands that execute in quick succession. The thread pool takes into account the requirements of the command when assigning a thread (eg whether it needs to share a heap with its parent command) and creates a new one if necessary. Excess threads are cleaned up after a short idle period (currently 1 second).

=item *

Added support for L<source|commands::source> reading from C<stdin> (primarily to better support remote execution of scripts).

=item *

Fixed a bug in iocli.dll that could cause environment variable updates to be ignored.

=item *

Fixed a bug in fshell that could cause 'foreach' commands to exit prematurely.

=item *

Added new console extension functions: ConsoleSize::ReportedCorrectly(), ConsoleSize::NotifySizeChanged().

=item *

Removed iosrv.ini's console_size_detect setting. It is now calculated on a per-console basis whether the console requires size detection, based on whether the console implements the C<ConsoleSize::ReportedCorrectly()> extension. All the fshell-supplied consoles have been updated to implement this extension as appropriate, meaning that size detection will no longer be run unnecessarily on (for eg) win32cons when you run fshell.bat. As part of this work, the laziness of defcons (CDefaultConsole) has been removed as it overlapped unnecessarily with CLazyConsole. Defcons's sole responsibility now is to pick an appropriate console; lazycons is responsible for making sure it isn't instantiated prematurely.

=item *

Changed the CCommandFactory logic that searches for commands; it now scans \resource\cif\fshell rather than \sys\bin. This means that the 'help' command now works on the emulator and on installs without all capabilities.

=back

=head2 Release 001

=over 5

=item *

First release of fshell through the Symbian Foundation.

=item *

Added L<terminal keyboard|terminalkeyboardcons> console, for platforms that support Terminal Keyboard and Trace Core. On such platforms comm.script (and thus -DFSHELL_AUTOSTART) will use it if there is no better match for the hardware platform.

=item *

Fixed a defect in iosrv.exe that caused a panic if a foreground read object was attached to a different end point. This was due to the read object being notified of a change in foreground before its iEndPoint member was updated. This member is now updated before attempting the attach, and is set to NULL in the event of a leave (resulting in the read object being left in an unattached state). Fixed race condition and hang in C<pcons start>.

=item *

More build fixes. Changed the documentation builder to automatically prepend C<%EPOCROOT%> (converted to a path relative form) to pre-processor include path options that start with F<epoc32>. Prevously C<$(EPOCROOT)> was prepended in the makefile, which broke the documentation build because the pre-processor will only accept relative path include options.

=item *

Added C<--codesegs> option to L<ps|commands::ps> and C<--no-write> option to L<gobble|commands::gobble>.

=item *

Added C<ENotifyKeypresses> and C<ECaptureCtrlC> flags to CCommandBase, so commands can get keypresses and handle ctrl-C via callbacks instead of having to implement custom active objects. As part of this extended the CCommandBase extension interface to MCommandExtensionsV2 for the new virtual functions KeyPressed(TUint aKeyCode, TUint aModifiers) and CtrlCPressed(). sudo now cleans up correctly by using ECaptureCtrlC.

=item *

fshell's current working directory is now normalised (via new TFileName2::Normalize function) so that the case matches what's on the filesystem).

=item *

Fixed crash in L<start's|commands::start> C<--timeout> option and in L<chunkinfo|commands::chunkinfo> when specifying a chunk address.

=item *

The L<dialog|commands::dialog> command no longer misreports the button that was pressed when running under the text windowserver.

=item *

Changed built-in commands maximum heap size from 256KB to 1MB. This is because on a current S60 device 256KB is just too small for commands like chunkinfo to display all the chunks on the system. Also have seen problems listing large directories and deleting large numbers of files, that this change should help with too.

=back

=head2 Release 000.2-000.5

Test releases with build fixes.

=head2 Release 000.1

Prerelease to the SF staging server.

=head1 Copyright

Copyright (c) 2010 Accenture. All rights reserved.

=cut
