sandy

text editor
git clone git://git.suckless.org/sandy
Log | Files | Refs | README | LICENSE

commit affc7210813614107ac377a9097c4b77ae15d2cf
parent ef0ce7608514c768177c17196dc03b2bc17e9844
Author: Rafael Garcia <rafael.garcia.gallego@gmail.com>
Date:   Tue, 31 May 2011 00:59:09 +0200

Better #defines for PROMPT and (TO|FROM)(SEL|CLIP). Kudos to pancake.
Diffstat:
TODO | 1+
config.def.h | 14++++++++------
2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/TODO b/TODO @@ -1,4 +1,5 @@ In no particular order, at sandy.c: +- Bind ^Z to stop, handle sigcont - Rework m_*word - Create m_*vline - Bracket matching? diff --git a/config.def.h b/config.def.h @@ -13,8 +13,9 @@ static const char spcstr[3] = { (char)0xC2, (char)0xB7, 0x00 }; /* Middle dot /* Args to f_spawn */ #define PROMPT(prompt, default, cmd) { .v = (const char *[]){ "/bin/sh", "-c", \ - "if [ $DISPLAY ]; then arg=\"`echo \\\"" default "\\\" | dmenu -p '" prompt "'`\";" \ - "else echo -n '\033[H\033[K\033[7m'; read -p '" prompt " ' arg; fi &&" \ + "xsel -h >/dev/null 2>&1 || DISPLAY=\"\";"\ + "if [ -n \"$DISPLAY\" ]; then arg=\"`echo \\\"" default "\\\" | dmenu -p '" prompt "'`\";" \ + "else printf \"\033[0;0H\033[7m"prompt"\033[K\033[0m \"; read arg; fi &&" \ "echo " cmd " \"$arg\" > ${SANDY_FIFO}", NULL } } #define FIND PROMPT("Find:", "${SANDY_FIND}", "find") @@ -25,10 +26,11 @@ static const char spcstr[3] = { (char)0xC2, (char)0xB7, 0x00 }; /* Middle dot #define SYNTAX PROMPT("Syntax:", "${SANDY_SYNTAX}", "syntax") /* Args to f_pipe / f_pipero */ -#define TOCLIP { .v = "if [ $DISPLAY ] ; then xsel -ib; else cat > $HOME/.sandy.clipboard ; fi" } -#define FROMCLIP { .v = "if [ $DISPLAY ] ; then xsel -ob; else cat $HOME/.sandy.clipboard ; fi" } -#define TOSEL { .v = "if [ $DISPLAY ] ; then xsel -i; else cat > $HOME/.sandy.selection ; fi" } -#define FROMSEL { .v = "if [ $DISPLAY ] ; then xsel -o; else cat $HOME/.sandy.selection ; fi" } +/* TODO: make sandy-sel to wrap xsel or standalone */ +#define TOCLIP { .v = "xsel -h >/dev/null 2>&1 && test -n \"$DISPLAY\" && xsel -ib || cat > ~/.sandy.clipboard" } +#define FROMCLIP { .v = "xsel -h >/dev/null 2>&1 && test -n \"$DISPLAY\" && xsel -ob || cat ~/.sandy.clipboard" } +#define TOSEL { .v = "xsel -h >/dev/null 2>&1 && test -n \"$DISPLAY\" && xsel -i || cat > ~/.sandy.selection" } +#define FROMSEL { .v = "xsel -h >/dev/null 2>&1 && test -n \"$DISPLAY\" && xsel -o || cat ~/.sandy.selection" } /* Hooks are launched from the main code */ #define HOOK_SAVE_NO_FILE f_spawn (&(const Arg)SAVEAS)