On 6th December 2000 Opera released a "new" version of their browser.  In reality 
there does not seem to be much real change: the javascript error is still in 
place, although I have not checked whether the email bugs have been fixed.
There seem to be three additions:
1. Opera have released a "free" version (provided you put up with an ad).  The 
add disappears in the registered version though :)
2.  Instant messaging via icq protocol has been integrated (possibly 
unecessary bloat)
3.  Several search engines have been integrated into the toolbar!!!
The 3rd point is most interesting.  This can save speed as rather than hitting 
"home" to head back to our page of search engines we can type directly into 
the bar.
However, this is not without it's faults, as we cannot (should not?) change the search 
engines list by Opera.  To make matters worse, the Altavista query is the simple 
one, not the advanced query.  Two of the options ("stock quote" and "company", which 
noone in his right mind would ever use) point actually both to the same 
(idiotical) query.  Even worse, they are not 
directly querying the search engine, but are rather using a service called 
"bfast" after which opera gives us a link in order to redirect the query to the 
appropriate search engine.
After toying with this for a bit (type "fravia", then hit return for google 
responses.  Then click the small icon and select another engine... woha! New results 
are automatically entered.  This is good for quickly querying one engine after 
another) I decided to try to alter this.
First line of approach: disassemble in W32Dasm and also load into Borland 
Resource workshop and search the strings for "http" (Opera needs to know the 
addresses to query, hmm?) No result.  Nor for "altavista", "google" etc.  This 
worried for a bit, as this was the way I had learned to edit such strings.  
(Go looking for Fravia's old reverse-engineering site.  Once there find 
Mammon's essay in project 5 on how to reverse Netscape 3 and read it!).
However having previously tried (and failed :( to fiddle around with Opera 4 
by simply loading the exe into UltraEdit and searching the ascii strings, I 
decided to try this approach.  Typed in altavista and bingo, there was the 
code :)
Now to try and make sense of this:
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=svideo&q=%s&nbg=%i
 v Video 
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=simage&q=%s&nbg=%i
 i Image 
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=multimedia_smy&bfmid=22218516&user=befree&pg=q&stype=saudio&q=%s&nbg=%i
 m Mp3/Audio 
s Stock quote 
http://www.commissionjunction.com/track/track.dll?aid=893031&pid=645589&url=http://www.business.com/search/rslt_default_company.asp&query=%s
 c Company 
http://service.bfast.com/bfast/click?bfmid=2181&sourceid=19273554&categoryid=rn_booksearch&choice=keywordsearch&userInput=%s
 b Books do=application&domain=%s&tld=.com 
http://opera.domaindirect.com/cgi-bin/register.cgi d Domain Name 
http://www.goto.com/d/search/p/befree/?Promo=befree00192735881894411880&Keywords=%s
 t GoTo 
http://service.bfast.com/bfast/click?siteid=19273676&bfpage=hotbot2&bfmid=5960107&MT=%s&DC=%i
 h HotBot 
http://service.bfast.com/bfast/click?siteid=30656059&bfpage=wsearch_sm&bfmid=22218516&user=befree&pg=q&q=%s&nbg=%i
 a AltaVista 
http://service.bfast.com/bfast/click?siteid=30656053&bfpage=horizontal&bfmid=27253343&q=%s&num=%i
 g Google
OK, so we have the string to query the engine, followed by the shortcut key 
(type g followed by a string in the URL bar to search) and the name to appear 
in the search engine toolbar.  In all these strings we have "%s" to represent 
our query string.  Now all we have to do is to change these to the ones we 
want.  Firing through some search engines I wanted (feel free to pick your 
own) and searching for opera I got:
http://ftpsearch.lycos.com/cgi-bin/search?form=medium&query=opera&doit=Search&type=Case+insensitive+multiple+substrings+search&hits=15&matches=&hitsprmatch=&limdom=&limpath=&f1=Count&f2=Mode&f3=Size&f4=Date&f5=Host&f6=Path&header=none&sort=none&trlen=20
http://www.alltheweb.com/cgi-bin/asearch?type=all&query=opera
http://www.deja.com/qs.xp?OP=dnquery.xp&ST=MS&DBS=2&QRY=opera&SUBMIT=search+Dejavue
http://ragingsearch.altavista.com/cgi-bin/query?q=opera&search=Ragin_Search
http://www.netcraft.com/?restriction=site+contains&host=opera&lookup=Wait..&position=limited
http://hotbot.lycos.com/?MT=opera&SM=MC&DV=0&LG=any&DC=10&DE=2&AM1=MC
http://www.google.com/search?q=opera&btnG=Google+Search
http://astalavista4.box.sk/cgi-bin/robot?srch=opera&submit=+search+&project=robot&gfx=robot
http://www.northernlight.com/nlquery.fcg?qr=opera&sb=search&si=&us=025&cc=
http://www.altavista.com/cgi-bin/query?hl=on&q=%s&search=Search&r=&kl=XX&pg=aq&enc=iso88591&text=yes&d0=&d1=
So now all we need to do (in theory) is replace "opera" with "%s" in these 
strings then copy them across, correct?  Well almost.  As we cannot change the 
byte settings all the new strings must begin at the same point, so we cannot 
allow the new string to overrun the old.  The ridiculously long ftpsearch 
query can be sliced down and then we simply allow the search engine to apply 
it's default values, true for several of these strings.  Please note we only 
have ten entries as the eleventh in the default is querying the same engine as 
another one.  Also if the original string is longer (as it should be) switch 
across to the hex codes and enter "00" for each of those.
seems to work fine.
So by apllying this we can make the new feature close to useful.  Remember and 
change the name that appears afterwords and enjoy :-)  (of course it is 
equally possible to use this feature to sotre bookmarks...)
Beardo.
For comments mail to Beardo(at)operamail(dot)com
