Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
nccf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
702
Provoz
nccf
Commits
e079026a
Commit
e079026a
authored
16 years ago
by
Yorhel
Browse files
Options
Downloads
Patches
Plain Diff
Kept internal variables internal in browser.c and added browse_init()
Looks much better this way!
parent
3ad39f37
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
src/browser.c
+70
-54
70 additions, 54 deletions
src/browser.c
src/browser.h
+1
-18
1 addition, 18 deletions
src/browser.h
src/calc.c
+1
-2
1 addition, 2 deletions
src/calc.c
src/main.c
+0
-2
0 additions, 2 deletions
src/main.c
with
72 additions
and
76 deletions
src/browser.c
+
70
−
54
View file @
e079026a
...
...
@@ -32,11 +32,23 @@
#include
<stdlib.h>
#include
<ncurses.h>
#define ishidden(x) (stbrowse.flags & BF_HIDE && (\
(x->next != stbrowse.cur && (x->name[0] == '.' || x->name[strlen(x->name)-1] == '~'))\
|| x->flags & FF_EXL))
struct
state_browser
stbrowse
;
#define BF_NAME 0x01
#define BF_SIZE 0x02
#define BF_NDIRF 0x04
/* Normally, dirs before files, setting this disables it */
#define BF_DESC 0x08
#define BF_HIDE 0x10
/* don't show hidden files... */
#define BF_AS 0x40
/* show apparent sizes instead of disk usage */
#define BF_INFO 0x80
/* show file information window */
struct
dir
*
browse_dir
=
NULL
;
unsigned
char
graph
=
0
;
unsigned
char
flags
=
BF_SIZE
|
BF_DESC
;
#define ishidden(x) (flags & BF_HIDE && (\
(x->next != browse_dir && (x->name[0] == '.' || x->name[strlen(x->name)-1] == '~'))\
|| x->flags & FF_EXL))
/*
...
...
@@ -69,19 +81,19 @@ int browse_cmp(struct dir *x, struct dir *y) {
struct
dir
*
a
,
*
b
;
int
r
=
0
;
if
(
stbrowse
.
flags
&
BF_DESC
)
{
if
(
flags
&
BF_DESC
)
{
a
=
y
;
b
=
x
;
}
else
{
b
=
y
;
a
=
x
;
}
if
(
!
(
stbrowse
.
flags
&
BF_NDIRF
)
&&
y
->
flags
&
FF_DIR
&&
!
(
x
->
flags
&
FF_DIR
))
if
(
!
(
flags
&
BF_NDIRF
)
&&
y
->
flags
&
FF_DIR
&&
!
(
x
->
flags
&
FF_DIR
))
return
(
1
);
if
(
!
(
stbrowse
.
flags
&
BF_NDIRF
)
&&
!
(
y
->
flags
&
FF_DIR
)
&&
x
->
flags
&
FF_DIR
)
if
(
!
(
flags
&
BF_NDIRF
)
&&
!
(
y
->
flags
&
FF_DIR
)
&&
x
->
flags
&
FF_DIR
)
return
(
-
1
);
if
(
stbrowse
.
flags
&
BF_NAME
)
if
(
flags
&
BF_NAME
)
r
=
strcmp
(
a
->
name
,
b
->
name
);
if
(
stbrowse
.
flags
&
BF_AS
)
{
if
(
flags
&
BF_AS
)
{
if
(
r
==
0
)
r
=
a
->
asize
>
b
->
asize
?
1
:
(
a
->
asize
==
b
->
asize
?
0
:
-
1
);
if
(
r
==
0
)
...
...
@@ -153,9 +165,9 @@ void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
/* reference to parent dir has a different format */
if
(
ispar
)
{
mvhline
(
row
,
0
,
' '
,
wincols
);
o
=
stbrowse
.
graph
==
0
?
11
:
stbrowse
.
graph
==
1
?
23
:
stbrowse
.
graph
==
2
?
18
:
o
=
graph
==
0
?
11
:
graph
==
1
?
23
:
graph
==
2
?
18
:
29
;
mvaddstr
(
row
,
o
,
"/.."
);
if
(
n
->
flags
&
FF_BSEL
)
...
...
@@ -174,19 +186,19 @@ void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
&&
n
->
sub
==
NULL
?
'e'
:
' '
;
dt
=
n
->
flags
&
FF_DIR
?
'/'
:
' '
;
size
=
formatsize
(
stbrowse
.
flags
&
BF_AS
?
n
->
asize
:
n
->
size
);
size
=
formatsize
(
flags
&
BF_AS
?
n
->
asize
:
n
->
size
);
/* create graph (if necessary) */
pc
=
((
float
)(
stbrowse
.
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
/
(
float
)(
stbrowse
.
flags
&
BF_AS
?
n
->
parent
->
asize
:
n
->
parent
->
size
))
*
100
.
0
f
;
if
(
stbrowse
.
graph
==
1
||
stbrowse
.
graph
==
3
)
{
o
=
(
int
)(
10
.
0
f
*
(
float
)(
stbrowse
.
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
/
(
float
)
max
);
pc
=
((
float
)(
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
/
(
float
)(
flags
&
BF_AS
?
n
->
parent
->
asize
:
n
->
parent
->
size
))
*
100
.
0
f
;
if
(
graph
==
1
||
graph
==
3
)
{
o
=
(
int
)(
10
.
0
f
*
(
float
)(
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
/
(
float
)
max
);
for
(
i
=
0
;
i
<
10
;
i
++
)
gr
[
i
]
=
i
<
o
?
'#'
:
' '
;
gr
[
10
]
=
'\0'
;
}
/* format and add item to the list */
switch
(
stbrowse
.
graph
)
{
switch
(
graph
)
{
case
0
:
sprintf
(
tmp
,
"%%c %%7s %%c%%-%ds"
,
wincols
-
12
);
mvprintw
(
row
,
0
,
tmp
,
ct
,
size
,
dt
,
cropstr
(
n
->
name
,
wincols
-
12
));
...
...
@@ -216,19 +228,7 @@ int browse_draw() {
off_t
max
=
1
;
erase
();
cur
=
stbrowse
.
cur
;
/* exit if there are no items to display */
if
(
cur
==
NULL
||
cur
->
parent
==
NULL
)
{
if
(
cur
==
NULL
||
cur
->
sub
==
NULL
)
{
erase
();
refresh
();
endwin
();
printf
(
"No items to display...
\n
"
);
exit
(
0
);
}
else
stbrowse
.
cur
=
cur
=
cur
->
sub
;
}
cur
=
browse_dir
;
/* create header and status bar */
attron
(
A_REVERSE
);
...
...
@@ -248,7 +248,7 @@ int browse_draw() {
mvaddch
(
1
,
4
+
((
int
)
strlen
(
tmp
)
>
wincols
-
8
?
wincols
-
8
:
(
int
)
strlen
(
tmp
)),
' '
);
/* TODO: don't sort when it's not necessary */
cur
=
st
browse
.
cu
r
=
browse_sort
(
cur
);
cur
=
browse
_di
r
=
browse_sort
(
cur
);
cur
->
parent
->
sub
=
cur
;
/* add reference to parent dir */
...
...
@@ -266,8 +266,8 @@ int browse_draw() {
continue
;
if
(
n
->
flags
&
FF_BSEL
)
selected
=
i
;
if
((
stbrowse
.
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
>
max
)
max
=
stbrowse
.
flags
&
BF_AS
?
n
->
asize
:
n
->
size
;
if
((
flags
&
BF_AS
?
n
->
asize
:
n
->
size
)
>
max
)
max
=
flags
&
BF_AS
?
n
->
asize
:
n
->
size
;
i
++
;
}
if
(
!
selected
)
...
...
@@ -299,9 +299,9 @@ void browse_key_sel(int change) {
struct
dir
*
n
,
*
cur
,
par
;
int
i
,
max
;
cur
=
st
browse
.
cu
r
;
cur
=
browse
_di
r
;
par
.
next
=
cur
;
if
(
stbrowse
.
cur
->
parent
->
parent
)
if
(
cur
->
parent
->
parent
)
cur
=
&
par
;
i
=
0
;
...
...
@@ -325,7 +325,7 @@ void browse_key_sel(int change) {
#define toggle(x,y) if(x & y) x -=y; else x |= y
#define hideinfo if(
stbrowse.
flags & BF_INFO)
stbrowse.
flags -= BF_INFO
#define hideinfo if(flags & BF_INFO) flags -= BF_INFO
int
browse_key
(
int
ch
)
{
char
tmp
[
PATH_MAX
];
...
...
@@ -356,54 +356,54 @@ int browse_key(int ch) {
/* sorting items */
case
'n'
:
hideinfo
;
if
(
stbrowse
.
flags
&
BF_NAME
)
toggle
(
stbrowse
.
flags
,
BF_DESC
);
if
(
flags
&
BF_NAME
)
toggle
(
flags
,
BF_DESC
);
else
stbrowse
.
flags
=
(
stbrowse
.
flags
&
BF_HIDE
)
+
(
stbrowse
.
flags
&
BF_NDIRF
)
+
BF_NAME
;
flags
=
(
flags
&
BF_HIDE
)
+
(
flags
&
BF_NDIRF
)
+
BF_NAME
;
break
;
case
's'
:
hideinfo
;
if
(
stbrowse
.
flags
&
BF_SIZE
)
toggle
(
stbrowse
.
flags
,
BF_DESC
);
if
(
flags
&
BF_SIZE
)
toggle
(
flags
,
BF_DESC
);
else
stbrowse
.
flags
=
(
stbrowse
.
flags
&
BF_HIDE
)
+
(
stbrowse
.
flags
&
BF_NDIRF
)
+
BF_SIZE
+
BF_DESC
;
flags
=
(
flags
&
BF_HIDE
)
+
(
flags
&
BF_NDIRF
)
+
BF_SIZE
+
BF_DESC
;
break
;
case
'h'
:
hideinfo
;
toggle
(
stbrowse
.
flags
,
BF_HIDE
);
toggle
(
flags
,
BF_HIDE
);
browse_key_sel
(
0
);
break
;
case
't'
:
hideinfo
;
toggle
(
stbrowse
.
flags
,
BF_NDIRF
);
toggle
(
flags
,
BF_NDIRF
);
break
;
case
'a'
:
hideinfo
;
toggle
(
stbrowse
.
flags
,
BF_AS
);
toggle
(
flags
,
BF_AS
);
break
;
/* browsing */
case
10
:
case
KEY_RIGHT
:
hideinfo
;
for
(
n
=
st
browse
.
cu
r
;
n
!=
NULL
;
n
=
n
->
next
)
for
(
n
=
browse
_di
r
;
n
!=
NULL
;
n
=
n
->
next
)
if
(
n
->
flags
&
FF_BSEL
)
break
;
if
(
n
!=
NULL
&&
n
->
sub
!=
NULL
)
st
browse
.
cu
r
=
n
->
sub
;
if
(
n
==
NULL
&&
st
browse
.
cu
r
->
parent
->
parent
)
st
browse
.
cu
r
=
st
browse
.
cu
r
->
parent
->
parent
->
sub
;
browse
_di
r
=
n
->
sub
;
if
(
n
==
NULL
&&
browse
_di
r
->
parent
->
parent
)
browse
_di
r
=
browse
_di
r
->
parent
->
parent
->
sub
;
break
;
case
KEY_LEFT
:
hideinfo
;
if
(
st
browse
.
cu
r
->
parent
->
parent
!=
NULL
)
st
browse
.
cu
r
=
st
browse
.
cu
r
->
parent
->
parent
->
sub
;
if
(
browse
_di
r
->
parent
->
parent
!=
NULL
)
browse
_di
r
=
browse
_di
r
->
parent
->
parent
->
sub
;
break
;
/* refresh */
case
'r'
:
hideinfo
;
calc_init
(
getpath
(
st
browse
.
cu
r
,
tmp
),
st
browse
.
cu
r
->
parent
);
calc_init
(
getpath
(
browse
_di
r
,
tmp
),
browse
_di
r
->
parent
);
break
;
/* and other stuff */
...
...
@@ -411,7 +411,7 @@ int browse_key(int ch) {
return
1
;
case
'g'
:
hideinfo
;
if
(
++
stbrowse
.
graph
>
3
)
stbrowse
.
graph
=
0
;
if
(
++
graph
>
3
)
graph
=
0
;
break
;
/*
case '?':
...
...
@@ -419,7 +419,7 @@ int browse_key(int ch) {
showHelp();
break;
case 'i':
toggle(
stbrowse.
flags, BF_INFO);
toggle(flags, BF_INFO);
break;
case 'd':
hideinfo;
...
...
@@ -436,3 +436,19 @@ int browse_key(int ch) {
}
void
browse_init
(
struct
dir
*
cur
)
{
if
(
cur
==
NULL
||
cur
->
parent
==
NULL
)
{
if
(
cur
==
NULL
||
cur
->
sub
==
NULL
)
{
erase
();
refresh
();
endwin
();
printf
(
"No items to display...
\n
"
);
exit
(
0
);
}
else
browse_dir
=
cur
->
sub
;
}
else
browse_dir
=
cur
;
pstate
=
ST_BROWSE
;
}
This diff is collapsed.
Click to expand it.
src/browser.h
+
1
−
18
View file @
e079026a
...
...
@@ -28,26 +28,9 @@
#include
"ncdu.h"
/* Browse Flags */
#define BF_NAME 0x01
#define BF_SIZE 0x02
#define BF_NDIRF 0x04
/* Normally, dirs before files, setting this disables it */
#define BF_DESC 0x08
#define BF_HIDE 0x10
/* don't show hidden files... */
#define BF_SORT 0x20
/* no need to resort, list is already in correct order */
#define BF_AS 0x40
/* show apparent sizes instead of disk usage */
#define BF_INFO 0x80
/* show file information window */
struct
state_browser
{
struct
dir
*
cur
;
/* head of current directory */
char
graph
;
unsigned
char
flags
;
};
extern
struct
state_browser
stbrowse
;
int
browse_key
(
int
);
int
browse_draw
(
void
);
void
browse_init
(
struct
dir
*
);
#endif
...
...
This diff is collapsed.
Click to expand it.
src/calc.c
+
1
−
2
View file @
e079026a
...
...
@@ -421,8 +421,7 @@ void calc_process() {
/* start calculating */
if
(
!
calc_dir
(
root
,
tmp
)
&&
!
failed
)
{
pstate
=
ST_BROWSE
;
stbrowse
.
cur
=
root
->
sub
;
browse_init
(
root
->
sub
);
/* update references and free original item */
if
(
orig
)
{
...
...
This diff is collapsed.
Click to expand it.
src/main.c
+
0
−
2
View file @
e079026a
...
...
@@ -140,8 +140,6 @@ int main(int argc, char **argv) {
argv_parse
(
argc
,
argv
,
dir
);
calc_init
(
dir
,
NULL
);
stbrowse
.
flags
=
BF_SIZE
|
BF_DESC
;
stbrowse
.
graph
=
0
;
initscr
();
cbreak
();
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment