MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / gen_raw

Function gen_raw

src/gpre/languages/ftn.cpp:2658–2707  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2656//
2657
2658static void gen_raw(const UCHAR* blr, req_t request_type, int request_length, int begin_c, int end_c)
2659{
2660 union {
2661 UCHAR bytewise_blr[4];
2662 SLONG longword_blr;
2663 } blr_hunk;
2664
2665 blr = blr + begin_c;
2666 int blr_length = end_c - begin_c + 1;
2667
2668 TEXT buffer[80];
2669 TEXT* p = buffer;
2670
2671 while (blr_length)
2672 {
2673 blr_hunk.longword_blr = 0;
2674 for (UCHAR* c = blr_hunk.bytewise_blr; c < blr_hunk.bytewise_blr + sizeof(SLONG); c++)
2675 {
2676 if (--blr_length)
2677 *c = *blr++;
2678 else
2679 {
2680 if (request_type == REQ_slice)
2681 *c = isc_sdl_eoc;
2682 else if (request_type == REQ_ddl || request_type == REQ_create_database ||
2683 (request_length != end_c + 1))
2684 {
2685 *c = *blr++;
2686 }
2687 else
2688 *c = blr_eoc;
2689 break;
2690 }
2691 }
2692 if (blr_length)
2693 sprintf(p, "%" SLONGFORMAT",", blr_hunk.longword_blr);
2694 else
2695 sprintf(p, "%" SLONGFORMAT, blr_hunk.longword_blr);
2696 while (*p)
2697 p++;
2698 if (p - buffer > 50)
2699 {
2700 fprintf(gpreGlob.out_file, "%s%s\n", CONTINUE, buffer);
2701 p = buffer;
2702 *p = 0;
2703 }
2704 }
2705
2706 fprintf(gpreGlob.out_file, "%s%s/\n", CONTINUE, buffer);
2707}
2708
2709
2710//____________________________________________________________

Callers 1

gen_request_dataFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected