Yorhel
aef88fb773
Removed the ST_QUIT state
...
There shouldn't be a need for such a state when there's a central
place where the program execution keeps returning to.
2009-05-12 19:06:15 +02:00
Yorhel
9d07027553
calc.c: Removed an unused variable in calc_item()
2009-05-12 18:39:00 +02:00
Yorhel
6de0a8ec00
Use correct hard link information after partial recalculation or deletion
...
Hard link detection is now done in a separate pass on the in-memory tree,
and duplicates can be 'removed' and 're-added' on the fly. When making any
changes in the tree, all hard links are re-added before the operation and
removed again afterwards.
While this guarantees that all hard link information is correct, it does
have a few drawbacks. I can currently think of two:
1. It's not the most efficient way to do it, and may be quite slow on
large trees. Will have to do some benchmarks later to see whether
it is anything to be concerned about.
2. The first encountered item is considered as 'counted' and all items
encountered after that are considered as 'duplicate'. Because the
order in which we traverse the tree doesn't always have to be the
same, the items that will be considered as 'duplicate' can vary with
each deletion or re-calculation. This might cause confusion for
people who aren't aware of how hard links work.
2009-05-11 20:02:46 +02:00
Yorhel
8209a7efe3
Allocate correct amount of memory for the links list
...
I happen to make these kinds of mistakes a lot, for some strange
reason. Maybe I should just get more sleep...
2009-05-05 19:33:30 +02:00
Yorhel
fd984e754c
Added hard link indicator in browser and help window
2009-05-05 19:25:52 +02:00
Yorhel
757bdff7ed
Implemented hardlink detection
2009-05-05 19:13:52 +02:00
Yorhel
4ea817568f
Use absolute path for matching excluded items
2009-05-02 10:45:33 +02:00
Yorhel
46de3510cd
Fixed buffer overrun in calc.c
2009-05-02 10:21:29 +02:00
Yorhel
ae14721c5f
Fixed segfault after aborting calculation
...
I really, really, wasn't think when writing commit
91b131a080
2009-04-26 15:23:09 +02:00
Yorhel
2a5c9a242f
Fixed display of one-component-after-root directory
...
Bug introduced in ece21a668d
It's amazing how many mistakes one person can make in a few hours.
2009-04-26 13:26:20 +02:00
Yorhel
91b131a080
Fixed segault after finishing calculation
...
Bug introduced in 796d043c0d
Apparently I was still sleeping or something...
2009-04-26 13:15:53 +02:00
Yorhel
ece21a668d
Fixed display of the root directory
2009-04-26 13:10:00 +02:00
Yorhel
9cc79b0fab
Properly call calc_leavepath() on error
2009-04-26 12:58:22 +02:00
Yorhel
796d043c0d
Fixed bug with opening the root directory
2009-04-26 12:55:27 +02:00
Yorhel
290c7a7d70
Renamed ncdu.h to global.h and #included all other header files into that
...
So we're actually back to having one header file for everything,
except it's now maintainable.
2009-04-26 11:08:40 +02:00
Yorhel
ba243df042
Centralized screen update delay into input_handle()
2009-04-26 09:49:51 +02:00
Yorhel
8ddec92724
Huge performance improvement with the calculation
2009-04-26 09:35:16 +02:00
Yorhel
c079e0d23a
Fixed another memory allocation issue
2009-04-25 16:30:59 +02:00
Yorhel
3dc21365f5
Fixed another PATH_MAX reliance in calc.c
...
Make sure not to pass the absolute root directory to lstat() and
chdir(), as these functions can't handle long path names.
2009-04-25 14:31:54 +02:00
Yorhel
c432928bd2
Fixed subdirectory name after refresh and a tiny memory leak
2009-04-25 14:29:20 +02:00
Yorhel
18211ebe2e
Properly chdir() before lstat()
2009-04-25 11:49:20 +02:00
Yorhel
4bb7d6b7c2
Removed reliance on PATH_MAX on most places
...
ncdu already does seem to handle longer paths now, though there are
still a few places where the code still relies on PATH_MAX. Will fix
those later.
2009-04-23 21:15:11 +02:00
Yorhel
7698bfd980
Split path handling into path.c and replaced rpath() with a better implementation
...
This is the first step into replacing all code that relies on PATH_MAX,
more changes will follow.
2009-04-23 19:44:37 +02:00
Yorhel
d75cc8fb72
Replace 'suseconds_t' with 'long'
...
suseconds_t isn't always defined on some systems, but all possible
values are guaranteed to fit into a long, so use that.
2009-04-19 14:29:49 +02:00
Yorhel
76a2530579
Fixed bug in calculation window title
2009-04-19 09:45:27 +02:00
Yorhel
33cd126197
Draw browser on background while calculating
2009-04-18 15:35:37 +02:00
Yorhel
e079026ac8
Kept internal variables internal in browser.c and added browse_init()
...
Looks much better this way!
2009-04-18 15:23:33 +02:00
Yorhel
3ad39f3741
Don't touch the original tree while recalculating
...
This change makes it possible to still show the browser with correct
(previous) data while calculating.
2009-04-18 15:07:23 +02:00
Yorhel
4a751f0564
Removed stcalc and used several global variables instead
...
Considering it's now all internal in calc.c, anyway.
2009-04-18 14:36:24 +02:00
Yorhel
372f69853c
Initialize calc_delay and calc_smfs in calc.c rather than main.c
2009-04-18 14:16:48 +02:00
Yorhel
b24c3dee40
Got rid of SF_SI
...
It was a totally useless feature, anyway.
2009-04-18 14:05:45 +02:00
Yorhel
2b209ba9b2
Moved SF_SMFS in ncdu.h to char calc_smfs in calc.h
...
Another code cleanup, many more to come...
2009-04-18 14:04:53 +02:00
Yorhel
2a25bfdc7a
Moved and renamed sdelay in ncdu.h to calc_delay in calc.h
...
Because that's where it's supposed to be.
(geez, the current code is still a mess)
2009-04-18 13:51:45 +02:00
Yorhel
05756ad567
Remove some calc.c specific defines from ncdu.h
...
And updated TODO a bit
2009-04-18 13:45:32 +02:00
Yorhel
6d5ae5eb76
Fixed minor size + item count inconsistency on recalculating a dir
...
Namely, the 'parent' dir item itself that is recalculated isn't
reconsidered in its parents.
2009-04-16 19:05:11 +02:00
Yorhel
d297af2ce8
Fixed major bug with counting all sizes twice
...
I have absolutely no idea when I introduced this bug, will check
the history later.
2009-04-16 19:00:13 +02:00
Yorhel
34ba5348c8
Made stcalc static within calc.c and abstracted access to it with calc_init()
...
This actually makes the struct itself obsolete, as all information is now only
useful within calc.c itself and other files don't have to do anything with it.
2009-04-16 18:26:39 +02:00
Yorhel
5790b817f9
Re-added recalculating (sub)directories
2009-04-13 19:32:40 +02:00
Yorhel
b8877be907
Fixed display bug while calculating
2009-04-13 18:38:07 +02:00
Yorhel
7a0730f5d2
(Partly) rewrote browser.c to the new system
...
Not fully finished yet with this one, though.
2009-04-13 17:25:46 +02:00
Yorhel
690eb3f593
Header file cleanup
...
Moved everything that doesn't belong in ncdu.h into the other header
or c files. Looks much better this way.
2009-04-11 13:49:08 +02:00
Yorhel
fa90c77c96
Rewrote util.h to the new style
2009-04-11 11:38:36 +02:00
Yorhel
6c0a56a26f
Rewrote exclude.c to the new style
2009-04-11 10:53:13 +02:00
Yorhel
cc8cc99213
Moved definitions for calc.c to separate header file
...
Though it's not really useful yet now ncdu.h still includes it
2009-04-11 10:04:24 +02:00
Yorhel
c4be23a4c5
Each state can have it's own global variable
2009-04-11 09:58:33 +02:00
Yorhel
f392bf3ee1
Rewrote calc.c in the new style & framework
...
ncdu is currently pretty much in a non-working state, but things will
get fixed eventually after porting the other source files to the new
framework.
2009-04-10 18:16:33 +02:00
yorhel
e7fb90fc67
Year bump
...
git-svn-id: svn://blicky.net/ncdu/trunk@48 ce56bc8d-f834-0410-b703-f827bd498a76
2009-01-11 09:34:19 +00:00
yorhel
20296b2567
Fixed rpath() bug on /.
...
git-svn-id: svn://blicky.net/ncdu/trunk@47 ce56bc8d-f834-0410-b703-f827bd498a76
2009-01-11 09:30:53 +00:00
yorhel
c306d3fe3b
Updated copyright year to cover 2008 as well
...
git-svn-id: svn://blicky.net/ncdu/trunk@36 ce56bc8d-f834-0410-b703-f827bd498a76
2008-08-02 13:59:58 +00:00
yorhel
cd2ade76c6
Included patch from Cygwin package: Fix crash on names with slashes from /proc/registry
...
git-svn-id: svn://blicky.net/ncdu/trunk@33 ce56bc8d-f834-0410-b703-f827bd498a76
2008-08-02 11:14:48 +00:00