fix-create-new-cat.diff
author Myhailo Danylenko <isbear@ukrpost.net>
Thu, 09 Aug 2012 00:17:37 +0300
changeset 45 1c28cf9dca25
parent 43 e0cda680d7a8
permissions -rw-r--r--
Fix settings_opt_set
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
# HG changeset patch
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
# Parent 26edaf6ea10b8db2ed07da3e4ad9bee03077de84
43
e0cda680d7a8 Move add-offline-message to experimental
Myhailo Danylenko <isbear@ukrpost.net>
parents: 42
diff changeset
     3
Fix endless loop on exhaustion of completion category pool
42
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
diff -r 26edaf6ea10b mcabber/mcabber/compl.c
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
--- a/mcabber/mcabber/compl.c	Mon Jul 30 22:39:17 2012 +0200
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
+++ b/mcabber/mcabber/compl.c	Wed Aug 08 12:15:20 2012 +0300
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
@@ -97,10 +97,11 @@
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
 // as it is likely to change in future.
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
 guint compl_new_category(void)
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
 {
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
+  const guint maxcat = 8 * sizeof (registered_cats);
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
   guint i = 0;
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
-  while ((registered_cats >> i) & 1)
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
+  while ((registered_cats >> i) & 1 && i < maxcat)
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
     i++;
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
-  if (i >= 8 * sizeof (registered_cats))
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
+  if (i >= maxcat)
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
     return 0;
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
   else {
0ee5e9903fa1 Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
     guint64 id = 1 << i;