Thread (1 message) 1 message, 1 author, 2017-02-14

Re: [PATCH v4 4/7] stash: introduce new format create

From: Thomas Gummerer <hidden>
Date: 2017-02-14 21:40:17

On 02/14, Matthieu Moy wrote:
Thomas Gummerer [off-list ref] writes:
quoted
 create_stash () {
-	stash_msg="$1"
-	untracked="$2"
+	stash_msg=
+	untracked=
+	new_style=
+	while test $# != 0
+	do
+		case "$1" in
+		-m|--message)
+			shift
+			test -z ${1+x} && usage
+			stash_msg="$1"
+			new_style=t
+			;;
+		-u|--include-untracked)
+			shift
+			test -z ${1+x} && usage
+			untracked="$1"
+			new_style=t
+			;;
+		*)
+			if test -n "$new_style"
+			then
+				echo "invalid argument"
+				option="$1"
+				# TRANSLATORS: $option is an invalid option, like
+				# `--blah-blah'. The 7 spaces at the beginning of the
+				# second line correspond to "error: ". So you should line
+				# up the second line with however many characters the
+				# translation of "error: " takes in your language. E.g. in
+				# English this is:
+				#
+				#    $ git stash save --blah-blah 2>&1 | head -n 2
+				#    error: unknown option for 'stash save': --blah-blah
+				#           To provide a message, use git stash save -- '--blah-blah'
+				eval_gettextln "error: unknown option for 'stash create': \$option"
The TRANSLATORS: hint seems a typoed cut-and-paste from somewhere else.
There are no 7 spaces in this message.

Actually, if I read the code correctly, $option is not even necessarily
an option as you're matching *. Perhaps you meant something like

	-*)
		option="$1"
		# TRANSLATORS: $option is an invalid option, like
		# `--blah-blah'. The 7 spaces at the beginning of the
		# second line correspond to "error: ". So you should line
		# up the second line with however many characters the
		# translation of "error: " takes in your language. E.g. in
		# English this is:
		#
		#    $ git stash save --blah-blah 2>&1 | head -n 2
		#    error: unknown option for 'stash save': --blah-blah
		#           To provide a message, use git stash save -- '--blah-blah'
		eval_gettextln "error: unknown option for 'stash save': \$option
       To provide a message, use git stash save -- '\$option'"
                usage
                ;;
        *)
		if test -n "$new_style"
		then
	        	arg="$1"
	        	eval_gettextln "error: invalid argument for 'stash create': \$arg"
			usage
		fi
                break
		;;

(untested)

Also, you may want to guard against

  git stash create "some message" -m "some other message"

since you are already rejecting

  git stash create -m "some message" "some other message"

? Or perhaps apply "last one wins" for both "-m message" and
"message"-without-dash-m.
Thanks, you're right I was missing some cases here.  As I just
indicated in [1] however I think we can just make this an internal
interface, instead of user interface facing, so I think we'll need
less error checking.
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
[1]: http://public-inbox.org/git/20170214213038.GE652@hank/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help