aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorache <ache@ache.one>2017-07-17 18:50:04 +0200
committerache <ache@ache.one>2017-07-17 18:50:04 +0200
commitbec432f0db0c13753550dcaa1dc51c1a973c4c4e (patch)
treeb930b106deac4d4833e59cac18194a4ffa870b1e
parentDebug and numerical tags year and track in regex mode (diff)
Regex on selection
-rwxr-xr-xmain.c2
-rw-r--r--regex.c13
-rw-r--r--regex.h1
3 files changed, 15 insertions, 1 deletions
diff --git a/main.c b/main.c
index 7cc60d5..f39d0e7 100755
--- a/main.c
+++ b/main.c
@@ -261,7 +261,7 @@ int main(int argc, char* argv[]){
break;
case 'x':
prepare("x");
- regexXtract(&menu.list[menu.hl], msg_win_str);
+ regexXtracts(&menu, msg_win_str);
resizeMain(&menu);
break;
case 'q':
diff --git a/regex.c b/regex.c
index 0b01347..a96fe5e 100644
--- a/regex.c
+++ b/regex.c
@@ -101,6 +101,19 @@ void regexSelection(menuC* menu, const char* msg) {
}
}
}
+void regexXtracts(menuC* menu, const char* msg) {
+ int hasSelect = 0;
+ for(int i = 0 ; i < menu->nbElem ; i++ ) {
+ if( menu->list[i].selected == 1 ) {
+ regexXtract(&(menu->list[i]), msg);
+ hasSelect = 1;
+ }
+ }
+ if( !hasSelect ) {
+ regexXtract(&menu->list[menu->hl], msg);
+ }
+
+}
/*
* Example regex :
*
diff --git a/regex.h b/regex.h
index 752f17b..f2659df 100644
--- a/regex.h
+++ b/regex.h
@@ -10,6 +10,7 @@ static int compile_regex (regex_t * r, const char * regex_text);
static int match_regex (const char* rS, const char * to_match, char* m2[], int nbR);
+void regexXtracts(menuC* it, const char* str);
void regexXtract(itemC* it, const char* str);
void regexSelection(menuC* menu, const char* msg);