X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=html%2Fprogram.html;h=9b6262ec28dcc9575fa5c4f9c7d4d19f170c215e;hb=refs%2Fheads%2Fnewdisc;hp=6217a19832d68e2e5b0a7afc4de70105ce9e8850;hpb=69003f56e5249357c746999c2feec5f44c258472;p=spider.git diff --git a/html/program.html b/html/program.html index 6217a198..9b6262ec 100644 --- a/html/program.html +++ b/html/program.html @@ -2,10 +2,12 @@ Programming New Commands - + + + @@ -20,7 +22,7 @@

-Last modified: Wed Dec 23 18:27:06 GMT 1998 +Last modified: Mon Dec 28 23:13:21 GMT 1998

Introduction

@@ -88,6 +90,10 @@ Last modified: Wed Dec 23 18:27:06 GMT 1998 your modifications, otherwise it will continue to use the old ones in your local directories! +

If you want to add facilities to the daemon itself or do some + fancy local spot routing, you might like to try looking at Local customisations. +

Hints, Tips and Exhortations

    @@ -128,7 +134,7 @@ Last modified: Wed Dec 23 18:27:06 GMT 1998 and are subroutines derived from the DXChannel class. They effectively the following declaration :-

    -  sub Emb_($self, $args)
    +  sub Emb_<cmdname>($self, $args)
       {
          ...
          your code here
    @@ -151,7 +157,7 @@ Last modified: Wed Dec 23 18:27:06 GMT 1998
       my @out;
     
       # check privileges
    -  return (1, $self->msg('e5')) if $self->priv < 5;
    +  return (1, $self->msg('e5')) if $self->priv < 5;
     
       ....
       ....
    @@ -222,11 +228,11 @@ my @out;
     my $user;
     my $ref;
       
    -return (1, $self->msg('e5')) if $self->priv < 9;
    +return (1, $self->msg('e5')) if $self->priv < 9;
       
     foreach $call (@args) {
         $call = uc $call;
    -    if ($ref = DXUser->get_current($call)) {
    +    if ($ref = DXUser::get_current($call)) {
             $ref->passwd($pass);
       	    $ref->put();
       		push @out, $self->msg("password", $call);
    @@ -297,11 +303,11 @@ return (1, @out)
     
     		

  1. It is important that you remember when you have tie hashes using MLDBM et al. If you do a - DXUser->get($call) you will get a different (older) + DXUser::get($call) you will get a different (older) thing than the one in $self->user. This is almost certainly NOT what you want if want to modify a user that is currently connected. Either use $self->user or, if - you want another user, use DXUser->get_current($call) + you want another user, use DXUser::get_current($call)

  2. If you want to debug something, start the cluster.pl up thus:-
    @@ -327,7 +333,7 @@ return (1, @out)
     		mean that this is a prompt and will not have a \r or \n appended to
     		it in the client for telnet sessions (only).
     
    -		

  3. help is kept in /spider/cmd/Command_.hlp files. +

  4. help is kept in /spider/cmd/Command_<lang>.hlp files. The format of the help files should be self explanatory, but they are explained further in the files themselves. @@ -336,6 +342,100 @@ return (1, @out)
+

Editting the source

+ + I suppose this has to be discussed but although I may have confused some of you, I + insist on the following formatting conventions:- + +
    +

  1. All white space to left of a line shall be tabs. +

  2. A tab shall be 4 characters (unless it is 8) (I use 4). Anything you see + with multiples of 2 spaces will be reformatted next time I edit it. +

  3. You WILLuse the one true (documented) bracing method as + documented in K & R and all the 'official' perl books. +
+ +

I have been experimenting with editors and tabwidths and have settled on + XEmacs. You can get a copy from the + RedHat Contrib ftp site for your version + of Redhat. I use the following parameters in my .emacs file. + +

+  ;; End of Options Menu Settings
+  (custom-set-variables
+   '(cperl-electric-parens t)
+   '(cperl-auto-newline t)
+   '(cperl-electric-linefeed t)
+   '(cperl-hairy t)
+   '(tab-width 4)
+   '(cperl-indent-level 4)
+   '(cperl-brace-offset 0)
+   '(cperl-continued-brace-offset -4)
+   '(cperl-label-offset -4)
+   '(cperl-merge-trailing-else nil)
+   '(cperl-continued-statement-offset 4)
+  )
+	
+ + I also have all the fancy colouring on (don't know what sets that) but this is + what I have in .xemacs-options file:- + +
+  ;; -*- Mode: Emacs-Lisp -*-
+
+  (setq options-file-xemacs-version '(20 4))
+    (setq-default case-fold-search t)
+    (setq-default overwrite-mode nil)
+      (setq-default case-fold-search t)
+    (setq-default case-replace t)
+      (setq-default zmacs-regions t)
+    (setq-default mouse-yank-at-point t)
+    (setq-default require-final-newline t)
+    (setq-default next-line-add-newlines nil)
+    (setq-default teach-extended-commands-p t)
+    (setq-default teach-extended-commands-timeout 4)
+    (setq-default debug-on-error nil)
+    (setq-default debug-on-quit nil)
+    (setq-default lpr-switches nil)
+    (setq-default ps-print-color-p t)
+    (setq-default ps-paper-type 'letter)
+    (setq-default get-frame-for-buffer-default-instance-limit nil)
+    (setq-default temp-buffer-show-function 'show-temp-buffer-in-current-frame)
+      (setq-default font-lock-auto-fontify t)
+    (setq-default font-lock-use-fonts nil)
+    (setq-default font-lock-use-colors '(color))
+    (setq-default font-lock-maximum-decoration t)
+    (setq-default font-lock-maximum-size 256000)
+    (setq-default font-lock-mode-enable-list nil)
+    (setq-default font-lock-mode-disable-list nil)
+    (require 'font-lock)
+    (remove-hook 'font-lock-mode-hook 'turn-on-fast-lock)
+    (remove-hook 'font-lock-mode-hook 'turn-on-lazy-shot)
+    (require 'paren)
+    (paren-set-mode 'blink-paren)
+    (if (featurep 'scrollbar) (progn (add-spec-list-to-specifier scrollbar-width 'nil) (add-spe$
+    (add-spec-list-to-specifier modeline-shadow-thickness '((global (nil . 2))))
+    (setq-default truncate-lines nil)
+    (setq-default bar-cursor nil)   
+      (setq-default buffers-menu-max-size 25)
+    (setq-default complex-buffers-menu-p nil)
+    (setq-default buffers-menu-sort-function 'sort-buffers-menu-by-mode-then-alphabetically)
+    (setq-default buffers-menu-grouping-function 'group-buffers-menu-by-mode-then-alphabeticall$
+    (setq-default buffers-menu-submenus-for-groups-p nil)
+    (setq-default font-menu-ignore-scaled-fonts t)
+    (setq-default font-menu-this-frame-only-p nil)
+    (if (featurep 'toolbar) (progn (set-default-toolbar-position 'top) (add-spec-list-to-specif$
+    (setq-default mouse-avoidance-mode nil)
+    (setq-default browse-url-browser-function 'browse-url-w3)
+    
+ + I also use cperl-mode.el.4.19 which I got from + CPAN for the auto formatting of the perl as I write it. Some + of its habits are rather peculiar, but you can either switch them off or learn to live with them + as I did. I installed my copy in /usr/lib/xemacs/site-lisp. + +

XEmacs runs perfectly happily on the console as well as under X. +