Added support for Nokia TB92- or MCL-based minigui platform, in \build\s60\minigui.
Added new single launcher app instead of the multiple "fshell (USB)", "fshell (BT)" etc icons. The new launcher is located in the RnD tools folder.
Added the ability for fshell commands to request files from the PC via muxcons. Fdb now uses this to request map files for any codesegs in the stacktrace. The relevant API is RIoConsole::RequestFile()
with muxcons implementing the DataRequester
console extension.
Added support for changing the default c:\>
prompt by setting an environment variable FSHELL_PROMPT
. To put a newline between commands you could use:
export FSHELL_PROMPT "^r^n^$PWD>"
Note the use of ^$
to prevent $PWD
being expanded when export runs rather than when $FSHELL_PROMPT
is evaluated.
version -v
now displays the Mercurial revision that the code was built from, as per hg id
, if available.
Build fixes for platforms without CONE or apparc. Fixed rare crash when console creation returned an error. Fixed guicons drawing issue when embedded in another control.
Fix for bug 3285378 "chunkinfo <baseAddress> crashes with KERN-EXEC 3"
fdb now prints a notification (and automatically attaches if nothing focussed) when a thread crashes.
Removed compile-time dependancies on usbostcomm.h. As a result the FSHELL_OST_SUPPORT
macro is removed, and the RnD fshell SIS no longer requires CODA to be installed to use muxcons.
rm -f
can now delete binaries in \sys\bin that are held open because of demand paging. (Only applies to TCB-capable builds of fshell, when deleting an exe/dll from c:\sys\bin which is bytepair compressed and currently loaded on environments with code paging enabled).
Filename arguments marked as multiple
no longer are assumed to also have the optional
attribute.
Fixed bug for using muxserver.exe with public CODA. Muxcons currently relies on CODA being installed if using S60 builds.
Fixed missing IBY include; start-stdioserver.script now works.
Fixed device freeze when unplugging USB cable during fshell connection setup.
Added support for conditional if statements in fshell scripts. Usage:
if var ERR == 0 echo "No error" else echo "Error $ERR occurred." endif
Added support for while loops. Usage:
export I 0 while var I != 10 echo "Loop iteration $I" var I add 1 endwhile
break and continue commands are also supported, with C-style semantics.
Added fshell_stdioserver.exe and start-stdio.script to present an fshell-aware replacement for PIPS's stdioserver.exe.
Scripts located in \system\console\scripts\ are now first-class objects from the point of view of the command-line interpreter. This means you can launch a script by typing just the script name, without needing to prepend it with fshell
. Assuming a script called c:\system\console\scripts\myscript.script, the following are equivalent:
c:\>fshell c:\system\console\scripts\myscript.script c:\>fshell myscript.script c:\>fshell myscript c:\>myscript.script c:\>myscript
Added qpluginloader command. Added more comparison operations to var command. Added skip operation ('z') to debug command. Improved syntax of version command.
Fixed crash when running fshell --console defcons
from within an fshell session.
Fixed muxserver crash on hardware that enforces aligned memory accesses.
Fixed stack overflow in objinfo command (bug 3188256). For some time objinfo had been non-functional on all but WINS builds.
Symbols for the current EXEs codeseg were not being displayed in fdb's "stack" command unless "stack all" was specified. Fixed. Also improved display of non-symbol data in "stack all" format.
Reporting of errors from console creation now correctly reflected in fshell's return code. Added warning if a CCommandBase::Printf() format string overflows.
Fshell moved to http://sourceforge.net/projects/fshell (although if you're reading this, you probably already knew that).
Performance improvements to iosrv (which make use of the BinaryMode extensions when available), that means things like bulk data transfers over ymodem are much faster (around 8x). All relevant commands and consoles updated to use Binary mode where necessary.
Support for PC-side muxcons tool, by means of a new muxserver command which permits multiple fshell sessions to be multiplexed over a single connection.
Added ost command for debugging USB OST connections. Added build macro FSHELL_OST_SUPPORT
.
Added FSHELL_QT_SUPPORT
build macro and enabled it on S^3 and tb92 platforms. Sysinfo command now returns Qt version info if Qt is available.
Added whoami command for identifying the current fshell process.
Added new console extension functions: BinaryMode::Read() and BinaryMode::Write().
Fixed objinfo command so that it works on modern (S^3 or later, S60 5th or later) baselines. Added --match
option.
Fixed reporting of exit reasons in fshell pipelines. (Previously the "***PANIC***" prints would incorrectly report an exit reason of -13 for any thread command that exited with a non-negative error code, so for example "KERN-EXEC 0" would appear to be "KERN-EXEC -13".)
Fixed crash in undertaker command if its worker thread couldn't be instanciated.
Fixed memory leak (which eventually could cause a crash) in iosrv.
Added colour support to snake and --unicode option to fed.
Added USB fshell icon and FSHELL_PIPS_SUPPORT to default S^3 build.
The columns no longer jump around in the top command. Cleaned up swi's output and added version and file info to the --verbose list.
Some improvements to syntax of rcomm command. Also added more test modes for testing reads and writes.
Fixed stack overflow crash in ls command when using --recurse with a directory tree deeper than nine or so levels (see ls's smoketest).
Fixed size calculation bug in fed which made it almost impossible to use on certain consoles and unreliable to redraw on others.
Changed cat command to open files with EFileShareReadersOnly permissions, meaning it is now possible to cat a file at the same time as, for example, having the file open in fed. Also changed cat to bail out with an error if a file couldn't be opened, instead of printing a warning but still returning KErrNone.
Fixed long-standing bug in hello's --color
option that caused the text colour to get stuck on cyan after the command exited.
Changed match command so end-anchored match strings (ie ones not ending with a "*") behave as expected.
Added support for detecting linkage against ABSENT ordinals to chkdeps command, improved its error handling and fixed decoding of bytepair-compressed binaries.
Fixed hang (actually stray signal panic) in fdb. Fixed map file parsing and reporting of symbols in RAM-loaded EXE codesegments.
Fixed long-standing bug in VT100 console size detect that caused it to give up and make fshell think the console window was tiny if there was junk data in the serial port buffer.
Introduced iocli_qt.dll to hold Qt<->fshell integration APIs. First is IoUtils::GetIosrvDebugHandler()
that retuns a QtMsgHandler that routes to fshell. qDebug is rerouted to iosrv stdout, qFatal/qWarning to stderr.
Hal command's --device option now does what it's supposed to.
Fixed bug in win32cons where it truncated any writes > 256 chars. Most obvious with missing linefeeds in drvinfo -v.
Fixed hang in iosrv when running cat < file.txt
and the file was larger than the cat buffer size and contained multi-byte UTF-8 characters. Stopped incorrect UTF-8 escaping when redirecting to or from a file in binary mode.
Added --cd option to fshell, to set the working directory.
Open signing of fshell SIS files is now supported for production S60 handsets. Build fshell with the FSHELL_OPEN_SIGNED
macro defined (and without defining FSHELL_CAP_ALL
or 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).
Changed S60 3rd and 5th platforms to default to the Open Signed configuration, as that's what most people will be using.
Commands can now define a ==smoke-test
section in their CIF files, which defines a snippet of fshell script that will be run as part of fshell smoketest
or by invoking ciftest directly. See the ciftest documentation for more details.
Fixed crash in fed's handling of UTF-8 sequences split over a block boundary. Fixed a link bug in the autogenerated documentation.
Added support for automatically starting a USB personality to vt100usbcons via a new personality=x
key-value pair. See the vt100usbcons documentation for more information.
Added support for beagleboard to sf\3tshell platform.
Updated chkdeps command so that it works with byte-pair compressed binaries (experimental).
Added showdebug command to redirect RDebug::Print()s to the console.
Added input command to allow hardware key presses to be easily simulated via a console.
Added base64 command for encoding to and decoding from Base64.
Added CBtraceAppStart
to btrace_parser.dll. Also changed the interface of CBtraceAppResponse
to use window group name patterns rather than process ids (to make it consistent with other parts of the API).
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).
Added support for source reading from stdin
(primarily to better support remote execution of scripts).
Fixed a bug in iocli.dll that could cause environment variable updates to be ignored.
Fixed a bug in fshell that could cause 'foreach' commands to exit prematurely.
Added new console extension functions: ConsoleSize::ReportedCorrectly(), ConsoleSize::NotifySizeChanged().
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 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.
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.
First release of fshell through the Symbian Foundation.
Added terminal keyboard 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.
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 pcons start
.
More build fixes. Changed the documentation builder to automatically prepend %EPOCROOT%
(converted to a path relative form) to pre-processor include path options that start with epoc32. Prevously $(EPOCROOT)
was prepended in the makefile, which broke the documentation build because the pre-processor will only accept relative path include options.
Added --codesegs
option to ps and --no-write
option to gobble.
Added ENotifyKeypresses
and 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.
fshell's current working directory is now normalised (via new TFileName2::Normalize function) so that the case matches what's on the filesystem.
Fixed crash in start's --timeout
option and in chunkinfo when specifying a chunk address.
The dialog command no longer misreports the button that was pressed when running under the text windowserver.
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.
Test releases with build fixes.
Prerelease to the SF staging server.
Copyright (c) 2010 - 2011 Accenture. All rights reserved.