ed man page on Xenix

Man page or keyword search:  
man Server   1130 pages
apropos Keyword Search (all sections)
Output format
Xenix logo
[printable version]



     ED(C)		      XENIX System V			 ED(C)

     Name
	  ed, red - Invokes the ed text editor.

     Syntax
	  ed [ - ] [ -p string ] [ file ]

	  red [ - ] [ -p string ] [ file ]

     Description
	  ed is the standard text editor.  If the file argument is
	  given, ed simulates an e command (see below) on the named
	  file; that is to say, the file is read into ed's buffer so
	  that it can be edited.  ed operates on a copy of the file it
	  is editing; changes made to the copy have no effect on the
	  file until a w (write) command is given.  The copy of the
	  text being edited resides in a temporary file called the
	  buffer.  There is only one buffer.

	  red is a restricted version of ed(C).	 It will only allow
	  editing of files in the current directory.  It prohibits
	  executing sh(C) commands via the ! command. red displays an
	  error message on any attempt to bypass these restrictions.

	  In general, red does not allow commands like

	       !date

	  or

	       !sh

	  Furthermore, red will not allow pathnames in its command
	  line.	  For example, the command:

	       red /etc/passwd

	  when the current directory is not /etc causes an error.

     Options
	  The options to ed are:

	  -    Suppresses the printing of character counts by the e,
	       r, and w commands, of diagnostics from e and q
	       commands, and the ! prompt after a !shell command.

	  -p   Allows the user to specify a prompt string.

	  ed supports formatting capability.  After including a format
	  specification as the first line of file and invoking ed with
	  your terminal in stty -tabs or stty tab3 mode (see stty(C)),
	  the specified tab stops will automatically be used when
	  scanning file.  For example, if the first line of a file

     Page 1					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  contained:

	       <:t5,10,15 s72:>

	  tab stops would be set at columns 5, 10, and 15, and a
	  maximum line length of 72 would be imposed.  NOTE: While
	  inputing text, tab characters are expanded to every eighth
	  column as the default.

	  Commands to ed have a simple and regular structure: zero,
	  one, or two addresses followed by a single-character
	  command, possibly followed by parameters to that command.
	  These addresses specify one or more lines in the buffer.
	  Every command that requires addresses has default addresses,
	  so that the addresses can very often be omitted.

	  In general, only one command may appear on a line.  Certain
	  commands allow the input of text.  This text is placed in
	  the appropriate place in the buffer.	While ed is accepting
	  text, it is said to be in input mode.	 In this mode, no
	  commands are recognized; all input is merely collected.
	  Input mode is left by entering a period (.)  alone at the
	  beginning of a line.

	  ed supports a limited form of regular expression notation;
	  regular expressions are used in addresses to specify lines
	  and in some commands (e.g., s) to specify portions of a line
	  that are to be substituted.  A regular expression specifies
	  a set of character strings.  A member of this set of strings
	  is said to be matched by the regular expression.  The
	  regular expressions allowed by ed are constructed as
	  follows:

	  The following one-character regular expressions match a
	  single character:

	  1.1	 An ordinary character (not one of those discussed in
		 1.2 below) is a one-character regular expression that
		 matches itself.

	  1.2	 A backslash (\) followed by any special character is
		 a one-character regular expression that matches the
		 special character itself.  The special characters
		 are:

		 a.    ., *, [, and \ (dot, star, left square bracket,
		       and backslash, respectively), which are
		       otherwise special, except when they appear
		       within square brackets ([]); see 1.4 below).

		 b.    ^ (caret), which is special at the beginning of
		       an entire regular expression (see 3.1 and 3.2

     Page 2					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

		       below), or when it immediately follows the left
		       of a pair of square brackets ([]) (see 1.4
		       below).

		 c.    $ (dollar sign), which is special at the end of
		       an entire regular expression (see 3.2 below).

		 d.    The character used to bound (i.e., delimit) an
		       entire regular expression, which is special for
		       that regular expression (for example, see how
		       slash (/) is used in the g command below).

	  1.3	 A period (.) is a one-character regular expression
		 that matches any character except newline.

	  1.4	 A nonempty string of characters enclosed in square
		 brackets ([]) is a one-character regular expression
		 that matches any one character in that string.	 If,
		 however, the first character of the string is a caret
		 (^), the one-character regular expression matches any
		 character except newline and the remaining characters
		 in the string.	 The star (*) also has this special
		 meaning only if it occurs first in the string.	 The
		 dash (-) may be used to indicate a range of
		 consecutive ASCII characters; for example, [0-9] is
		 equivalent to [0123456789].  The dash (-) loses this
		 special meaning if it occurs first (after an initial
		 caret (^), if any) or last in the string.  The right
		 square bracket (]) does not terminate such a string
		 when it is the first character within it (after an
		 initial caret (^), if any); e.g., []a-f] matches
		 either a right square bracket (]) or one of the
		 letters ``a'' through ``f'' inclusive.	 Dot, star,
		 left bracket, and the backslash lose their special
		 meaning within such a string of characters.

	  Ranges of characters (characters separated by -) are treated
	  according to the current locale's collation sequence (see
	  locale(M)).  Therefore, if the collation sequence in use is
	  A, a, B, b, C, c, then the expression [a-d] is equivalent to
	  the expression [aBbCcDd].

	  To specify a collation item within a class, the item must be
	  enclosed between [. and .].  Two character to one collation
	  item mappings must be specified this way.  For example, if
	  the current collation rules specify that the characters
	  ``Ch'' map to one character for collation purposes (as in
	  Spanish), then this collation item would be specified as
	  [.Ch.].

	  To specify a group of collation items, which are classified
	  as equal unless all other collation items in the string also

     Page 3					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  match, in which case a secondary ``weight'' becomes
	  significant, a single member of that group must be enclosed
	  between [= and =].  For example, if the characters A and a
	  are in the same group then the class expressions [[=a=]b],
	  [[=A=]b] and [Aab] are all equivalent.

	  The ctype classes can also be specified within regular
	  expressions.	These are enclosed between [: and :].  The
	  possible ctype classes are:

	  [:alpha:]   Matches alphabetic characters
	  [:upper:]   Matches upper case characters
	  [:lower:]   Matches lower case characters
	  [:digit:]   Matches digits
	  [:alnum:]   Matches alphanumeric characters
	  [:space:]   Matches white space
	  [:print:]   Matches printable characters
	  [:punct:]   Matches punctuation marks
	  [:graph:]   Matches graphical characters
	  [:cntrl:]   Matches control characters

	  The following rules may be used to construct regular
	  expressions from one-character regular expressions:

	  2.1  A one-character regular expression followed by a star
	       (*) is a regular expression that matches zero or more
	       occurrences of the one-character regular expression.
	       If there is any choice, the longest leftmost string
	       that permits a match is chosen.

	  2.2  A one-character regular expression followed by \{m\},
	       \{m,\}, or \{m,n\} is a regular expression that matches
	       a range of occurrences of the one-character regular
	       expression.  The values of m and n must be nonnegative
	       integers less than 255; \{m\} matches exactly m
	       occurrences; \{m,\} matches at least m occurrences;
	       \{m,n\} matches any number of occurrences between m and
	       n, inclusive.  Whenever a choice exists, the regular
	       expression matches as many occurrences as possible.

	  2.3  The concatenation of regular expressions is a regular
	       expression that matches the concatenation of the
	       strings matched by each component of the regular
	       expression.

	  2.4  A regular expression enclosed between the character
	       sequences \( and \) is a regular expression that
	       matches whatever the unadorned regular expression
	       matches.	 See 2.5 below for a discussion of why this is
	       useful.

	  2.5  The expression \n matches the same string of characters

     Page 4					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	       as was matched by an expression enclosed between \( and
	       \) earlier in the same regular expression.  Here n is a
	       digit; the subexpression specified is that beginning
	       with the n-th occurrence of \( counting from the left.
	       For example, the expression ^\(.*\)\1$ matches a line
	       consisting of two repeated appearances of the same
	       string.

	  Finally, an entire regular expression may be constrained to
	  match only an initial segment or final segment of a line (or
	  both):

	  3.1	 A caret (^) at the beginning of an entire regular
		 expression constrains that regular expression to
		 match an initial segment of a line.

	  3.2	 A dollar sign ($) at the end of an entire regular
		 expression constrains that regular expression to
		 match a final segment of a line.  The construction
		 ^entire regular expression$ constrains the entire
		 regular expression to match the entire line.

	  The null regular expression (e.g., //) is equivalent to the
	  last regular expression encountered.

	  To understand addressing in ed , it is necessary to know
	  that there is a current line at all times. Generally
	  speaking, the current line is the last line affected by a
	  command; the exact effect on the current line is discussed
	  under the description of each command.  Addresses are
	  constructed as follows:

	   1.	 The character . addresses the current line.

	   2.	 The character $ addresses the last line of the
		 buffer.

	   3.	 A decimal number n addresses the n-th line of the
		 buffer.

	   4.	 'x addresses the line marked with the mark name
		 character x, which must be a lowercase letter.	 Lines
		 are marked with the k command described below.

	   5.	 A regular expression enclosed by slashes (/)
		 addresses the first line found by searching forward
		 from the line following the current line toward the
		 end of the buffer and stopping at the first line
		 containing a string matching the regular expression.
		 If necessary, the search wraps around to the
		 beginning of the buffer and continues up to and
		 including the current line, so that the entire buffer

     Page 5					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

		 is searched.

	   6.	 A regular expression enclosed in question marks (?)
		 addresses the first line found by searching backward
		 from the line preceding the current line toward the
		 beginning of the buffer and stopping at the first
		 line containing a string matching the regular
		 expression.  If necessary, the search wraps around to
		 the end of the buffer and continues up to and
		 including the current line.  See also the last
		 paragraph before Files below.

	   7.	 An address followed by a plus sign (+) or a minus
		 sign (-) followed by a decimal number specifies that
		 address plus or minus the indicated number of lines.
		 The plus sign may be omitted.

	   8.	 If an address begins with + or -, the addition or
		 subtraction is taken with respect to the current
		 line; e.g, -5 is understood to mean .-5.

	   9.	 If an address ends with + or -, then 1 is added to or
		 subtracted from the address, respectively.  As a
		 consequence of this rule and of rule 8 immediately
		 above, the address - refers to the line preceding the
		 current line.	(To maintain compatibility with
		 earlier versions of the editor, the character ^ in
		 addresses is entirely equivalent to -.)  Moreover,
		 trailing + and - characters have a cumulative effect,
		 so -- refers to the current line less 2.

	  10.	 For convenience, a comma (,) stands for the address
		 pair 1,$, while a semicolon (;) stands for the pair
		 .,$.

	  Commands may require zero, one, or two addresses.  Commands
	  that require no addresses regard the presence of an address
	  as an error.	Commands that accept one or two addresses
	  assume default addresses when an insufficient number of
	  addresses is given; if more addresses are given than such a
	  command requires, the last address(es) are used.

	  Typically, addresses are separated from each other by a
	  comma (,).  They may also be separated by a semicolon (;).
	  In the latter case, the current line (.) is set to the first
	  address, and only then is the second address calculated.
	  This feature can be used to determine the starting line for
	  forward and backward searches (see rules 5 and 6 above).
	  The second address of any two-address sequence must
	  correspond to a line that follows, in the buffer, the line
	  corresponding to the first address.

     Page 6					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  In the following list of ed commands, the default addresses
	  are shown in parentheses.  The parentheses are not part of
	  the address.

	  It is generally illegal for more than one command to appear
	  on a line.  However, any command (except e, f, r, or w) may
	  be suffixed by p or by l, in which case the current line is
	  either printed or listed, respectively, as discussed below
	  under the p and l commands.

	  (.)a
	  <text>
	  .
	       The append command reads the given text and appends it
	       after the addressed line; dot is left at the address of
	       the last inserted line, or, if there were no inserted
	       lines, at the addressed line.  Address 0 is legal for
	       this command: it causes the ``appended'' text to be
	       placed at the beginning of the buffer.

	  (.)c
	  <text>
	  .
	       The change command deletes the addressed lines, then
	       accepts input text that replaces these lines; dot is
	       left at the address of the last line input, or, if
	       there were none, at the first line that was not
	       deleted.

	  (.,.)d
	       The delete command deletes the addressed lines from the
	       buffer.	The line after the last line deleted becomes
	       the current line; if the lines deleted were originally
	       at the end of the buffer, the new last line becomes the
	       current line.

	  e file
	       The edit command causes the entire contents of the
	       buffer to be deleted, and then the named file to be
	       read in; dot is set to the last line of the buffer.  If
	       no filename is given, the currently remembered
	       filename, if any, is used (see the f command).  The
	       number of characters read is typed.  file is remembered
	       for possible use as a default filename in subsequent e,
	       r, and w commands.  If file begins with an exclamation
	       (!), the rest of the line is taken to be a shell
	       command. The output of this command is read for the e
	       and r commands.	For the w command, the file is used as
	       the standard input for the specified command.  Such a
	       shell command is not remembered as the current
	       filename.

     Page 7					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  E file
	       The Edit command is like e, except the editor does not
	       check to see if any changes have been made to the
	       buffer since the last w command.

	  f file
	       If file is given, the filename command changes the
	       currently remembered filename to file; otherwise, it
	       prints the currently remembered filename.

	  (1,$)g/regular-expression/command list
	       In the global command, the first step is to mark every
	       line that matches the given regular expression.	Then,
	       for every such line, the given command list is executed
	       with . initially set to that line.  A single command or
	       the first of a list of commands appears on the same
	       line as the global command.  All lines of a multiline
	       list except the last line must be ended with a \; a, i,
	       and c commands and associated input are permitted; the
	       . terminating input mode may be omitted if it would be
	       the last line of the command list.  An empty command
	       list is equivalent to the p command.  The g, G, v, and
	       V commands are not permitted in the command list.  See
	       also Notes and the last paragraph before Files below.

	  (1,$)G/regular-expression/
	       In the interactive Global command, the first step is to
	       mark every line that matches the given regular
	       expression.  Then, for every such line, that line is
	       printed, dot (.)	 is changed to that line, and any one
	       command (other than one of the a, c, i, g, G, v, and V
	       commands) may be input and is executed.	After the
	       execution of that command, the next marked line is
	       printed, and so on.  A newline acts as a null command.
	       An ampersand (&) causes the re-execution of the most
	       recent command executed within the current invocation
	       of G.  Note that the commands input as part of the
	       execution of the G command may address and affect any
	       lines in the buffer.  The G command can be terminated
	       by entering an INTERRUPT (pressing the DEL key).

	  h
	       The help command gives a short error message that
	       explains the reason for the most recent ? diagnostic.

	  H
	       The Help command causes ed to enter a mode in which
	       error messages are printed for all subsequent ?
	       diagnostics.  It will also explain the previous
	       diagnostic if there was one.  The H command alternately
	       turns this mode on and off. It is initially off.

     Page 8					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  (.)i
	  <text>
	  .
	       The insert command inserts the given text before the
	       addressed line; dot is left at the address of the last
	       inserted line, or if there were no inserted lines, at
	       the addressed line.  This command differs from the a
	       command only in the placement of the input text.
	       Address 0 is not legal for this command.

	  (.,.+1)j
	       The join command joins contiguous lines by removing the
	       appropriate newline characters.	If only one address is
	       given, this command does nothing.

	  (.)kx
	       The mark command marks the addressed line with name x,
	       which must be a lowercase letter.  The address 'x then
	       addresses this line.  Dot is unchanged.

	  (.,.)l
	       The list command prints the addressed lines in an
	       unambiguous way:	 a few nonprinting characters (e.g.,
	       tab, backspace) are represented by mnemonic
	       overstrikes, all other nonprinting characters are
	       printed in octal, and long lines are folded.  An l
	       command may be appended to any command other than e, f,
	       r, or w.

	  (.,.)ma
	       The move command repositions the addressed line(s)
	       after the line addressed by a.  Address 0 is legal for
	       a and causes the addressed line(s) to be moved to the
	       beginning of the file.  It is an error if address a
	       falls within the range of moved lines.  Dot is left at
	       the last line moved.

	  (.,.)n
	       The number command prints the addressed lines,
	       preceding each line by its line number and a tab
	       character.  Dot is left at the last line printed.  The
	       n command may be appended to any command other than e,
	       f, r, or w.

	  (.,.)p
	       The print command prints the addressed lines.  Dot is
	       left at the last line printed.  The p command may be
	       appended to any command other than e, f, r, or w; for
	       example, dp deletes the current line and prints the new
	       current line.

	  P

     Page 9					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	       The editor will prompt with a * for all subsequent
	       commands.  The P command alternately turns this mode on
	       and off. It is initially off.

	  q
	       The quit command causes ed to exit.  No automatic write
	       of a file is done.

	  Q
	       The editor exits without checking if changes have been
	       made in the buffer since the last w command.

	  ($)r file
	       The read command reads in the given file after the
	       addressed line.	If no filename is given, the currently
	       remembered filename, if any, is used (see e and f
	       commands).  The currently remembered filename is not
	       changed unless file is the very first filename
	       mentioned since ed was invoked.	Address 0 is legal for
	       r and causes the file to be read at the beginning of
	       the buffer.  If the read is successful, the number of
	       characters read is typed.  Dot is set to the address of
	       the last line read in.  If file begins with !, the rest
	       of the line is taken to be a shell command whose output
	       is to be read.  Such a shell command is not remembered
	       as the current filename.

	  (.,.)s/regular-expression/replacement/ or

	  (.,.)s/regular-expression/replacement/g or

	  (.,.)s/regular-expression/replacement/n n=1-512

	       The substitute command searches each addressed line for
	       an occurrence of the specified regular expression.  In
	       each line in which a match is found, all nonoverlapped
	       matched strings are replaced by replacement if the
	       global replacement indicator g appears after the
	       command.	 If the global indicator does not appear, only
	       the first occurrence of the matched string is replaced.
	       It is an error for the substitution to fail on all
	       addressed lines.	 Any character other than space or
	       newline may be used instead of / to delimit regular-
	       expression and replacement.  Dot is left at the address
	       of the last line on which a substitution occurred.

	       The n character represents any number between one and
	       512.  This number indicates the instance of the pattern
	       to be replaced on each addressed line.

	       An ampersand (&) appearing in replacement is replaced
	       by the string matching the regular-expression on the

     Page 10					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	       current line.  The special meaning of the ampersand in
	       this context may be suppressed by preceding it with a
	       backslash.  The characters \n, where n is a digit, are
	       replaced by the text matched by the n-th regular
	       subexpression of the specified regular expression
	       enclosed between \( and \).  When nested parenthesized
	       subexpressions are present, n is determined by counting
	       occurrences of \( starting from the left.  When the
	       character % is the only character in replacement, the
	       replacement used in the most recent substitute command
	       is used as the replacement in the current substitute
	       command.	 The % loses its special meaning when it is in
	       a replacement string of more than one character or when
	       it is preceded by a \.

	       A line may be split by substituting a newline character
	       into it.	 The newline in the replacement must be
	       escaped by preceding it with a  \.  Such a substitution
	       cannot be done as part of a g or v command list.

	  (.,.)ta
	       This command acts just like the m command, except that
	       a copy of the addressed lines is placed after address a
	       (which may be 0).  Dot is left at the address of the
	       last line of the copy.

	  u
	       The undo command nullifies the effect of the most
	       recent command that modified anything in the buffer,
	       namely the most recent a, c, d, g, i, j, m, r, s, t, v,
	       G, or V command.

	  (1,$)v/regular-expression/command list
	       This command is the same as the global command g except
	       that the command list is executed with dot initially
	       set to every line that does not match the regular
	       expression.

	  (1,$)V/regular-expression/
	       This command is the same as the interactive global
	       command G except that the lines that are marked during
	       the first step are those that do not match the regular
	       expression.

	  (1,$)w file
	       The write command writes the addressed lines into the
	       named file.  If the file does not exist, it is created
	       with mode 666 (readable and writeable by everyone),
	       unless the umask setting (see sh(C)) dictates
	       otherwise.  The currently remembered filename is not
	       changed unless file is the very first filename
	       mentioned since ed was invoked.	If no filename is

     Page 11					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	       given, the currently remembered filename, if any, is
	       used (see e and f commands), and dot remains.  If the
	       command is successful, the number of characters written
	       is displayed.  If file begins with an exclamation (!),
	       the rest of the line is taken to be a shell command to
	       which the addressed lines are supplied as the standard
	       input.  Such a shell command is not remembered as the
	       current filename.

	  ($)=
	       The line number of the addressed line is typed.	Dot is
	       unchanged by this command.

	  !shell command
	       The remainder of the line after the ! is sent to the
	       shell (sh(C)) to be interpreted as a command.  Within
	       the text of that command, the unescaped character % is
	       replaced with the remembered filename.  If a ! appears
	       as the first character of the shell command, it is
	       replaced with the text of the previous shell command.
	       Thus, !! will repeat the last shell command.  If any
	       expansion is performed, the expanded line is echoed.
	       Dot is unchanged.

	  (.+1)
	       An address alone on a line causes the addressed line to
	       be printed.  A RETURN alone on a line is equivalent to
	       .+1p. This is useful for stepping forward through the
	       editing buffer a line at a time.

	  If an interrupt signal (ASCII DEL or BREAK) is sent, ed
	  prints a question mark (?)  and returns to its command
	  level.

	  ed has size limitations:  512 characters per line, 256
	  characters per global command list, 64 characters per
	  filename, and 128K characters in the buffer.	The limit on
	  the number of lines depends on the amount of user memory.

	  When reading a file, ed discards ASCII NUL characters and
	  all characters after the last newline.  Files (e.g., a.out)
	  that contain characters not in the ASCII set (bit 8 on)
	  cannot be edited by ed.

	  If the closing delimiter of a regular expression or of a
	  replacement string (e.g., /) would be the last character
	  before a newline, that delimiter may be omitted, in which
	  case the addressed line is printed.  Thus, the following

     Page 12					      (printed 2/7/91)

     ED(C)		      XENIX System V			 ED(C)

	  pairs of commands are equivalent:
	       s/s1/s2	 s/s1/s2/p
	       g/s1	 g/s1/p
	       ?s1	 ?s1?

     Files
	  /tmp/e#   Temporary; # is the process number

	  ed.hup    Work is saved here if the terminal is hung up

     See Also
	  coltbl(M), grep(C), locale(M), sed(C), sh(C), stty(C),
	  regexp(S)

     Diagnostics
	  ?	 Command errors
	  ? file An inaccessible file

	  Use the help and Help commands for detailed explanations.

	  If changes have been made in the buffer since the last w
	  command that wrote the entire buffer, ed warns the user if
	  an attempt is made to destroy ed's buffer via the e or q
	  commands by printing ? and allowing you to continue editing.
	  A second e or q command at this point will take effect.  The
	  dash (-) command-line option inhibits this feature.

     Notes
	  An exclamation (!) command cannot be subject to a g or a v
	  command.

	  The ! command and the ! escape from the e, r, and w commands
	  cannot be used if the the editor is invoked from a
	  restricted shell (see sh(C)).

	  The sequence \n in a regular expression does not match any
	  character.

	  The l command mishandles DEL.

	  Because 0 is an illegal address for the w command, it is not
	  possible to create an empty file with ed.

	  If the editor input is coming from a command file (i.e., ed
	  file < ed-cmd-file), the editor will exit at the first
	  failure of a command in the command file.

     Page 13					      (printed 2/7/91)

[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Xenix

List of man pages available for Xenix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net