Hex Artifact Content
Not logged in

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                                            ..