#RUN: %fish %s # Verify that specifying unexpected options or arguments results in an error. # First using the legacy, now deprecated, long options to specify a # subcommand. # First with the history function. history --search --merge #CHECKERR: history: Mutually exclusive flags 'merge' and `search` seen history --clear --contains #CHECKERR: history: you cannot use any options with the clear command history --merge -t #CHECKERR: history: you cannot use any options with the merge command history --save xyz #CHECKERR: history: save expected 0 args, got 1 # Now with the history builtin. builtin history --save --prefix #CHECKERR: history: you cannot use any options with the save command builtin history --clear --show-time #CHECKERR: history: you cannot use any options with the clear command builtin history --merge xyz #CHECKERR: history merge: Expected 0 args, got 1 builtin history --clear abc def #CHECKERR: history clear: Expected 0 args, got 2 # Now using the preferred subcommand form. Note that we support flags before # or after the subcommand name so test both variants. # First with the history function. history clear --contains #CHECKERR: history: you cannot use any options with the clear command history clear-session --contains #CHECKERR: history: you cannot use any options with the clear-session command history merge -t #CHECKERR: history: you cannot use any options with the merge command history save xyz #CHECKERR: history: save expected 0 args, got 1 history --prefix clear #CHECKERR: history: you cannot use any options with the clear command history --prefix clear-session #CHECKERR: history: you cannot use any options with the clear-session command history --show-time merge #CHECKERR: history: you cannot use any options with the merge command # Now with the history builtin. builtin history --search --merge #CHECKERR: history: Invalid combination of options, #CHECKERR: you cannot do both 'search' and 'merge' in the same invocation builtin history save --prefix #CHECKERR: history: you cannot use any options with the save command builtin history clear --show-time #CHECKERR: history: you cannot use any options with the clear command builtin history clear-session --show-time #CHECKERR: history: you cannot use any options with the clear-session command builtin history merge xyz #CHECKERR: history merge: Expected 0 args, got 1 builtin history clear abc def #CHECKERR: history clear: Expected 0 args, got 2 builtin history clear-session abc def #CHECKERR: history clear-session: Expected 0 args, got 2 builtin history --contains save #CHECKERR: history: you cannot use any options with the save command builtin history -t merge #CHECKERR: history: you cannot use any options with the merge command # Now do a history command that should succeed so we exit with a zero, # success, status. builtin history save