| 2656 | // |
| 2657 | |
| 2658 | static 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 | //____________________________________________________________ |