user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 20-02-2017 12:48:07

arno
Membre

[résolu] Problème avec un "Todo"

Salut à tous
j'e suis devant un "os" avec une petite application super utile (pour moi !) que j'ai trouvé sur le site de Thuban (https://yeuxdelibad.net/Logiciel-libre/ … enbox.html
C'est un todo qui me permet de noter les titres de livre que je souhaite feuilleter.
j'ai donc crée un fichier où j'ai collé le code proposé par Thuban:

[== Indéfini ==]
#!/bin/sh
#Todo menu for Openbox
#Copyright (c) 2010 Cameron Turner
#Released under a BSD license
SB="#000000"
SF="#00AFAF"
NB="#000000"
NF="#797979"

# La police de dmenu
FN="-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso10646-*"
# Le prompt, ce que dmenu vous "dit"
P="Todo:"

OPTION="-fn $FN -nb $NB -nf $NF -sb $SB -sf $SF -i -p $P "

TODO_PATH=~/.todo
[ -z "$XDG_CONFIG_HOME" ] || TODO_PATH="$XDG_CONFIG_HOME/todo"

[ ! -f $TODO_PATH ] && touch $TODO_PATH

if [ "$1" = "add" ]
then
TODO=`echo "" | dmenu $OPTION`
[ "$TODO" = "" ] && exit
    echo $TODO >> $TODO_PATH
elif [ "$1" = "delete" ]
then
TEMP=`mktemp`
sed "$2 d" $TODO_PATH > $TEMP
mv -f $TEMP $TODO_PATH
elif [ "$1" = "edit" ]
then
TODO=`sed "$2 !d" < $TODO_PATH`
TODO=`echo "" | dmenu $OPTION`
[ "$TODO" = "" ] &amp;&amp; exit

TEMP=`mktemp`
TODO=`echo -n $TODO | sed -e "s/\&amp;/\&amp;/g" -e "s/</\</g" -e "s/>/\>/g"`
sed "$2 c$TODO" $TODO_PATH > $TEMP
mv -f $TEMP $TODO_PATH
else
echo "<openbox_pipe_menu>"
i=1
while read LINE
do
    echo "<menu id=\"todo-$i\" label=\"$LINE\">"
    echo "<item label=\"Editer\">"
    echo "<action name=\"Execute\"><execute>$0 edit $i</execute></action>"
    echo "</item>"
    echo "<item label=\"Supprimer\">"
    echo "<action name=\"Execute\"><execute>$0 delete $i</execute></action>"
    echo "</item>"
    echo "</menu>"
    i=$(($i+1))
done < $TODO_PATH
echo "<separator />"
echo "<item label=\"+ todo\">"
echo "<action name=\"execute\"><execute>$0 add</execute></action>"
echo "</item>"
echo "</openbox_pipe_menu>"
fi

et jusqu'à ce matin ça fonctionnait très bien. Mais comme un con, en entrant le titre d'un nouveau bouquin, je l'ai fait précédé d'un" et ça bloque le fonctionnement de l'appli. Lorsque je veux voir la liste des livres, j'ai un message d'erreur "sortie du pipe-menu invalide".

J'essaye donc d'accéder à la liste des livres afin de la modifier, afin de supprimer le ".
Lorsque je tape dans un terminal:

[== Indéfini ==]
arno@CBbureau:~$ /home/arno/Informatique/bash/obtodo.sh

j'ai bien la liste des livres qui apparaît, avec la ligne "incriminée" !!!

[== Indéfini ==]
</menu>
<menu id="todo-20" label=""donner: une histoire de l'altruise" de steiner">
<item label="Editer">
<action name="Execute"><execute>/home/arno/Informatique/bash/obtodo.sh edit 20</execute></action>
</item>

on voit le " devant le mot donner. mais je ne peux pas supprimer dans cette liste. Si je fais "nano /home/arno/Informatique/bash/obtodo.sh", j'ai le code de l'application mais pas la liste des livres.
Donc je suis un peu bloqué !!!
vous avez une idée ?

Dernière modification par arno (20-02-2017 13:13:32)

Hors ligne

#2 20-02-2017 13:13:15

arno
Membre

Re : [résolu] Problème avec un "Todo"

J'ai trouvé la solution !!! comme c'était la ligne 20 qui déconnait j'ai tapé

[== Indéfini ==]
arno@CBbureau:~$ /home/arno/Informatique/bash/obtodo.sh delete 20

et bing !! elle a disparu et j'ai à nouveau accès à ma liste !!

Le truc dingue c'est que le fait de poser ma question ici semble faire partie du processus de découverte de la solution que je sollicite chez les autres....!!!!
Donc, merci pour votre écoute et pardon pour le dérangement !!!

Hors ligne

#3 20-02-2017 13:15:59

WarLocG
#! modo de compet

Re : [résolu] Problème avec un "Todo"

Salut,

Est-ce que tu as posé la question a Thuban (vu que c'est son code) déjà ? On va tout de même regarder et voir ce qu'on peut faire mais ca demandera qu'on étudie/teste le code auparavant pour comprendre comment il tourne.

<menu id="todo-20" label=""donner: une histoire de l'altruise" de steiner">

Comment as-tu tapé ta commande contenant les " ? tu peux soit mettre \" sur les " intérieur soit enfermer toutes la chaîne entre ' auparavant. A essayer.

Bien à toi.

Edit: bon ben comme tu as trouvé la solution. Sujet résolu.


Avant de poser vos questions, jeter un oeil ici
Mon CodeVault et Wiki : ici
Les messages privés envers le staff sont uniquement pour les cas d'urgence ou affaires privées (personnelles). Les demandes se feront exclusivement sur le forum. Merci de respecter cette clause sous peine de sanctions.

Hors ligne

Pied de page des forums