From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <41acb85011976d492e4910cd3c8927e4@quanstro.net> From: erik quanstrom Date: Thu, 26 Mar 2009 09:35:01 -0400 To: lucio@proxima.alt.za, 9fans@9fans.net In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] new toy - gmap Topicbox-Message-UUID: c7f8c4d4-ead4-11e9-9d60-3106f5b1d025 On Thu Mar 26 04:42:48 EDT 2009, lucio@proxima.alt.za wrote: > > Pick up the new code, it reads the key from /lib/gmapkey > > and gets the longditude and latitude the correct way round > > (as several people have told me. > > I use: > > lng=`{echo $here(2) | sed -e 's/^-(.*)/+\1/' -e 's/^([0-9])/-\1/'} > > Because double negatives (--) don't seem to cut it in the URL :-) > I imagine there's a better way, but rc programming is not my strong > suit. And I can't test now the simplification that drops the \1 from the first term. this was my approach. just remove any leading --. /n/dump/2009/0326/rc/bin/gmap:5,11 - /rc/bin/gmap:5,11 gmapkey = `{cat /lib/gmapkey} here = `{cat /lib/sky/here} lat = $here(1) - lng = -$here(2) + lng = `{echo -$here(2) | sed 's/^--//g'} if(~ $#gmapkey 0){ echo goto http://code.google.com/apis/maps/signup.html and get a google maps key (free) > I got caught by the fact that the space after -e is mandatory (why?) > and the first \1 belongs to me trying to figure out what I was doing > wrong. this is due to non-standard usage of ARGF. it might be a good idea to replace the continues between ARGBEGIN and ARGEND with break. currently ARGEND doesn't do anything, but one could imagine a different implementation that does. - erik ; diff -c sed.c /sys/src/cmd/ sed.c:203,209 - /sys/src/cmd//sed.c:203,208 void main(int argc, char **argv) { - char *p; int compfl; lnum = 0; sed.c:215,230 - /sys/src/cmd//sed.c:214,229 exits(0); ARGBEGIN{ case 'e': - if ((p = ARGF()) == nil) + if (argc <= 1) quit("missing pattern"); - newfile(P_ARG, p); + newfile(P_ARG, ARGF()); fcomp(); compfl = 1; continue; case 'f': - if ((p = ARGF()) == nil) + if(argc <= 1) quit("no pattern-file"); - newfile(P_FILE, p); + newfile(P_FILE, ARGF()); fcomp(); compfl = 1; continue;