Changeset 60770


Ignore:
Timestamp:
Nov 23, 2009, 4:32:54 AM (8 years ago)
Author:
jmr@…
Message:

1.8 branch: similar change to trunk's r60769:

  • include command output in the return value of the system proc only if not in debug or verbose mode (#21084)
  • instruct user to run again in debug mode on failure, or give the ticket guidelines URL if in debug mode already
Location:
branches/release_1_8/base/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/release_1_8/base/src/pextlib1.0/system.c

    r53831 r60770  
    197197                        status = TCL_OK;
    198198                } else {
    199                         /* Copy the contents of the circular buffer to errbuf */
    200                         Tcl_Obj* errorCode;
    201                         errbuf = Tcl_NewStringObj(NULL, 0);
    202                         for (fline = pos; pos < fline + CBUFSIZ; pos++) {
    203                                 if (circbuf[pos % CBUFSIZ].len == 0)
    204                                 continue; /* skip empty lines */
    205 
    206                                 /* Append line, minus trailing NULL */
    207                                 Tcl_AppendToObj(errbuf, circbuf[pos % CBUFSIZ].line,
    208                                                 circbuf[pos % CBUFSIZ].len - 1);
    209 
    210                                 /* Re-add previously stripped newline */
    211                                 Tcl_AppendToObj(errbuf, "\n", 1);
    212                         }
     199                    Tcl_Obj* errorCode;
     200                    const char *portverbose;
    213201
    214202                        /* set errorCode [list CHILDSTATUS <pid> <code>] */
     
    224212                        Tcl_AppendToObj(tcl_result, "\" returned error ", -1);
    225213                        Tcl_AppendObjToObj(tcl_result, Tcl_NewIntObj(WEXITSTATUS(ret)));
    226                         Tcl_AppendToObj(tcl_result, "\nCommand output: ", -1);
    227                         Tcl_AppendObjToObj(tcl_result, errbuf);
     214                       
     215                        portverbose = Tcl_GetVar(interp, "portverbose", TCL_GLOBAL_ONLY);
     216                        /* include last 30 lines of output only if they haven't already
     217                           been shown due to debug or verbose mode */
     218                        if (portverbose && strcmp("yes", portverbose) != 0) {
     219                            /* Copy the contents of the circular buffer to errbuf */
     220                errbuf = Tcl_NewStringObj(NULL, 0);
     221                for (fline = pos; pos < fline + CBUFSIZ; pos++) {
     222                    if (circbuf[pos % CBUFSIZ].len == 0)
     223                    continue; /* skip empty lines */
     224
     225                    /* Append line, minus trailing NULL */
     226                    Tcl_AppendToObj(errbuf, circbuf[pos % CBUFSIZ].line,
     227                            circbuf[pos % CBUFSIZ].len - 1);
     228
     229                    /* Re-add previously stripped newline */
     230                    Tcl_AppendToObj(errbuf, "\n", 1);
     231                }
     232                            Tcl_AppendToObj(tcl_result, "\nCommand output: ", -1);
     233                            Tcl_AppendObjToObj(tcl_result, errbuf);
     234                        }
    228235                        Tcl_SetObjResult(interp, tcl_result);
    229236                }
  • branches/release_1_8/base/src/port/port.tcl

    r59588 r60770  
    157157}
    158158
     159# show the URL for the ticket reporting instructions
     160proc print_tickets_url {args} {
     161    if {![macports::ui_isset ports_quiet]} {
     162        if {[macports::ui_isset ports_debug]} {
     163            ui_msg "To report a bug, see <http://guide.macports.org/#project.tickets>"
     164        } else {
     165            ui_msg "Before reporting a bug, first run the command again with the -d flag to get complete output."
     166        }
     167    }
     168}
    159169
    160170# Form a composite version as is sometimes used for registry functions
     
    20382048                    unset -nocomplain macports::global_options(ports_nodeps)
    20392049                }
    2040                 return $status
     2050                break
    20412051            }
    20422052        }
     
    20452055    if {!$orig_nodeps} {
    20462056        unset -nocomplain macports::global_options(ports_nodeps)
     2057    }
     2058    if {$status != 0} {
     2059        print_tickets_url
    20472060    }
    20482061    return $status
     
    29332946    }
    29342947   
     2948    if {$status != 0} {
     2949        print_tickets_url
     2950    }
    29352951    return $status
    29362952}
Note: See TracChangeset for help on using the changeset viewer.