Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

tmerge.c File Reference

#include "precomp.h"

Go to the source code of this file.

Classes

struct  _ATTR_PAIR

Defines

#define SOURCE1_LENGTH   4
#define MERGE1_LENGTH   1
#define TARGET1_LENGTH   4
#define START_INDEX1   4
#define END_INDEX1   5
#define SOURCE2_LENGTH   4
#define MERGE2_LENGTH   2
#define TARGET2_LENGTH   6
#define START_INDEX2   4
#define END_INDEX2   5
#define SOURCE3_LENGTH   4
#define MERGE3_LENGTH   2
#define TARGET3_LENGTH   5
#define START_INDEX3   9
#define END_INDEX3   10
#define SOURCE4_LENGTH   4
#define MERGE4_LENGTH   4
#define TARGET4_LENGTH   4
#define START_INDEX4   0
#define END_INDEX4   10
#define SOURCE5_LENGTH   4
#define MERGE5_LENGTH   3
#define TARGET5_LENGTH   6
#define START_INDEX5   2
#define END_INDEX5   4
#define SOURCE6_LENGTH   4
#define MERGE6_LENGTH   3
#define TARGET6_LENGTH   6
#define START_INDEX6   4
#define END_INDEX6   6
#define SOURCE7_LENGTH   1
#define MERGE7_LENGTH   2
#define TARGET7_LENGTH   2
#define START_INDEX7   0
#define END_INDEX7   2
#define SOURCE8_LENGTH   1
#define MERGE8_LENGTH   2
#define TARGET8_LENGTH   3
#define START_INDEX8   0
#define END_INDEX8   1
#define SOURCE9_LENGTH   1
#define MERGE9_LENGTH   1
#define TARGET9_LENGTH   2
#define START_INDEX9   0
#define END_INDEX9   0
#define SOURCE10_LENGTH   1
#define MERGE10_LENGTH   1
#define TARGET10_LENGTH   3
#define START_INDEX10   1
#define END_INDEX10   1

Typedefs

typedef _ATTR_PAIR ATTR_PAIR
typedef _ATTR_PAIRPATTR_PAIR

Functions

 MergeAttrStrings (PATTR_PAIR Source, WORD SourceLength, PATTR_PAIR Merge, WORD MergeLength, OUT PATTR_PAIR *Target, OUT LPWORD TargetLength, IN WORD StartIndex, IN WORD EndIndex)
DWORD main (int argc, char *argv[])

Variables

ATTR_PAIR Source1 [SOURCE1_LENGTH]
ATTR_PAIR Merge1 [MERGE1_LENGTH] = { 2, 20 }
ATTR_PAIR Target1 [TARGET1_LENGTH]
ATTR_PAIR Source2 [SOURCE2_LENGTH]
ATTR_PAIR Merge2 [MERGE2_LENGTH]
ATTR_PAIR Target2 [TARGET2_LENGTH]
ATTR_PAIR Source3 [SOURCE3_LENGTH]
ATTR_PAIR Merge3 [MERGE3_LENGTH]
ATTR_PAIR Target3 [TARGET3_LENGTH]
ATTR_PAIR Source4 [SOURCE4_LENGTH]
ATTR_PAIR Merge4 [MERGE4_LENGTH]
ATTR_PAIR Target4 [TARGET4_LENGTH]
ATTR_PAIR Source5 [SOURCE5_LENGTH]
ATTR_PAIR Merge5 [MERGE5_LENGTH]
ATTR_PAIR Target5 [TARGET5_LENGTH]
ATTR_PAIR Source6 [SOURCE6_LENGTH]
ATTR_PAIR Merge6 [MERGE6_LENGTH]
ATTR_PAIR Target6 [TARGET6_LENGTH]
ATTR_PAIR Source7 [SOURCE7_LENGTH]
ATTR_PAIR Merge7 [MERGE7_LENGTH]
ATTR_PAIR Target7 [TARGET7_LENGTH]
ATTR_PAIR Source8 [SOURCE8_LENGTH]
ATTR_PAIR Merge8 [MERGE8_LENGTH]
ATTR_PAIR Target8 [TARGET8_LENGTH]
ATTR_PAIR Source9 [SOURCE9_LENGTH]
ATTR_PAIR Merge9 [MERGE9_LENGTH]
ATTR_PAIR Target9 [TARGET9_LENGTH]
ATTR_PAIR Source10 [SOURCE10_LENGTH]
ATTR_PAIR Merge10 [MERGE10_LENGTH]
ATTR_PAIR Target10 [TARGET10_LENGTH]


Define Documentation

#define END_INDEX1   5
 

Definition at line 33 of file tmerge.c.

Referenced by main().

#define END_INDEX10   1
 

Definition at line 214 of file tmerge.c.

Referenced by main().

#define END_INDEX2   5
 

Definition at line 56 of file tmerge.c.

Referenced by main().

#define END_INDEX3   10
 

Definition at line 78 of file tmerge.c.

Referenced by main().

#define END_INDEX4   10
 

Definition at line 101 of file tmerge.c.

Referenced by main().

#define END_INDEX5   4
 

Definition at line 125 of file tmerge.c.

Referenced by main().

#define END_INDEX6   6
 

Definition at line 149 of file tmerge.c.

Referenced by main().

#define END_INDEX7   2
 

Definition at line 165 of file tmerge.c.

Referenced by main().

#define END_INDEX8   1
 

Definition at line 182 of file tmerge.c.

Referenced by main().

#define END_INDEX9   0
 

Definition at line 197 of file tmerge.c.

Referenced by main().

#define MERGE10_LENGTH   1
 

Definition at line 203 of file tmerge.c.

Referenced by main().

#define MERGE1_LENGTH   1
 

Definition at line 18 of file tmerge.c.

Referenced by main().

#define MERGE2_LENGTH   2
 

Definition at line 38 of file tmerge.c.

Referenced by main().

#define MERGE3_LENGTH   2
 

Definition at line 61 of file tmerge.c.

Referenced by main().

#define MERGE4_LENGTH   4
 

Definition at line 83 of file tmerge.c.

Referenced by main().

#define MERGE5_LENGTH   3
 

Definition at line 106 of file tmerge.c.

Referenced by main().

#define MERGE6_LENGTH   3
 

Definition at line 130 of file tmerge.c.

Referenced by main().

#define MERGE7_LENGTH   2
 

Definition at line 154 of file tmerge.c.

Referenced by main().

#define MERGE8_LENGTH   2
 

Definition at line 170 of file tmerge.c.

Referenced by main().

#define MERGE9_LENGTH   1
 

Definition at line 187 of file tmerge.c.

Referenced by main().

#define SOURCE10_LENGTH   1
 

Definition at line 202 of file tmerge.c.

Referenced by main().

#define SOURCE1_LENGTH   4
 

Definition at line 17 of file tmerge.c.

Referenced by main().

#define SOURCE2_LENGTH   4
 

Definition at line 37 of file tmerge.c.

Referenced by main().

#define SOURCE3_LENGTH   4
 

Definition at line 60 of file tmerge.c.

Referenced by main().

#define SOURCE4_LENGTH   4
 

Definition at line 82 of file tmerge.c.

Referenced by main().

#define SOURCE5_LENGTH   4
 

Definition at line 105 of file tmerge.c.

Referenced by main().

#define SOURCE6_LENGTH   4
 

Definition at line 129 of file tmerge.c.

Referenced by main().

#define SOURCE7_LENGTH   1
 

Definition at line 153 of file tmerge.c.

Referenced by main().

#define SOURCE8_LENGTH   1
 

Definition at line 169 of file tmerge.c.

Referenced by main().

#define SOURCE9_LENGTH   1
 

Definition at line 186 of file tmerge.c.

Referenced by main().

#define START_INDEX1   4
 

Definition at line 32 of file tmerge.c.

Referenced by main().

#define START_INDEX10   1
 

Definition at line 213 of file tmerge.c.

Referenced by main().

#define START_INDEX2   4
 

Definition at line 55 of file tmerge.c.

Referenced by main().

#define START_INDEX3   9
 

Definition at line 77 of file tmerge.c.

Referenced by main().

#define START_INDEX4   0
 

Definition at line 100 of file tmerge.c.

Referenced by main().

#define START_INDEX5   2
 

Definition at line 124 of file tmerge.c.

Referenced by main().

#define START_INDEX6   4
 

Definition at line 148 of file tmerge.c.

Referenced by main().

#define START_INDEX7   0
 

Definition at line 164 of file tmerge.c.

Referenced by main().

#define START_INDEX8   0
 

Definition at line 181 of file tmerge.c.

Referenced by main().

#define START_INDEX9   0
 

Definition at line 196 of file tmerge.c.

Referenced by main().

#define TARGET10_LENGTH   3
 

Definition at line 204 of file tmerge.c.

Referenced by main().

#define TARGET1_LENGTH   4
 

Definition at line 19 of file tmerge.c.

Referenced by main().

#define TARGET2_LENGTH   6
 

Definition at line 39 of file tmerge.c.

Referenced by main().

#define TARGET3_LENGTH   5
 

Definition at line 62 of file tmerge.c.

Referenced by main().

#define TARGET4_LENGTH   4
 

Definition at line 84 of file tmerge.c.

Referenced by main().

#define TARGET5_LENGTH   6
 

Definition at line 107 of file tmerge.c.

Referenced by main().

#define TARGET6_LENGTH   6
 

Definition at line 131 of file tmerge.c.

Referenced by main().

#define TARGET7_LENGTH   2
 

Definition at line 155 of file tmerge.c.

Referenced by main().

#define TARGET8_LENGTH   3
 

Definition at line 171 of file tmerge.c.

Referenced by main().

#define TARGET9_LENGTH   2
 

Definition at line 188 of file tmerge.c.

Referenced by main().


Typedef Documentation

typedef struct _ATTR_PAIR ATTR_PAIR
 

Referenced by FE_StreamWriteToScreenBuffer(), and MergeAttrStrings().

typedef struct _ATTR_PAIR * PATTR_PAIR
 

Referenced by main(), and MergeAttrStrings().


Function Documentation

DWORD main int  argc,
char *  argv[]
 

Definition at line 340 of file tmerge.c.

References END_INDEX1, END_INDEX10, END_INDEX2, END_INDEX3, END_INDEX4, END_INDEX5, END_INDEX6, END_INDEX7, END_INDEX8, END_INDEX9, Merge1, Merge10, MERGE10_LENGTH, MERGE1_LENGTH, Merge2, MERGE2_LENGTH, Merge3, MERGE3_LENGTH, Merge4, MERGE4_LENGTH, Merge5, MERGE5_LENGTH, Merge6, MERGE6_LENGTH, Merge7, MERGE7_LENGTH, Merge8, MERGE8_LENGTH, Merge9, MERGE9_LENGTH, MergeAttrStrings(), PATTR_PAIR, Source1, Source10, SOURCE10_LENGTH, SOURCE1_LENGTH, Source2, SOURCE2_LENGTH, Source3, SOURCE3_LENGTH, Source4, SOURCE4_LENGTH, Source5, SOURCE5_LENGTH, Source6, SOURCE6_LENGTH, Source7, SOURCE7_LENGTH, Source8, SOURCE8_LENGTH, Source9, SOURCE9_LENGTH, START_INDEX1, START_INDEX10, START_INDEX2, START_INDEX3, START_INDEX4, START_INDEX5, START_INDEX6, START_INDEX7, START_INDEX8, START_INDEX9, Target1, Target10, TARGET10_LENGTH, TARGET1_LENGTH, Target2, TARGET2_LENGTH, Target3, TARGET3_LENGTH, Target4, TARGET4_LENGTH, Target5, TARGET5_LENGTH, Target6, TARGET6_LENGTH, Target7, TARGET7_LENGTH, Target8, TARGET8_LENGTH, Target9, and TARGET9_LENGTH.

00344 { 00345 PATTR_PAIR Target; 00346 WORD TargetLength; 00347 WORD i; 00348 00349 MergeAttrStrings(Source1, 00350 SOURCE1_LENGTH, 00351 Merge1, 00352 MERGE1_LENGTH, 00353 &Target, 00354 &TargetLength, 00355 START_INDEX1, 00356 END_INDEX1 00357 ); 00358 if (TargetLength != TARGET1_LENGTH) { 00359 printf("merge 1 failed\n"); 00360 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET1_LENGTH); 00361 } 00362 if (memcmp(Target,Target1,TargetLength)) { 00363 printf("Target didn't match\n"); 00364 for (i=0;i<TargetLength;i++) { 00365 printf("returned attr is %d\n",Target[i].Attr); 00366 printf("returned length is %d\n",Target[i].Length); 00367 printf("expected attr is %d\n",Target1[i].Attr); 00368 printf("expected length is %d\n",Target1[i].Length); 00369 } 00370 } 00371 MergeAttrStrings(Source2, 00372 SOURCE2_LENGTH, 00373 Merge2, 00374 MERGE2_LENGTH, 00375 &Target, 00376 &TargetLength, 00377 START_INDEX2, 00378 END_INDEX2 00379 ); 00380 if (TargetLength != TARGET2_LENGTH) { 00381 printf("merge 2 failed\n"); 00382 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET2_LENGTH); 00383 } 00384 if (memcmp(Target,Target2,TargetLength)) { 00385 printf("Target didn't match\n"); 00386 for (i=0;i<TargetLength;i++) { 00387 printf("returned attr is %d\n",Target[i].Attr); 00388 printf("returned length is %d\n",Target[i].Length); 00389 printf("expected attr is %d\n",Target2[i].Attr); 00390 printf("expected length is %d\n",Target2[i].Length); 00391 } 00392 } 00393 MergeAttrStrings(Source3, 00394 SOURCE3_LENGTH, 00395 Merge3, 00396 MERGE3_LENGTH, 00397 &Target, 00398 &TargetLength, 00399 START_INDEX3, 00400 END_INDEX3 00401 ); 00402 if (TargetLength != TARGET3_LENGTH) { 00403 printf("merge 3 failed\n"); 00404 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET3_LENGTH); 00405 } 00406 if (memcmp(Target,Target3,TargetLength)) { 00407 printf("Target didn't match\n"); 00408 for (i=0;i<TargetLength;i++) { 00409 printf("returned attr is %d\n",Target[i].Attr); 00410 printf("returned length is %d\n",Target[i].Length); 00411 printf("expected attr is %d\n",Target3[i].Attr); 00412 printf("expected length is %d\n",Target3[i].Length); 00413 } 00414 } 00415 MergeAttrStrings(Source4, 00416 SOURCE4_LENGTH, 00417 Merge4, 00418 MERGE4_LENGTH, 00419 &Target, 00420 &TargetLength, 00421 START_INDEX4, 00422 END_INDEX4 00423 ); 00424 if (TargetLength != TARGET4_LENGTH) { 00425 printf("merge 4 failed\n"); 00426 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET4_LENGTH); 00427 } 00428 if (memcmp(Target,Target4,TargetLength)) { 00429 printf("Target didn't match\n"); 00430 for (i=0;i<TargetLength;i++) { 00431 printf("returned attr is %d\n",Target[i].Attr); 00432 printf("returned length is %d\n",Target[i].Length); 00433 printf("expected attr is %d\n",Target4[i].Attr); 00434 printf("expected length is %d\n",Target4[i].Length); 00435 } 00436 } 00437 MergeAttrStrings(Source5, 00438 SOURCE5_LENGTH, 00439 Merge5, 00440 MERGE5_LENGTH, 00441 &Target, 00442 &TargetLength, 00443 START_INDEX5, 00444 END_INDEX5 00445 ); 00446 if (TargetLength != TARGET5_LENGTH) { 00447 printf("merge 5 failed\n"); 00448 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET5_LENGTH); 00449 } 00450 if (memcmp(Target,Target5,TargetLength)) { 00451 printf("Target didn't match\n"); 00452 for (i=0;i<TargetLength;i++) { 00453 printf("returned attr is %d\n",Target[i].Attr); 00454 printf("returned length is %d\n",Target[i].Length); 00455 printf("expected attr is %d\n",Target5[i].Attr); 00456 printf("expected length is %d\n",Target5[i].Length); 00457 } 00458 } 00459 MergeAttrStrings(Source6, 00460 SOURCE6_LENGTH, 00461 Merge6, 00462 MERGE6_LENGTH, 00463 &Target, 00464 &TargetLength, 00465 START_INDEX6, 00466 END_INDEX6 00467 ); 00468 if (TargetLength != TARGET6_LENGTH) { 00469 printf("merge 6 failed\n"); 00470 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET6_LENGTH); 00471 } 00472 if (memcmp(Target,Target6,TargetLength)) { 00473 printf("Target didn't match\n"); 00474 for (i=0;i<TargetLength;i++) { 00475 printf("returned attr is %d\n",Target[i].Attr); 00476 printf("returned length is %d\n",Target[i].Length); 00477 printf("expected attr is %d\n",Target6[i].Attr); 00478 printf("expected length is %d\n",Target6[i].Length); 00479 } 00480 } 00481 MergeAttrStrings(Source7, 00482 SOURCE7_LENGTH, 00483 Merge7, 00484 MERGE7_LENGTH, 00485 &Target, 00486 &TargetLength, 00487 START_INDEX7, 00488 END_INDEX7 00489 ); 00490 if (TargetLength != TARGET7_LENGTH) { 00491 printf("merge 7 failed\n"); 00492 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET7_LENGTH); 00493 } 00494 if (memcmp(Target,Target7,TargetLength)) { 00495 printf("Target didn't match\n"); 00496 for (i=0;i<TargetLength;i++) { 00497 printf("returned attr is %d\n",Target[i].Attr); 00498 printf("returned length is %d\n",Target[i].Length); 00499 printf("expected attr is %d\n",Target7[i].Attr); 00500 printf("expected length is %d\n",Target7[i].Length); 00501 } 00502 } 00503 MergeAttrStrings(Source8, 00504 SOURCE8_LENGTH, 00505 Merge8, 00506 MERGE8_LENGTH, 00507 &Target, 00508 &TargetLength, 00509 START_INDEX8, 00510 END_INDEX8 00511 ); 00512 if (TargetLength != TARGET8_LENGTH) { 00513 printf("merge 8 failed\n"); 00514 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET8_LENGTH); 00515 } 00516 if (memcmp(Target,Target8,TargetLength)) { 00517 printf("Target didn't match\n"); 00518 for (i=0;i<TargetLength;i++) { 00519 printf("returned attr is %d\n",Target[i].Attr); 00520 printf("returned length is %d\n",Target[i].Length); 00521 printf("expected attr is %d\n",Target8[i].Attr); 00522 printf("expected length is %d\n",Target8[i].Length); 00523 } 00524 } 00525 MergeAttrStrings(Source9, 00526 SOURCE9_LENGTH, 00527 Merge9, 00528 MERGE9_LENGTH, 00529 &Target, 00530 &TargetLength, 00531 START_INDEX9, 00532 END_INDEX9 00533 ); 00534 if (TargetLength != TARGET9_LENGTH) { 00535 printf("merge 9 failed\n"); 00536 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET9_LENGTH); 00537 } 00538 if (memcmp(Target,Target9,TargetLength)) { 00539 printf("Target didn't match\n"); 00540 for (i=0;i<TargetLength;i++) { 00541 printf("returned attr is %d\n",Target[i].Attr); 00542 printf("returned length is %d\n",Target[i].Length); 00543 printf("expected attr is %d\n",Target9[i].Attr); 00544 printf("expected length is %d\n",Target9[i].Length); 00545 } 00546 } 00547 MergeAttrStrings(Source10, 00548 SOURCE10_LENGTH, 00549 Merge10, 00550 MERGE10_LENGTH, 00551 &Target, 00552 &TargetLength, 00553 START_INDEX10, 00554 END_INDEX10 00555 ); 00556 if (TargetLength != TARGET10_LENGTH) { 00557 printf("merge 10 failed\n"); 00558 printf("TargetLength is %d. expected %d\n",TargetLength,TARGET10_LENGTH); 00559 } 00560 if (memcmp(Target,Target10,TargetLength)) { 00561 printf("Target didn't match\n"); 00562 for (i=0;i<TargetLength;i++) { 00563 printf("returned attr is %d\n",Target[i].Attr); 00564 printf("returned length is %d\n",Target[i].Length); 00565 printf("expected attr is %d\n",Target10[i].Attr); 00566 printf("expected length is %d\n",Target10[i].Length); 00567 } 00568 } 00569 }

MergeAttrStrings PATTR_PAIR  Source,
WORD  SourceLength,
PATTR_PAIR  Merge,
WORD  MergeLength,
OUT PATTR_PAIR Target,
OUT LPWORD  TargetLength,
IN WORD  StartIndex,
IN WORD  EndIndex
 

Definition at line 217 of file tmerge.c.

References _ATTR_PAIR::Attr, ATTR_PAIR, _ATTR_PAIR::Length, Merge, PATTR_PAIR, and SHORT.

00231 { 00232 PATTR_PAIR SrcAttr,TargetAttr,SrcEnd; 00233 PATTR_PAIR NewString; 00234 WORD NewStringLength=0; 00235 WORD i; 00236 00237 NewString = (PATTR_PAIR) LocalAlloc(LMEM_FIXED,(SourceLength+MergeLength+1)*sizeof(ATTR_PAIR)); 00238 00239 // 00240 // copy the source string, up to the start index. 00241 // 00242 00243 SrcAttr = Source; 00244 SrcEnd = Source + SourceLength; 00245 TargetAttr = NewString; 00246 if (StartIndex != 0) { 00247 for (i=0;i<StartIndex;) { 00248 i += SrcAttr->Length; 00249 *TargetAttr++ = *SrcAttr++; 00250 } 00251 00252 // 00253 // back up to the last pair copied, in case the attribute in the first 00254 // pair in the merge string matches. also, adjust TargetAttr->Length 00255 // based on i, the attribute 00256 // counter, back to the StartIndex. i will be larger than the 00257 // StartIndex in the case where the last attribute pair copied had 00258 // a length greater than the number needed to reach StartIndex. 00259 // 00260 00261 TargetAttr--; 00262 if (i>StartIndex) { 00263 TargetAttr->Length -= i-StartIndex; 00264 } 00265 if (Merge->Attr == TargetAttr->Attr) { 00266 TargetAttr->Length += Merge->Length; 00267 MergeLength-=1; 00268 Merge++; 00269 } 00270 TargetAttr++; 00271 } else { 00272 i=0; 00273 } 00274 00275 // 00276 // copy the merge string. 00277 // 00278 00279 RtlCopyMemory(TargetAttr,Merge,MergeLength*sizeof(ATTR_PAIR)); 00280 TargetAttr += MergeLength; 00281 00282 // 00283 // figure out where to resume copying the source string. 00284 // 00285 00286 while (i<=EndIndex) { 00287 i += SrcAttr->Length; 00288 SrcAttr++; 00289 } 00290 00291 // 00292 // if not done, copy the rest of the source 00293 // 00294 00295 if (SrcAttr != SrcEnd || i!=(EndIndex+1)) { 00296 00297 // 00298 // see if we've gone past the right attribute. if so, back up and 00299 // copy the attribute and the correct length. 00300 // 00301 00302 TargetAttr--; 00303 if (i>(SHORT)(EndIndex+1)) { 00304 SrcAttr--; 00305 if (TargetAttr->Attr == SrcAttr->Attr) { 00306 TargetAttr->Length += i-(EndIndex+1); 00307 } else { 00308 TargetAttr++; 00309 TargetAttr->Attr = SrcAttr->Attr; 00310 TargetAttr->Length = i-(EndIndex+1); 00311 } 00312 SrcAttr++; 00313 } 00314 00315 // 00316 // see if we can merge the source and target. 00317 // 00318 00319 else if (TargetAttr->Attr == SrcAttr->Attr) { 00320 TargetAttr->Length += SrcAttr->Length; 00321 i += SrcAttr->Length; 00322 SrcAttr++; 00323 } 00324 TargetAttr++; 00325 00326 // 00327 // copy the rest of the source 00328 // 00329 00330 RtlCopyMemory(TargetAttr,SrcAttr,(SourceLength*sizeof(ATTR_PAIR)) - ((ULONG)SrcAttr - (ULONG)Source)); 00331 } 00332 00333 TargetAttr = (PATTR_PAIR)((ULONG)TargetAttr + (SourceLength*sizeof(ATTR_PAIR)) - ((ULONG)SrcAttr - (ULONG)Source)); 00334 *TargetLength = (WORD)(TargetAttr - NewString); 00335 *Target = NewString; 00336 return; 00337 }


Variable Documentation

ATTR_PAIR Merge1[MERGE1_LENGTH] = { 2, 20 }
 

Definition at line 25 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge10[MERGE10_LENGTH]
 

Initial value:

{ 1, 20 }

Definition at line 207 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge2[MERGE2_LENGTH]
 

Initial value:

{ 1, 20, 1, 30 }

Definition at line 45 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge3[MERGE3_LENGTH]
 

Initial value:

{ 1, 20, 1, 30 }

Definition at line 68 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge4[MERGE4_LENGTH]
 

Initial value:

{ 1, 20, 1, 30, 3, 20, 6, 60 }

Definition at line 90 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge5[MERGE5_LENGTH]
 

Initial value:

{ 1, 10, 1, 70, 1, 30 }

Definition at line 113 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge6[MERGE6_LENGTH]
 

Initial value:

{ 1, 10, 1, 70, 1, 30 }

Definition at line 137 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge7[MERGE7_LENGTH]
 

Initial value:

{ 1, 20, 2, 70 }

Definition at line 158 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge8[MERGE8_LENGTH]
 

Initial value:

{ 1, 20, 1, 80 }

Definition at line 174 of file tmerge.c.

Referenced by main().

ATTR_PAIR Merge9[MERGE9_LENGTH]
 

Initial value:

{ 1, 20 }

Definition at line 191 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source1[SOURCE1_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 20 of file tmerge.c.

Referenced by LocalCompareMemory(), and main().

ATTR_PAIR Source10[SOURCE10_LENGTH]
 

Initial value:

{ 3, 10 }

Definition at line 205 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source2[SOURCE2_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 40 of file tmerge.c.

Referenced by LocalCompareMemory(), and main().

ATTR_PAIR Source3[SOURCE3_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 63 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source4[SOURCE4_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 85 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source5[SOURCE5_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 108 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source6[SOURCE6_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 132 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source7[SOURCE7_LENGTH]
 

Initial value:

{ 3, 10 }

Definition at line 156 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source8[SOURCE8_LENGTH]
 

Initial value:

{ 3, 10 }

Definition at line 172 of file tmerge.c.

Referenced by main().

ATTR_PAIR Source9[SOURCE9_LENGTH]
 

Initial value:

{ 3, 10 }

Definition at line 189 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target1[TARGET1_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 3, 30, 1, 40 }

Definition at line 27 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target10[TARGET10_LENGTH]
 

Initial value:

{ 1, 10, 1, 20, 1, 10 }

Definition at line 209 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target2[TARGET2_LENGTH]
 

Initial value:

{ 2, 10, 3, 20, 1, 30, 1, 20, 3, 30, 1, 40 }

Definition at line 48 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target3[TARGET3_LENGTH]
 

Initial value:

{ 2, 10, 5, 20, 2, 30, 1, 20, 1, 30 }

Definition at line 71 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target4[TARGET4_LENGTH]
 

Initial value:

{ 1, 20, 1, 30, 3, 20, 6, 60 }

Definition at line 95 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target5[TARGET5_LENGTH]
 

Initial value:

{ 3, 10, 1, 70, 1, 30, 2, 20, 3, 30, 1, 40 }

Definition at line 117 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target6[TARGET6_LENGTH]
 

Initial value:

{ 2, 10, 2, 20, 1, 10, 1, 70, 4, 30, 1, 40 }

Definition at line 141 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target7[TARGET7_LENGTH]
 

Initial value:

{ 1, 20, 2, 70 }

Definition at line 161 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target8[TARGET8_LENGTH]
 

Initial value:

{ 1, 20, 1, 80, 1, 10 }

Definition at line 177 of file tmerge.c.

Referenced by main().

ATTR_PAIR Target9[TARGET9_LENGTH]
 

Initial value:

{ 1, 20, 2, 10 }

Definition at line 193 of file tmerge.c.

Referenced by main().


Generated on Sat May 15 19:45:46 2004 for test by doxygen 1.3.7