10Fermer12
squalylLe 11/06/2013 à 08:13
effectivement je ne gère pas les backslashes, seulement les guillemets simples et doubles, et abc "de"f donnera deux arguments abc et def.

merci kevin pour l'idée, mais je ne vais pas faire une dépendance sur curses pour un truc aussi simple, donc je passerai par getchar et un tc[s|g]etattr pour désactiver le buffering temporairement. (sinon je me serais pas fait chier et j'aurais déja utilisé gnu readline, mais mon code ne sera pas gpl contrairement à cette lib).

zeph: oui en effet je modifie le paramètre sur place, je m'étais accordé ça parce que ce paramètre est en fait une variable locale char[] qui est écrasé à chaque commande par les nouvelles données de readline.
Dans une autre version je faisais 2 passes, une pour compter les paramètres et l'autre pour les stocker dans un truc malloc()é une fois pour toutes avec assez de place pour les arguments et les pointeurs. Là j'avais un peu la flemme tongue

(pour les quotes c'est pas des constantes magiques, c'est le nombre de quotes embarrassed 0=QUOTE_NONE, 1=QUOTE_SINGLE, 2=QUOTE_DOUBLE, 012 ça allait plus vite embarrassed)

si vous avez des règles de gestion plus intelligentes pour les quotes je veux bien les lire, mais je veux que ça reste simple, c'est pas le code principal de mon programme grin

et d'ailleurs vous suxez, vous avez pas vu que count n'était pas initialisée et que ça partait dans le décor au 2e appel embarrassed