File: execute.cc

package info (click to toggle)
icmake 13.05.01-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,132 kB
  • sloc: cpp: 11,595; fortran: 883; makefile: 853; sh: 546; pascal: 342
file content (20 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//#define XERR
#include "builtin.ih"

void Builtin::execute(bool check, char const *label,
                      Process &process, void (Process::*member)() )
{
    if (d_echo)
        cout << process.str() << endl;

    (process.*member)();                        // execute the command (using
                                                // start or system)

    int ret = process.waitForChild();           // get the return value

    if (check and ret != 0)                     // on failure...
        throw Exception{} << label << " `" << process.str() << 
                            "' failed. Exit value = " << ret << '\n';

    d_reg = ret;
}