Thanks for your report, Rich. Can you tell me what filesystem(s) you see these issues with? (Ext3, NTFS, etc.)
1) The current way Fluff gathers filecount and size info about a directory's contents is a bit of a hack... I wrote an external script that uses the recursive "find" command-line utility and the command-line disk usage utility:
#!/bin/sh
# Assess size and recursive filecount within a specified directory
diskspace=`du -shL $1 2> /dev/null`
space_incomplete=$?
filecount=`find $1 -type f -o -type l $2 2> /dev/null > /dev/null`
count_incomplete=$?
filecount=`find $1 -type f -o -type l $2 2> /dev/null | wc -l`
incomplete=0
if [ $space_incomplete -ne 0 ]; then
incomplete=1
fi
if [ $count_incomplete -ne 0 ]; then
incomplete=1
fi
echo "incomplete?: $incomplete; filecount: $filecount; space: $diskspace"
I did this to avoid the work and code space to write my own tree-traversal routine to gather this info. Unfortunately, there seems to be a few things that can lead to invalid or misleading results from the current method. I know these stats are sometimes handy, but I don't want to bloat up Fluff much. Can anyone offer a better method to gather these statistics in the script? If not, maybe I will try to write a tight tree-traversal method of gathering the info, or maybe I'll drop the directory contents statistics completely. Will this info be missed much?
2) For the Creation and Modification dates, here is the code:
mdate_dsp_p->copy_label(ctime(& fi_p->status.st_mtime));
cdate_dsp_p->copy_label(ctime(& fi_p->status.st_ctime));
adate_dsp_p->copy_label(ctime(& fi_p->status.st_atime));
The .st_ctime and .st_mtime are data elements returned by the the posix stat() routine (file STATistics) in a data structure. This _should_ be ok. I'll double-check... maybe I made some other mistake, but maybe the filesystem is not reporting the dates properly? Does anyone else see the dates backwards?
3) The repainting is triggered by "inotify" events from the Linux kernel. If Arora is updating info in a settings file or any other file that is included in your session of Fluff, you will see the repaint. Perhaps Fluff could be a bit lazy about repaints and only do a repaint if nothing else happens for a reasonable time period (so multiple successive repaints are consolodated). FLTK also offers double-buffered screen refresh, so if I activate that feature, the repainting won't be so noticable. But it could impact resource usage (speed, memory).
For all three issues, maybe I will experiment to see what can be done with minimal impact on size and performance.
--
ML