commit 3bbef6a90471595937d30e7c9e52fa69e7eaf60a
parent 7dc3d92a09891beabe588997f1d4b452156a3655
Author: Wolfgang Corcoran-Mathe <first.lord.of.teal@gmail.com>
Date:   Tue, 19 Aug 2014 12:30:00 -0400
Edits to surf.suckless.org/files/quick_search.md
Diffstat:
1 file changed, 10 insertions(+), 20 deletions(-)
diff --git a/surf.suckless.org/files/quick_search.md b/surf.suckless.org/files/quick_search.md
@@ -10,9 +10,12 @@ actual query, e.g. 'w pancakes' would search en.wikipedia.org for the string
 'pancakes'. This reduces the necessary shell plumbing to a couple of pipes
 and a case statement.
 
-Character ugliness in the query is avoided using xxd, tr, and sed. This
+Character ugliness in the query is avoided using od and tr. This
 has worked so far.
 
+**EDIT:** Replaced xxd with od and eliminated a sed pipe. Replaced cut pipes
+with sh variable expansion.
+
 Author
 ------
 
@@ -30,31 +33,18 @@ Code
 	#!/bin/sh
 	#
 	# surf_qsearch:
-	# Search engine script for surf. Takes the surf window id as argument.
-	# POSIX compliant and GNU-free, I think.
-	#
-	# Add something like the following to your surf/config.(def.)h, replacing
-	# surf_qsearch with the name of the file you've copied this code into:
-	#
-	# /* Quick searching. */
-	# #define QSEARCH { \
-	#     .v = (char *[]){"/bin/sh", "-c", "surf_qsearch $0 $1", winid, NULL } \
-	# }
-	#
-	# Add a keybinding in keys[]:
-	#
-	# { MODKEY, GDK_q, spawn, QSEARCH },
-	#
+	# Search script for surf. Takes the surf window id as argument.
 
-	# Get the full query. The 'echo | dmenu' idiom may be a bit of a hack.
-	q="$(echo | dmenu -p 'Search')"
+	# Get the full query. The 'echo | dmenu' idiom may be a bit of
+	# a hack, but it seems to work.
+	q="$(echo | dmenu)"
 	[ -z "$q" ] && exit 0
 
 	# Extract the engine code.
-	e=$(printf %s "$q" | cut -c 1)
+	e="${q%% *}"
 
 	# Encode the search string (i.e. the rest of q)
-	s=$(printf %s "$q" | cut -c 3- | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g')
+	s=$(printf %s "${q#* }" | od -t x1 -An | tr -d '\n' | tr ' ' '%')
 
 	# These are examples. Change as desired.
 	# 's' = startpage.com