diff --git a/c4mate b/c4mate index 8632ef1..3bcb0d1 100755 --- a/c4mate +++ b/c4mate @@ -102,7 +102,7 @@ function MatePad:parse_log(size) -- Then extract and print oldbalance, newbalance, parameter and method. -- Depending on method, print either reason or item_name. If any extraction -- fails we fail with exit code 1. - -- Note: we allow quoted quotation marks in "reason". + -- Note: we allow escaped quotation marks in "reason" and "item_name". pipe = io.popen(string.format([=[ curl %s --header "Accept: application/json" "%s/api/user/%s/log?type=json" | \ sed -n --sandbox ' @@ -135,7 +135,7 @@ sed -n ' b } g - s/.*"item_name" *: *\(null\|"\([^"]*\)"\).*/\2/p + s/.*"item_name" *: *\(null\|"\(\([^"]\|\\"\)*[^\\]\)"\).*/\2/p T fail b :fail @@ -305,6 +305,14 @@ function MatePad:give(amount, recipient, reason) }) end + +-- Parse -u flag (which may be given multiple times). +while arg[1] == "-u" do + table.remove(arg, 1) + USER = arg[1] + table.remove(arg, 1) +end + -- Process help and username options. if arg[1] == "-h" or arg[1] == "--help" then @@ -326,13 +334,6 @@ Give credits: os.exit(0) end --- Parse -u flag (which may be given multiple times). -while arg[1] == "-u" do - table.remove(arg, 1) - USER = arg[1] - table.remove(arg, 1) -end - -- Set up username. if USER == nil then USER = os.getenv("USER")