In Vim I can :set wrapscan so that when I do an incremental search, the cursor jumps to the first match whether the first match is above or below the cursor.

In Emacs, if I start a search via C-s, the search fails saying Failing I-search if the first match is above the cursor. If I hit C-s again it then wraps the search, saying Wrapped I-search. How do I wrap and jump the cursor by default as in Vim, without having to C-s a second time?

EDIT: jurta's answer got me most of the way there. Thanks jurta! This is the behavior I wanted:

Thanks, I see how this is supposed to work, but it doesn't seem to do anything. The function isearch-no-fail doesn't exist in my Emacs. I grepped all the Emacs source code and it's not in there.
–
Brian CarperNov 13 '08 at 19:20

isearch-no-fail is just a name of this defadvice, you can change it to anything you want. I tested this code in GNU Emacs 22 and GNU Emacs 23, and it works exactly as you described. Could you provide more details to understand why it doesn't work for you?
–
link0ffNov 13 '08 at 21:04

Never mind, I don't know where my mind was. It does work, but it was slightly different than what I wanted. I wanted it to wrap the search as I typed, without hitting C-s again at all. Thanks!
–
Brian CarperNov 13 '08 at 21:45