/// Print information about the specified job. static void builtin_jobs_print(const job_t *j, int mode, int header, io_streams_t &streams) { process_t *p; switch (mode) { case JOBS_DEFAULT: { if (header) { // Print table header before first job. streams.out.append(_(L"Job\tGroup\t")); #ifdef HAVE__PROC_SELF_STAT streams.out.append(_(L"CPU\t")); #endif streams.out.append(_(L"State\tCommand\n")); } streams.out.append_format(L"%d\t%d\t", j->job_id, j->pgid); #ifdef HAVE__PROC_SELF_STAT streams.out.append_format(L"%d%%\t", cpu_use(j)); #endif streams.out.append(job_is_stopped(j) ? _(L"stopped") : _(L"running")); streams.out.append(L"\t"); streams.out.append(j->command_wcstr()); streams.out.append(L"\n"); break; } case JOBS_PRINT_GROUP: { if (header) { // Print table header before first job. streams.out.append(_(L"Group\n")); } streams.out.append_format(L"%d\n", j->pgid); break; } case JOBS_PRINT_PID: { if (header) { // Print table header before first job. streams.out.append(_(L"Process\n")); } for (p = j->first_process; p; p = p->next) { streams.out.append_format(L"%d\n", p->pid); } break; } case JOBS_PRINT_COMMAND: { if (header) { // Print table header before first job. streams.out.append(_(L"Command\n")); } for (p = j->first_process; p; p = p->next) { streams.out.append_format(L"%ls\n", p->argv0()); } break; } default: { DIE("unexpected mode"); break; } } }
/** Print information about the specified job */ static void builtin_jobs_print( job_t *j, int mode, int header ) { process_t *p; switch( mode ) { case JOBS_DEFAULT: { if( header ) { /* Print table header before first job */ sb_append( sb_out, _( L"Job\tGroup\t" )); #ifdef HAVE__PROC_SELF_STAT sb_append( sb_out, _( L"CPU\t" ) ); #endif sb_append( sb_out, _( L"State\tCommand\n" ) ); } sb_printf( sb_out, L"%d\t%d\t", j->job_id, j->pgid ); #ifdef HAVE__PROC_SELF_STAT sb_printf( sb_out, L"%d%%\t", cpu_use(j) ); #endif sb_append( sb_out, job_is_stopped(j)?_(L"stopped"):_(L"running"), L"\t", j->command, L"\n", (void *)0 ); break; } case JOBS_PRINT_GROUP: { if( header ) { /* Print table header before first job */ sb_append( sb_out, _( L"Group\n" )); } sb_printf( sb_out, L"%d\n", j->pgid ); break; } case JOBS_PRINT_PID: { if( header ) { /* Print table header before first job */ sb_append( sb_out, _( L"Procces\n" )); } for( p=j->first_process; p; p=p->next ) { sb_printf( sb_out, L"%d\n", p->pid ); } break; } case JOBS_PRINT_COMMAND: { if( header ) { /* Print table header before first job */ sb_append( sb_out, _( L"Command\n" )); } for( p=j->first_process; p; p=p->next ) { sb_printf( sb_out, L"%ls\n", p->argv[0] ); } break; } } }