| 2243 | // |
| 2244 | |
| 2245 | static void gen_for( const act* action, int column) |
| 2246 | { |
| 2247 | gen_s_start(action, column); |
| 2248 | const gpre_req* request = action->act_request; |
| 2249 | |
| 2250 | if (action->act_error || (action->act_flags & ACT_sql)) |
| 2251 | printa(column, "if (!%s [1]) {", global_status_name); |
| 2252 | |
| 2253 | printa(column, "while (1)"); |
| 2254 | column += INDENT; |
| 2255 | begin(column); |
| 2256 | gen_receive(action, column, request->req_primary); |
| 2257 | |
| 2258 | TEXT s[MAX_REF_SIZE]; |
| 2259 | if (action->act_error || (action->act_flags & ACT_sql)) |
| 2260 | printa(column, "if (!%s || %s [1]) break;", |
| 2261 | gen_name(s, request->req_eof, true), global_status_name); |
| 2262 | else |
| 2263 | printa(column, "if (!%s) break;", gen_name(s, request->req_eof, true)); |
| 2264 | |
| 2265 | const gpre_port* port = action->act_request->req_primary; |
| 2266 | if (port) |
| 2267 | for (const ref* reference = port->por_references; reference; reference = reference->ref_next) |
| 2268 | { |
| 2269 | if (reference->ref_field->fld_array_info) |
| 2270 | gen_get_or_put_slice(action, reference, true, column); |
| 2271 | } |
| 2272 | |
| 2273 | } |
| 2274 | |
| 2275 | |
| 2276 | //____________________________________________________________ |
no test coverage detected