I've found what is causing the problem for me Jason, but I don't know of a fix (aside from avoiding use of tc-wbarconf on my system).
The problem turns out to be that tc-wbarconf messes up the xwbar.lst file if the underlying system shell (/bin/sh) being used is bash rather than /bb/ash.
In Debian you can switch default /bin/sh from dash to bash using command 'dpkg-reconfigure dash' but I don't know if there is a specific command to change ash to bash in tinycore (and doubt that would make any difference to the tc-wbarconf issue with bash - though why it would have issue with bash I don't know).
The reason I need /bin/sh to point to /bin/bash is that I am running some gtkdialog-bash scripts (previously used in DebianDog and also Puppy Linux), which rely on bash for some of their functionality (they are complex so couldn't easily re-write them for ash anyway). In particular I am using weX, which is a gtkdialog-bash script to record either or all of the following streams: audio, X11 screencast video, embedded and webcam video. A bit like Simple Screen Recorder but not need qt libs. I've also made an experimental dCore sce for it as provided attached at the end of the following murga-linux forum here. It works very well on my dCore system as long as /bin/sh points to /bin/bash:http://murga-linux.com/puppy/viewtopic.php?p=946639#946639
weX itself is described here: http://murga-linux.com/puppy/viewtopic.php?t=107905
It depends on underlying ffmpeg for functionality.
It isn't enough, by the way, to start weX from an interactive bash shell (or with SHELL=/bin/bash) just like it isn't proving to be enough to start tc-wbarconf from an interactive /bb/ash shell (or with SHELL=/bb/ash tc-wbarconf). I believe that is because the gtkdialog C program system call uses the non-interactive /bin/sh no matter how you start things interactively (same with system call in tc-wbarconf).
Not knowing any special command in tinycore to make bash the default /bin/sh, I did the following:
1. Editied /etc/shells to include /bin/bash.
2. Used command: sudo chsh tc -s /bin/bash (which modifies /etc/passwd accordingly).
3. Using sudo uxterm:
mv sh shOLD
ln -s /bin/bash /bin/sh
As I say, that all worked fine, except that using tc-wbarconf to say remove an icon results in a messed up /etc/sysconfig/tcedir/xwbar.lst.
As an example, I used this simple sceboot.lst and empty xwbar.lst, with no mydata.gz persistence file as follows:
I then made my /bin/sh point to /bin/bash etc as outlined above and then started tc-wbarconf and tried removing the icon for RunProgram (or any program actually). Simply now examine the contents of xwbar.lst and you will see it is messed up (and thus wbar messed up). No such problem if /bin/sh is the default /bb/ash, but there should be a way for users to use bash as default non-interactive shell if they want to (or need, in my case).
Has anyone found a solution to this bash as system shell before? (And no, I do not want to use ash since no use as I've said for my purpose).
Hope you (or anyone) can help find a solution (or if its something simple needing changed in tc-wbarconf code).