longjmp - штука весьма стремная. Нормально работает только при переходе "назад", из конца функции в начало (или из вложенной функции в вызвавшую). А вот assigned goto - вещь, жаль что нестандартная совсем.
Не надо делать мне как лучше, оставьте мне как хорошо