Un outil pour réarranger les lignes de stdin - retour accueil
git clone git://bebou.netlib.re/reorder
Log | Files | Refs | README |
commit 3e719486010113bc7dfb2d0ae2260256b52c62a4 parent c379a42f95ddd76c355d4df222dee533a7e12c82 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Mon, 1 Jul 2024 17:26:11 +0200 Meilleure gestion des séquences d'échappement Diffstat:
M | README | | | 5 | ++++- |
M | reorder | | | 15 | +++++++++------ |
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/README b/README @@ -2,4 +2,7 @@ Un outil pour réarranger les lignes de stdin Dans le but d'être une interface pour le pipe-card-game -Un POC, dépend salement de xev +Un POC, dépend salement de xev, tee + +Bug connu, quand on spamme le haut ou le bas en mode changement on risque de +perdre l'affichage du fichier diff --git a/reorder b/reorder @@ -1,7 +1,7 @@ #! /bin/sh reset() { - sed -i "s/\[91m//g;s/\[92m//g" $file + sed -i "s/\[91m//g;s/\[92m//g;s/\[0m//g" $file } swaplines() { @@ -10,8 +10,8 @@ swaplines() { } modify() { - clear tput cup 0 0 + printf "\033c" case "$mode" in (Looking) cat $file | @@ -19,8 +19,7 @@ modify() { (Selecting) cat $file | swaplines $1 $2 | - sed "$1 s/^/\x1b[92m/;s/$/\x1b[0m/" | - tee $file ;; + tee $file;; (*) break ;; esac @@ -53,8 +52,12 @@ xev | curline=$(( $curline + 1 )) ;; (Return) prevline=$curline - [ "$mode" = "Looking" ] && mode="Selecting" || mode="Looking" - reset ;; + reset + [ "$mode" = "Looking" ] \ + && { mode="Selecting"; + sed -Ei "$curline s/^/\x1b[92m/ + $curline s/$/\x1b[0m/" $file; } \ + || mode="Looking" ;; (*) echo $key;exit 0 ;; esac modify $curline $prevline