aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmain.c78
-rw-r--r--readline.c9
-rw-r--r--readline.h2
-rw-r--r--readline.obin0 -> 7384 bytes
-rw-r--r--wind.c2
5 files changed, 49 insertions, 42 deletions
diff --git a/main.c b/main.c
index a179c16..33dbab8 100755
--- a/main.c
+++ b/main.c
@@ -55,15 +55,15 @@ void fail_exit(const char *msg) {
}
-void edit_rl(menuC* menu,void func(TagLib_Tag *, const char*), int c);
+void edit_rl(menuC* menu,void func(TagLib_Tag *, const char*), int c, const char* str);
-void edit_rl(menuC* menu,void func(TagLib_Tag *, const char*), int c) {
+void edit_rl(menuC* menu,void func(TagLib_Tag *, const char*), int c, const char* str) {
status[1]=c;
printStatus();
refresh();
curs_set(2);
move(LINES-1, 0);
- readline_n();
+ readline_n(str);
clear();
curs_set(0);
itemC* it = menu->list+menu->hl;
@@ -87,13 +87,15 @@ void edit_rl(menuC* menu,void func(TagLib_Tag *, const char*), int c) {
}
}
}
-void edit_rl_int(menuC* menu,void func(TagLib_Tag *, unsigned int), int c) {
+void edit_rl_int(menuC* menu,void func(TagLib_Tag *, unsigned int), int c, int oldOne_int) {
status[1]=c;
printStatus();
refresh();
curs_set(2);
move(LINES-1, 0);
- readline_n();
+ char oldOne[5];
+ sprintf(oldOne, "%d", oldOne_int);
+ readline_n(oldOne);
clear();
curs_set(0);
itemC* it = menu->list+menu->hl;
@@ -293,41 +295,43 @@ int main(int argc, char* argv[]){
// fprintf(stderr, "[%c]", c);
}
break;
- case 'e':
+ case 'e': {
echo();
move(LINES-1,1);
- switch(c) {
- case 't':
- edit_rl(&menu,taglib_tag_set_title,'t');
- break;
- case 'a':
- edit_rl(&menu,taglib_tag_set_artist,'a');
- break;
- case 'b':
- edit_rl(&menu,taglib_tag_set_album,'b');
- break;
- case 'y':
- edit_rl_int(&menu,taglib_tag_set_year,'b');
- break;
- case 'n':
- edit_rl_int(&menu,taglib_tag_set_track,'b');
- break;
- case 'g':
- edit_rl(&menu,taglib_tag_set_genre,'g');
- break;
- case 'c':
- edit_rl(&menu,taglib_tag_set_comment,'c');
- break;
- default:
- ;
- }
- comp = 0;
- status[0] = status[1] = 0;
+ itemC* it = menu.list+menu.hl;
+ switch(c) {
+ case 't':
+ edit_rl(&menu,taglib_tag_set_title,'t', taglib_tag_title(it->info.tag));
+ break;
+ case 'a':
+ edit_rl(&menu,taglib_tag_set_artist,'a', taglib_tag_artist(it->info.tag));
+ break;
+ case 'b':
+ edit_rl(&menu,taglib_tag_set_album,'b', taglib_tag_album(it->info.tag));
+ break;
+ case 'y':
+ edit_rl_int(&menu,taglib_tag_set_year,'y', taglib_tag_year(it->info.tag));
+ break;
+ case 'n':
+ edit_rl_int(&menu,taglib_tag_set_track,'n', taglib_tag_track(it->info.tag));
+ break;
+ case 'g':
+ edit_rl(&menu,taglib_tag_set_genre,'g', taglib_tag_genre(it->info.tag));
+ break;
+ case 'c':
+ edit_rl(&menu,taglib_tag_set_comment,'c', taglib_tag_comment(it->info.tag));
+ break;
+ default:
+ ;
+ }
+ comp = 0;
+ status[0] = status[1] = 0;
- printmenu(&menu);
- printTagInfoHeader();
- printTagInfo(&menu);
- break;
+ printmenu(&menu);
+ printTagInfoHeader();
+ printTagInfo(&menu);
+ }
+ break;
}
printStatus();
printmenu(&menu);
diff --git a/readline.c b/readline.c
index 523d7d7..d9bf8e3 100644
--- a/readline.c
+++ b/readline.c
@@ -172,9 +172,14 @@ void init_readline(void)
}
-void readline_n(void) {
+void readline_n(const char* str) {
curs_set(2);
resize();
+ for( ; *str ; str++ ) {
+ if( *str != '\n' && *str != '\f' && *str != KEY_RESIZE ) {
+ forward_to_readline(*str);
+ }
+ }
while (!should_exit) {
// Using getch() here instead would refresh stdscr, overwriting the
// initial contents of the other windows on startup
@@ -197,5 +202,3 @@ void readline_n(void) {
should_exit = 0;
}
-
-
diff --git a/readline.h b/readline.h
index cf96e11..cf1e340 100644
--- a/readline.h
+++ b/readline.h
@@ -15,7 +15,7 @@
-void readline_n(void);
+void readline_n(const char*);
void init_readline(void);
diff --git a/readline.o b/readline.o
new file mode 100644
index 0000000..932a9cc
--- /dev/null
+++ b/readline.o
Binary files differ
diff --git a/wind.c b/wind.c
index bbf23f2..78b9835 100644
--- a/wind.c
+++ b/wind.c
@@ -19,7 +19,7 @@ void prepare(char* s) {
refresh();
strcpy(status, s);
printStatus();
- readline_n();
+ readline_n("");
clear();
curs_set(0);
}