Artifact
2c7b158b2960c90fb992338f344c99798c1aece4:
Attachment "filename_changes_checkins.patch" to
ticket [c9d454153e]
added by
anonymous
2011-01-04 10:42:00.
0000: 49 6e 64 65 78 3a 20 73 72 63 2f 62 69 73 65 63 Index: src/bisec
0010: 74 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d t.c.============
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 0a 2d 2d 2d 20 73 72 63 2f =======.--- src/
0060: 62 69 73 65 63 74 2e 63 0a 2b 2b 2b 20 73 72 63 bisect.c.+++ src
0070: 2f 62 69 73 65 63 74 2e 63 0a 40 40 20 2d 33 36 /bisect.c.@@ -36
0080: 38 2c 31 32 20 2b 33 36 38 2c 32 37 20 40 40 0a 8,12 +368,27 @@.
0090: 20 20 20 69 66 28 20 70 3d 3d 30 20 29 20 72 65 if( p==0 ) re
00a0: 74 75 72 6e 3b 0a 20 20 20 62 69 73 65 63 74 5f turn;. bisect_
00b0: 72 65 76 65 72 73 65 5f 70 61 74 68 28 29 3b 0a reverse_path();.
00c0: 20 20 20 64 62 5f 70 72 65 70 61 72 65 28 26 71 db_prepare(&q
00d0: 31 2c 0a 20 20 20 20 20 20 22 53 45 4c 45 43 54 1,. "SELECT
00e0: 20 70 66 6e 69 64 2c 20 66 6e 69 64 20 46 52 4f pfnid, fnid FRO
00f0: 4d 20 6d 6c 69 6e 6b 20 57 48 45 52 45 20 6d 69 M mlink WHERE mi
0100: 64 3d 3a 6d 69 64 20 41 4e 44 20 70 66 6e 69 64 d=:mid AND pfnid
0110: 3e 30 22 0a 20 20 20 29 3b 0a 2d 20 20 66 6f 72 >0". );.- for
0120: 28 70 3d 62 69 73 65 63 74 2e 70 53 74 61 72 74 (p=bisect.pStart
0130: 2d 3e 75 2e 70 54 6f 3b 20 70 3b 20 70 3d 70 2d ->u.pTo; p; p=p-
0140: 3e 75 2e 70 54 6f 29 7b 0a 2b 0a 2b 20 20 70 20 >u.pTo){.+.+ p
0150: 3d 20 62 69 73 65 63 74 2e 70 53 74 61 72 74 3b = bisect.pStart;
0160: 0a 2b 20 20 2f 2a 20 49 66 20 77 65 20 73 74 61 .+ /* If we sta
0170: 72 74 20 61 74 20 61 20 70 61 72 65 6e 74 20 6f rt at a parent o
0180: 66 20 74 68 65 20 6e 65 78 74 2c 20 73 6b 69 70 f the next, skip
0190: 20 74 68 65 20 63 68 65 63 6b 69 6e 20 2a 2f 0a the checkin */.
01a0: 2b 20 20 69 66 20 28 20 70 2d 3e 75 2e 70 54 6f + if ( p->u.pTo
01b0: 20 26 26 20 70 2d 3e 75 2e 70 54 6f 2d 3e 66 72 && p->u.pTo->fr
01c0: 6f 6d 49 73 50 61 72 65 6e 74 20 29 0a 2b 20 20 omIsParent ).+
01d0: 20 20 20 20 70 20 3d 20 70 2d 3e 75 2e 70 54 6f p = p->u.pTo
01e0: 3b 0a 2b 20 20 66 6f 72 28 3b 20 70 3b 20 70 3d ;.+ for(; p; p=
01f0: 70 2d 3e 75 2e 70 54 6f 29 7b 0a 20 20 20 20 20 p->u.pTo){.
0200: 69 6e 74 20 66 6e 69 64 2c 20 70 66 6e 69 64 3b int fnid, pfnid;
0210: 0a 2b 0a 2b 20 20 20 20 2f 2a 20 57 65 20 73 68 .+.+ /* We sh
0220: 6f 75 6c 64 20 6e 6f 74 20 74 61 6b 65 20 74 68 ould not take th
0230: 65 20 63 68 61 6e 67 65 2c 20 69 66 3a 0a 2b 20 e change, if:.+
0240: 20 20 20 20 2a 20 2d 20 57 65 20 61 72 65 20 74 * - We are t
0250: 68 65 20 70 61 72 65 6e 74 20 6e 6f 64 65 20 6f he parent node o
0260: 66 20 74 68 65 20 46 72 6f 6d 20 61 6e 64 20 74 f the From and t
0270: 68 65 20 54 6f 2e 0a 2b 20 20 20 20 20 2a 20 2d he To..+ * -
0280: 20 57 65 20 61 72 65 20 61 20 70 61 72 65 6e 74 We are a parent
0290: 20 6f 66 20 74 68 65 20 46 72 6f 6d 2c 20 61 6e of the From, an
02a0: 64 20 74 68 65 72 65 20 69 73 20 6e 6f 20 54 6f d there is no To
02b0: 2e 0a 2b 20 20 20 20 20 2a 2f 0a 2b 20 20 20 20 ..+ */.+
02c0: 69 66 20 28 20 21 20 70 2d 3e 66 72 6f 6d 49 73 if ( ! p->fromIs
02d0: 50 61 72 65 6e 74 20 26 26 0a 2b 20 20 20 20 20 Parent &&.+
02e0: 20 20 20 20 20 20 20 28 20 21 70 2d 3e 75 2e 70 ( !p->u.p
02f0: 54 6f 20 7c 7c 0a 2b 20 20 20 20 20 20 20 20 20 To ||.+
0300: 20 20 20 20 20 28 20 70 2d 3e 75 2e 70 54 6f 20 ( p->u.pTo
0310: 26 26 20 70 2d 3e 75 2e 70 54 6f 2d 3e 66 72 6f && p->u.pTo->fro
0320: 6d 49 73 50 61 72 65 6e 74 20 29 20 29 20 29 0a mIsParent ) ) ).
0330: 2b 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 + continu
0340: 65 3b 0a 2b 0a 20 20 20 20 20 64 62 5f 62 69 6e e;.+. db_bin
0350: 64 5f 69 6e 74 28 26 71 31 2c 20 22 3a 6d 69 64 d_int(&q1, ":mid
0360: 22 2c 20 70 2d 3e 72 69 64 29 3b 0a 20 20 20 20 ", p->rid);.
0370: 20 77 68 69 6c 65 28 20 64 62 5f 73 74 65 70 28 while( db_step(
0380: 26 71 31 29 3d 3d 53 51 4c 49 54 45 5f 52 4f 57 &q1)==SQLITE_ROW
0390: 20 29 7b 0a 20 20 20 20 20 20 20 69 66 28 20 70 ){. if( p
03a0: 2d 3e 66 72 6f 6d 49 73 50 61 72 65 6e 74 20 29 ->fromIsParent )
03b0: 7b 0a 20 20 20 20 20 20 20 20 20 66 6e 69 64 20 {. fnid
03c0: 3d 20 64 62 5f 63 6f 6c 75 6d 6e 5f 69 6e 74 28 = db_column_int(
03d0: 26 71 31 2c 20 31 29 3b 0a 20 20 20 20 20 20 20 &q1, 1);.
03e0: 20 20 70 66 6e 69 64 20 3d 20 64 62 5f 63 6f 6c pfnid = db_col
03f0: 75 6d 6e 5f 69 6e 74 28 26 71 31 2c 20 30 29 3b umn_int(&q1, 0);
0400: 0a 0a ..