| 225 |  | if (hd) | 
| 226 |  | return; | 
| 227 |  | /* set initial viewpoint */ | 
| 228 | < | copystruct(&nv, &odev.v); | 
| 228 | > | nv = odev.v; | 
| 229 |  | VSUM(nv.vp, hdlist[0]->orig, hdlist[0]->xv[0], 0.5); | 
| 230 |  | VSUM(nv.vp, nv.vp, hdlist[0]->xv[1], 0.5); | 
| 231 |  | VSUM(nv.vp, nv.vp, hdlist[0]->xv[2], 0.5); | 
| 306 |  | error(COMMAND, "invalid starting view"); | 
| 307 |  | return; | 
| 308 |  | } | 
| 309 | < | copystruct(v, viewhist + ((nhist-1)%VIEWHISTLEN)); | 
| 309 | > | *v = *(viewhist + ((nhist-1)%VIEWHISTLEN)); | 
| 310 |  | goto again;     /* poss. overloading dev_section()? */ | 
| 311 |  | } | 
| 312 |  | DCHECK(*slist < 0, WARNING, "no visible sections in new_view"); | 
| 319 |  | imm_mode = beam_sync(odev.firstuse) > 0; | 
| 320 |  | /* record new view */ | 
| 321 |  | if (v < viewhist || v >= viewhist+VIEWHISTLEN) { | 
| 322 | < | copystruct(viewhist + (nhist%VIEWHISTLEN), v); | 
| 322 | > | *(viewhist + (nhist%VIEWHISTLEN)) = *v; | 
| 323 |  | nhist++; | 
| 324 |  | } | 
| 325 |  | } | 
| 349 |  | beam_init(0);                                   /* add basic views */ | 
| 350 |  | for (i = 0; (dv = dev_auxview(i, res)) != NULL; i++) | 
| 351 |  | beam_view(dv, res[0]>>4, res[1]>>4); | 
| 352 | < | copystruct(&vwfocus, &odev.v);                  /* add focus view */ | 
| 352 | > | vwfocus = odev.v;                       /* add focus view */ | 
| 353 |  | switch (odev.v.type) { | 
| 354 |  | case VT_PER: | 
| 355 |  | vwfocus.horiz = 2.*180./PI*atan( | 
| 415 |  | } | 
| 416 |  | switch (i) { | 
| 417 |  | case DC_SETVIEW:                /* set the view */ | 
| 418 | < | copystruct(&vparams, &odev.v); | 
| 418 | > | vparams = odev.v; | 
| 419 |  | if (!sscanview(&vparams, args)) | 
| 420 |  | error(COMMAND, "missing view options"); | 
| 421 |  | else |