more.c-Dateireferenz

#include <pager.h>
Include-Abhängigkeitsdiagramm für more.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define MSG_WRAPPED   " WRAPPED"
#define MSG_NOT_FOUND   " NOTHING FOUND"
#define MSG_NO_REGX   " NO PREV REGULAR EXPR"
#define MSG_ILLEGAL   " ILLEGAL LINE NUMBER"
#define MSG_HELP   "\Help for more:\n\\n\b,B -- One page back.\n\u,U -- Half a page back.\n\f,F -- One page forward.\n\d,D -- Half a page forward.\n<line> -- Jump to line number <line>\n\q,x -- Quit or eXit more.\n\/<regexp> -- Search for the regular expression <regexp>.\n"

Funktionen

string prompt (mixed pinfo, string add)
int search (mixed pinfo)
varargs int eval_command (mixed in, mixed pinfo)

Variablen

inherit std util pager
static private string cprompt = ""

Makro-Dokumentation

#define MSG_HELP   "\Help for more:\n\\n\b,B -- One page back.\n\u,U -- Half a page back.\n\f,F -- One page forward.\n\d,D -- Half a page forward.\n<line> -- Jump to line number <line>\n\q,x -- Quit or eXit more.\n\/<regexp> -- Search for the regular expression <regexp>.\n"

Definiert in Zeile 37 der Datei more.c.

Wird benutzt von eval_command().

#define MSG_ILLEGAL   " ILLEGAL LINE NUMBER"

Definiert in Zeile 36 der Datei more.c.

Wird benutzt von eval_command().

#define MSG_NO_REGX   " NO PREV REGULAR EXPR"

Definiert in Zeile 35 der Datei more.c.

Wird benutzt von eval_command().

#define MSG_NOT_FOUND   " NOTHING FOUND"

Definiert in Zeile 34 der Datei more.c.

Wird benutzt von eval_command().

#define MSG_WRAPPED   " WRAPPED"

Definiert in Zeile 33 der Datei more.c.

Wird benutzt von search().


Dokumentation der Funktionen

varargs int eval_command ( mixed  in,
mixed  pinfo 
)

Definiert in Zeile 93 der Datei more.c.

Benutzt cprompt, CURL, MAXL, MSG_HELP, MSG_ILLEGAL, MSG_NO_REGX, MSG_NOT_FOUND, PAGE, REGX und search().

Wird benutzt von eval_command() und More().

00094 {
00095   cprompt = "";
00096   if(stringp(in))
00097     switch(in)
00098     {
00099     case "?":
00100       write(MSG_HELP+"\n");
00101       return 0; 
00102     case "b":
00103     case "B":
00104       pinfo[CURL] -= pinfo[PAGE];
00105       break;
00106     case "u":
00107     case "U":
00108       pinfo[CURL] -= pinfo[PAGE] / 2;
00109       break;
00110     case "f":
00111     case "F":
00112       pinfo[CURL] += pinfo[PAGE];
00113       break;
00114     case "d":
00115     case "D":
00116       pinfo[CURL] += pinfo[PAGE] / 2;
00117       break;
00118     default:
00119     {
00120       int l;
00121       if(l = to_int(in))
00122       {
00123         if(l > pinfo[MAXL] || l < 1) return (cprompt = MSG_ILLEGAL, 0);
00124         pinfo[CURL] = l;
00125         break;
00126       }
00127       if(strlen(in) && in[0] == '/')
00128       {
00129                 if(strlen(in) == 1)
00130                 {
00131                   if(!pinfo[REGX]) return (cprompt = MSG_NO_REGX, 0);
00132                 }
00133                 else pinfo[REGX] = in[1..];
00134                 if(l = search(pinfo)) pinfo[CURL] = l;
00135                 else return (cprompt = MSG_NOT_FOUND, 0);
00136       }
00137       else return ::eval_command(in, pinfo);    
00138       break;
00139     }
00140     }
00141   else return ::eval_command(in, pinfo);
00142   return ::eval_command(-1, pinfo);
00143 }   

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

string prompt ( mixed  pinfo,
string  add 
)

Definiert in Zeile 51 der Datei more.c.

Benutzt cprompt, CURL, E_ABS, FLAG, MAXL, PAGE und prompt().

00052 {
00053   int line,max; max = 1;
00054   if(pointerp(pinfo))
00055   {
00056      if(pinfo[CURL] + pinfo[PAGE] >= pinfo[MAXL]) line = pinfo[MAXL];
00057      else line = pinfo[CURL] + pinfo[PAGE];
00058      max = pinfo[MAXL];
00059   }
00060   if (pinfo[FLAG] & E_ABS)
00061     return sprintf("%s (%d/%d)%s %s",
00062                                    ::prompt(pinfo, ""),
00063                                    line-1, pinfo[MAXL],
00064                                    cprompt, stringp(add)?add:"");
00065   else
00066     return sprintf("%s(%d%%)%s %s",
00067                                    ::prompt(pinfo, ""),
00068                                    line*100/max, 
00069                                    cprompt, stringp(add)?add:"");
00070 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

int search ( mixed  pinfo  ) 

Definiert in Zeile 72 der Datei more.c.

Benutzt cprompt, CURL, fread(), lines, MSG_WRAPPED, old_explode(), PAGE und REGX.

00073 {
00074   int l, lines;
00075   mixed tmp;
00076   l = pinfo[CURL];
00077   while((tmp = fread(pinfo, l, pinfo[PAGE])) &&
00078         !sizeof(regexp(old_explode(tmp, "\n"), pinfo[REGX])))
00079     l += pinfo[PAGE];
00080   if(!tmp)
00081   {
00082     cprompt += MSG_WRAPPED;
00083     l = 1;
00084     while(l < pinfo[CURL] &&
00085           (tmp = fread(pinfo, l, pinfo[PAGE])) &&
00086           !sizeof(regexp(old_explode(tmp, "\n"), pinfo[REGX])))
00087       l += pinfo[PAGE];
00088     if(l >= pinfo[CURL]) return 0;
00089   }
00090   return l;
00091 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:


Variablen-Dokumentation

private string cprompt = "" [static]

Definiert in Zeile 49 der Datei more.c.

Wird benutzt von eval_command(), prompt() und search().

inherit std util pager

Definiert in Zeile 13 der Datei more.c.

Erzeugt am Thu Jun 3 14:42:38 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3