On 03/15/2010 03:32 PM, Paul Menzel wrote:
Dear lieven,
Am Montag, den 15.03.2010, 14:04 +0100 schrieb lieven moors:
[…]
Please let me know what you think about this patch, and if you think my reasoning is sane...
thank you for your work. Unfortunately your MUA mangled the output. Could you please resend without linebreaks.
It looks like you used `git format-patch` already. Great! You can also use `git send-email` if you plan on submitting more patches [1].
Anyway, could you also add a `Signed-off-by` line (`git commit -s` or `git format-patch -s`) and add a more descriptive summary as `aconnect -x: Do not update index after removal of connection.`. (This is just taken form your summary.)
Please make sure when resending to not this by »[PATCH v2]« in front of your subject line, e. g. `git format-patch --subject-prefix="Patch v2"` (see `git help format-patch`).
Thanks again and sorry for the long response,
Paul
[1] http://git.wiki.kernel.org/index.php/GitTips#Using_gmail_to_send_your_patche... [2] http://elinux.org/Git_usage#Sending_with_Gmail
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Thanks for the explanation, here is a second try... I'm not sure what caused the extra line breaks, but this should be plain text now. Hope this works...
From 996cf123d20dc5d7db2f98f29cebcfb7d3b013e0 Mon Sep 17 00:00:00 2001 From: lieven moors lievenmoors@gmail.com Date: Mon, 15 Mar 2010 18:13:11 +0100 Subject: [Patch v2] aconnect -x: Do not update index after removal of connection. Signed-off-by: lieven moors lievenmoors@gmail.com
--- seq/aconnect/aconnect.c | 43 ++++++++++++------------------------------- 1 files changed, 12 insertions(+), 31 deletions(-)
diff --git a/seq/aconnect/aconnect.c b/seq/aconnect/aconnect.c index 1a50666..6092748 100644 --- a/seq/aconnect/aconnect.c +++ b/seq/aconnect/aconnect.c @@ -192,52 +192,33 @@ static void remove_connection(snd_seq_t *seq, snd_seq_client_info_t *cinfo, snd_seq_port_info_t *pinfo, int count) { snd_seq_query_subscribe_t *query; - snd_seq_query_subscribe_alloca(&query); snd_seq_query_subscribe_set_root(query, snd_seq_port_info_get_addr(pinfo)); - snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_READ); snd_seq_query_subscribe_set_index(query, 0); - for (; snd_seq_query_port_subscribers(seq, query) >= 0; - snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) { + + while (snd_seq_query_port_subscribers(seq, query) >= 0) + { snd_seq_port_info_t *port; snd_seq_port_subscribe_t *subs; const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_root(query); const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_addr(query); snd_seq_port_info_alloca(&port); - if (snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0) - continue; - if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE)) - continue; - if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT) - continue; - snd_seq_port_subscribe_alloca(&subs); - snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query)); - snd_seq_port_subscribe_set_sender(subs, sender); - snd_seq_port_subscribe_set_dest(subs, dest); - snd_seq_unsubscribe_port(seq, subs); - }
- snd_seq_query_subscribe_set_type(query, SND_SEQ_QUERY_SUBS_WRITE); - snd_seq_query_subscribe_set_index(query, 0); - for (; snd_seq_query_port_subscribers(seq, query) >= 0; - snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1)) { - snd_seq_port_info_t *port; - snd_seq_port_subscribe_t *subs; - const snd_seq_addr_t *dest = snd_seq_query_subscribe_get_root(query); - const snd_seq_addr_t *sender = snd_seq_query_subscribe_get_addr(query); - snd_seq_port_info_alloca(&port); - if (snd_seq_get_any_port_info(seq, sender->client, sender->port, port) < 0) - continue; - if (!(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_READ)) - continue; - if (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT) + if ((snd_seq_get_any_port_info(seq, dest->client, dest->port, port) < 0) || + !(snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_SUBS_WRITE) || + (snd_seq_port_info_get_capability(port) & SND_SEQ_PORT_CAP_NO_EXPORT)) + { + snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1); continue; + } snd_seq_port_subscribe_alloca(&subs); snd_seq_port_subscribe_set_queue(subs, snd_seq_query_subscribe_get_queue(query)); snd_seq_port_subscribe_set_sender(subs, sender); snd_seq_port_subscribe_set_dest(subs, dest); - snd_seq_unsubscribe_port(seq, subs); + if(snd_seq_unsubscribe_port(seq, subs) < 0){ + snd_seq_query_subscribe_set_index(query, snd_seq_query_subscribe_get_index(query) + 1); + } } }