- /*
- * What does the operator want?
- */
- previewed = 0;
- errordest = TOSTDOUT;
- if (oktotouch(currentfilename) && (ntrueerrors > 0) ){
- if (query && inquire("Do you want to preview the errors first?")){
- previewed = 1;
- for (erpp = files[fileindex];
- erpp < files[fileindex + 1];
- erpp++){
- errorprint(stdout, *erpp, TRUE);
- }
- fprintf(stdout, "\n");
- }
- if ( !query
- || inquire("Do you want to touch file \"%s\"? ",
- currentfilename)
- ){
- errordest = TOTHEFILE;
- if (!probethisfile(currentfilename)){
- errordest = TOSTDOUT;
- fprintf(stdout,
- "Can't find file \"%s\" to insert error messages into.\n",
- currentfilename);
- } else {
- if (edit(currentfilename))
- errordest = TOSTDOUT;
- else
- touchedfiles[fileindex] = TRUE;
- }
- }
- }
- if (previewed && (errordest == TOSTDOUT))
- continue; /* with the next file */
- /*
- * go through and print each error message,
- * diverting to the right place
- */
- if ( (files[fileindex+1] - files[fileindex]) != ntrueerrors)
- if (!previewed) fprintf(stdout,
- ">>Uninserted error messages for file \"%s\" follow.\n",
- currentfilename);
- for (erpp = files[fileindex];erpp < files[fileindex+1];erpp++){
- errorp = *erpp;
- if (errorp->error_e_class == C_TRUE){
- switch (errordest){
- case TOSTDOUT:
- if (!previewed)
- errorprint(stdout,errorp, TRUE);
- break;
- case TOTHEFILE:
- insert(errorp->error_line);
- text(errorp, FALSE);
- break;
- } /* switch */
- } else {
- if (!previewed)
- errorprint(stdout, errorp, TRUE);
- }
- } /* end of walking through all errors*/
- if (errordest == TOTHEFILE){
- writetouched();
- }
- } /* end of walking through all files*/