Main Page Class Hierarchy Compound List File List Compound Members File Members

# PAwk Class Reference

`#include <cmt_awk.h>`

Inheritance diagram for PAwk

[legend]
Collaboration diagram for PAwk:

[legend]
List of all members.

## Public Methods
condition | run (const cmt_string& command, const cmt_string& pattern = "")
condition | run (const cmt_string& text, const cmt_regexp& expression)

## Member Function Documentation

Awk::condition PAwk::run ( | const cmt_string & command,
| const cmt_regexp & expression )

| Reimplemented from Awk. Definition at line 535 of file cmt_awk.cxx.
    00537 {
    00538   cmt_string line;
    00539
    00540   m_line_number = 0;
    00541   m_condition = ok;
    00542
    00543   begin ();
    00544   if (m_condition != ok) return (m_condition);
    00545
    00546   FILE* f = popen (command.c_str (), "r");
    00547
    00548   if (f == 0) return (failed);
    00549
    00550   char buffer[256];
    00551   char* ptr;
    00552
    00553   while ((ptr = fgets (buffer, sizeof (buffer), f)) != NULL)
    00554     {
    00555       line = ptr;
    00556
    00557       line.replace ("\n", "");
    00558
    00559       m_line_number++;
    00560
    00561       if (line != "")
    00562         {
    00563           if (expression.match (line))
    00564             {
    00565               filter (line);
    00566               if (m_condition != ok) return (m_condition);
    00567             }
    00568         }
    00569     }
    00570
    00571   pclose (f);
    00572
    00573   end ();
    00574
    00575   return (m_condition);
    00576 }

Awk::condition PAwk::run ( | const cmt_string & command,
| const cmt_string & pattern = "" )

| Reimplemented from Awk. Definition at line 485 of file cmt_awk.cxx.
    00487 {
    00488   cmt_string line;
    00489
    00490   m_line_number = 0;
    00491   m_condition = ok;
    00492
    00493   begin ();
    00494   if (m_condition != ok) return (m_condition);
    00495
    00496   FILE* f = popen (command.c_str (), "r");
    00497
    00498   if (f == 0) return (failed);
    00499
    00500   char buffer[8192];
    00501   char* ptr;
    00502
    00503   while ((ptr = fgets (buffer, sizeof (buffer), f)) != NULL)
    00504     {
    00505       line = ptr;
    00506
    00507       if (line.find ("\n") == cmt_string::npos)
    00508         {
    00509           cerr << "#CMT> Warning : Line too long and truncated in PAwk::run for command " << command << endl;
    00510         }
    00511
    00512       line.replace ("\n", "");
    00513
    00514       m_line_number++;
    00515
    00516       if (line != "")
    00517         {
    00518           if ((pattern == "") ||
    00519               (line.find (pattern) != cmt_string::npos))
    00520             {
    00521               filter (line);
    00522               if (m_condition != ok) return (m_condition);
    00523             }
    00524         }
    00525     }
    00526
    00527   pclose (f);
    00528
    00529   end ();
    00530
    00531   return (m_condition);
    00532 }

The documentation for this class was generated from the following files:

- cmt_awk.h
- cmt_awk.cxx