Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset d52b0044 in mainline for uspace/app/getterm/getterm.c


Ignore:
Timestamp:
2010-11-14T16:16:11Z (11 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master
Children:
4deb8b5
Parents:
9e2e715
Message:

Update copyright year in getterm. Allow getterm to pass arguments to the command being executed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/getterm/getterm.c

    r9e2e715 rd52b0044  
    4848static void usage(void)
    4949{
    50         printf("Usage: %s <terminal> <path>\n", APP_NAME);
     50        printf("Usage: %s <terminal> <command> [<arguments...>]\n", APP_NAME);
    5151}
    5252
     
    7373}
    7474
    75 static task_id_t spawn(const char *fname)
    76 {
    77         task_id_t id;
    78         int rc;
    79        
    80         rc = task_spawnl(&id, fname, fname, NULL);
    81         if (rc != EOK) {
    82                 printf("%s: Error spawning %s (%s)\n", APP_NAME, fname,
    83                     str_error(rc));
    84                 return 0;
    85         }
    86        
    87         return id;
    88 }
    89 
    9075int main(int argc, char *argv[])
    9176{
     77        int rc;
     78        task_exit_t texit;
     79        int retval;
     80        task_id_t id;
     81        char *fname;
     82
    9283        if (argc < 3) {
    9384                usage();
     
    115106       
    116107        version_print(argv[1]);
    117         task_id_t id = spawn(argv[2]);
     108        fname = argv[2];
    118109       
    119         if (id != 0) {
    120                 task_exit_t texit;
    121                 int retval;
    122                 task_wait(id, &texit, &retval);
    123                
    124                 return 0;
     110        rc = task_spawnv(&id, fname, (const char * const *) &argv[2]);
     111        if (rc != EOK) {
     112                printf("%s: Error spawning %s (%s)\n", APP_NAME, fname,
     113                    str_error(rc));
     114                return -5;
    125115        }
    126        
    127         return -5;
     116
     117        rc = task_wait(id, &texit, &retval);
     118        if (rc != EOK) {
     119                printf("%s: Error waiting for %s (%s)\n", APP_NAME, fname,
     120                    str_error(rc));
     121                return -6;
     122        }
     123
     124        return 0;
    128125}
    129126
Note: See TracChangeset for help on using the changeset viewer.