)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"6edaea320a2cc3570a3d1fe7b055c372a4a639a9","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Robert Li \u003cbaoli@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-09-26 16:15:17 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Preserve quotes and allow multi-line config items in meta-section of local.conf"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Note that spaces in the value of a multi-line config item will result"},{"line_number":10,"context_line":"in wrong configuration, and therefore can\u0027t be used."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baa201ad_0676c33e","line":7,"updated":"2014-09-29 14:00:46.000000000","message":"Change the header since multi-line is not addressed in here.","commit_id":"16bbfc1a891955221481089336fc8ea8cb1c54c6"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"6edaea320a2cc3570a3d1fe7b055c372a4a639a9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"in wrong configuration, and therefore can\u0027t be used."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I8c046b558eeb98ed221f6f1a59182d4179956ced"},{"line_number":13,"context_line":"Closes-Bug: #1374118"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baa201ad_a6b097f5","line":13,"updated":"2014-09-29 14:00:46.000000000","message":"This should be a partial fix. So use Partial-Bug: instead","commit_id":"16bbfc1a891955221481089336fc8ea8cb1c54c6"}],"functions-common":[{"author":{"_account_id":6698,"name":"Robert Pothier","email":"robpothier35@gmail.com","username":"rpothier"},"change_message_id":"8331662e1d1b360a480dedf9410cda70f5f85860","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option"},{"line_number":118,"context_line":"# and assumes that the section has already existed."},{"line_number":119,"context_line":"# iniadd_literal config-file section option value"},{"line_number":120,"context_line":"function iniadd_literal {"},{"line_number":121,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":122,"context_line":"    set +o xtrace"},{"line_number":123,"context_line":"    local file\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baa201ad_075f7ae6","line":120,"updated":"2014-09-30 17:23:53.000000000","message":"can iniset_multiline be used here?","commit_id":"ed06c80f6ce9b3c5ff468599d3c724a178a3b156"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c0943ceabb104b79f46b9d6e25a9cbc7cfa87e75","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option"},{"line_number":118,"context_line":"# and assumes that the section has already existed."},{"line_number":119,"context_line":"# iniadd_literal config-file section option value"},{"line_number":120,"context_line":"function iniadd_literal {"},{"line_number":121,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":122,"context_line":"    set +o xtrace"},{"line_number":123,"context_line":"    local file\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baa201ad_07613a39","line":120,"in_reply_to":"baa201ad_075f7ae6","updated":"2014-09-30 17:35:24.000000000","message":"Not really. iniset_multiline requires all the \u0027lines\u0027 to be supplied in the argument list. Doing that will cause incorrect configuration if spaces are used in the config values.","commit_id":"ed06c80f6ce9b3c5ff468599d3c724a178a3b156"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"b5605819fc8f1718bb762cd0bdfddd0dcd13f170","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option"},{"line_number":118,"context_line":"# and assumes that the section has already existed."},{"line_number":119,"context_line":"# iniadd_literal config-file section option value"},{"line_number":120,"context_line":"function iniadd_literal {"},{"line_number":121,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":122,"context_line":"    set +o xtrace"},{"line_number":123,"context_line":"    local file\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baa201ad_1e9faa51","line":120,"in_reply_to":"baa201ad_07613a39","updated":"2014-10-01 16:09:40.000000000","message":"Can you please put that comment in the code?  The bit about the space seems to be the key and should be noted as I know I\u0027ll forget why this was added.","commit_id":"ed06c80f6ce9b3c5ff468599d3c724a178a3b156"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"b13507f361a49d5703a6371e53fe77234b68bcac","unresolved":false,"context_lines":[{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option"},{"line_number":118,"context_line":"# and assumes that the section has already existed."},{"line_number":119,"context_line":"# iniadd_literal config-file section option value"},{"line_number":120,"context_line":"function iniadd_literal {"},{"line_number":121,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"},{"line_number":122,"context_line":"    set +o xtrace"},{"line_number":123,"context_line":"    local file\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"baa201ad_2000c800","line":120,"in_reply_to":"baa201ad_1e9faa51","updated":"2014-10-01 18:32:58.000000000","message":"Done","commit_id":"ed06c80f6ce9b3c5ff468599d3c724a178a3b156"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fa1e572ce37f163419b9f1b654f6e72f187ac3b3","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"# Add another config line for a multi-line option."},{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option and assumes"},{"line_number":118,"context_line":"# that the section has already existed."},{"line_number":119,"context_line":"#"},{"line_number":120,"context_line":"# Note that iniset_multiline requires all the \u0027lines\u0027 to be supplied"},{"line_number":121,"context_line":"# in the argument list. Doing that will cause incorrect configuration"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_c2f16002","line":118,"updated":"2014-10-07 00:48:01.000000000","message":"\"that the section already exists\"","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e8382c3b71c2b913139343cdaf79406620d0d764","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"# Add another config line for a multi-line option."},{"line_number":117,"context_line":"# It\u0027s normally called after iniset of the same option and assumes"},{"line_number":118,"context_line":"# that the section has already existed."},{"line_number":119,"context_line":"#"},{"line_number":120,"context_line":"# Note that iniset_multiline requires all the \u0027lines\u0027 to be supplied"},{"line_number":121,"context_line":"# in the argument list. Doing that will cause incorrect configuration"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_027e0819","line":118,"in_reply_to":"baa201ad_c2f16002","updated":"2014-10-07 03:35:40.000000000","message":"will change","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fa1e572ce37f163419b9f1b654f6e72f187ac3b3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"# Note that iniset_multiline requires all the \u0027lines\u0027 to be supplied"},{"line_number":121,"context_line":"# in the argument list. Doing that will cause incorrect configuration"},{"line_number":122,"context_line":"# if spaces are used in the config values."},{"line_number":123,"context_line":"#"},{"line_number":124,"context_line":"# iniadd_literal config-file section option value"},{"line_number":125,"context_line":"function iniadd_literal {"},{"line_number":126,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_e212e407","line":123,"updated":"2014-10-07 00:48:01.000000000","message":"is this not because it uses unqoted \"$@\"?  that just seems to be a bug there which would remove the need for this function?","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e8382c3b71c2b913139343cdaf79406620d0d764","unresolved":false,"context_lines":[{"line_number":120,"context_line":"# Note that iniset_multiline requires all the \u0027lines\u0027 to be supplied"},{"line_number":121,"context_line":"# in the argument list. Doing that will cause incorrect configuration"},{"line_number":122,"context_line":"# if spaces are used in the config values."},{"line_number":123,"context_line":"#"},{"line_number":124,"context_line":"# iniadd_literal config-file section option value"},{"line_number":125,"context_line":"function iniadd_literal {"},{"line_number":126,"context_line":"    local xtrace\u003d$(set +o | grep xtrace)"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_4849115f","line":123,"in_reply_to":"baa201ad_e212e407","updated":"2014-10-07 03:35:40.000000000","message":"Not really. See below for further explanation","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fa1e572ce37f163419b9f1b654f6e72f187ac3b3","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    local option\u003d$3"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    shift 3"},{"line_number":182,"context_line":"    local values"},{"line_number":183,"context_line":"    for v in $@; do"},{"line_number":184,"context_line":"        # The later sed command inserts each new value in the line next to"},{"line_number":185,"context_line":"        # the section identifier, which causes the values to be inserted in"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_c20de0e9","line":182,"updated":"2014-10-07 00:48:01.000000000","message":"should this not be \"$@\" to retain spaces in arguments?","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e8382c3b71c2b913139343cdaf79406620d0d764","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    local option\u003d$3"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    shift 3"},{"line_number":182,"context_line":"    local values"},{"line_number":183,"context_line":"    for v in $@; do"},{"line_number":184,"context_line":"        # The later sed command inserts each new value in the line next to"},{"line_number":185,"context_line":"        # the section identifier, which causes the values to be inserted in"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"baa201ad_28c3ed89","line":182,"in_reply_to":"baa201ad_c20de0e9","updated":"2014-10-07 03:35:40.000000000","message":"This doesn\u0027t help. The statement at line 197 will cause it to be broken up by spaces. On the other hand, removing the following code, and using \"$@\" directly at line 197 will cause change of semantics for this routine.","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"}],"lib/config":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fa1e572ce37f163419b9f1b654f6e72f187ac3b3","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"},{"line_number":86,"context_line":"    $CONFIG_AWK_CMD -v configfile\u003d$configfile -v value_quote\u003d\"\u0027\" \u0027"},{"line_number":87,"context_line":"        BEGIN { section \u003d \"\"; item_count \u003d 0 }"},{"line_number":88,"context_line":"        /^\\[.+\\]/ {"},{"line_number":89,"context_line":"            gsub(\"[][]\", \"\", $1);"}],"source_content_type":"text/x-ini","patch_set":6,"id":"baa201ad_822e7841","line":86,"updated":"2014-10-07 00:48:01.000000000","message":"i get this but it blows out the line length ... using the ascii value is clearer and shorter IMO\n\neither way, the quoting here is messy :(","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e8382c3b71c2b913139343cdaf79406620d0d764","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    local configfile\u003d$3"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    get_meta_section $file $matchgroup $configfile | \\"},{"line_number":86,"context_line":"    $CONFIG_AWK_CMD -v configfile\u003d$configfile -v value_quote\u003d\"\u0027\" \u0027"},{"line_number":87,"context_line":"        BEGIN { section \u003d \"\"; item_count \u003d 0 }"},{"line_number":88,"context_line":"        /^\\[.+\\]/ {"},{"line_number":89,"context_line":"            gsub(\"[][]\", \"\", $1);"}],"source_content_type":"text/x-ini","patch_set":6,"id":"baa201ad_a83efd89","line":86,"in_reply_to":"baa201ad_822e7841","updated":"2014-10-07 03:35:40.000000000","message":"I was thinking that doing it this way is more readable. But the other way is fine, too","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fa1e572ce37f163419b9f1b654f6e72f187ac3b3","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            # after the section header. To keep the same order as defined"},{"line_number":109,"context_line":"            # in a section of local.conf, invoke the ini routines in the"},{"line_number":110,"context_line":"            # reverse order of config items as they are defined in the"},{"line_number":111,"context_line":"            # section."},{"line_number":112,"context_line":"            for (item \u003d item_count - 1; item \u003e\u003d 0; item--) {"},{"line_number":113,"context_line":"                cfg_name \u003d cfg_item[item]"},{"line_number":114,"context_line":"                if (num_lines[cfg_name] \u003d\u003d 1)"}],"source_content_type":"text/x-ini","patch_set":6,"id":"baa201ad_22f86cc2","line":111,"updated":"2014-10-07 00:48:01.000000000","message":"if iniadd_multiline is fixed, do you need this reversal here, because it does it?","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"e8382c3b71c2b913139343cdaf79406620d0d764","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            # after the section header. To keep the same order as defined"},{"line_number":109,"context_line":"            # in a section of local.conf, invoke the ini routines in the"},{"line_number":110,"context_line":"            # reverse order of config items as they are defined in the"},{"line_number":111,"context_line":"            # section."},{"line_number":112,"context_line":"            for (item \u003d item_count - 1; item \u003e\u003d 0; item--) {"},{"line_number":113,"context_line":"                cfg_name \u003d cfg_item[item]"},{"line_number":114,"context_line":"                if (num_lines[cfg_name] \u003d\u003d 1)"}],"source_content_type":"text/x-ini","patch_set":6,"id":"baa201ad_6867b5b7","line":111,"in_reply_to":"baa201ad_22f86cc2","updated":"2014-10-07 03:35:40.000000000","message":"This also keeps non-related items in the same order as defined in local.conf. Say \n\n[[post_config|$NOVA_CONF]]\n\n[DEFAULT]\n\na \u003d 1\n\nb \u003d 2\n\nthe result would be without the reversal\n\n[DEFAULT]\n\nb \u003d 2\n\na \u003d 1\n\nwhich is not desirable","commit_id":"4e4356185782b754a150c03ad5d71c4f0a6505cd"}]}
