@_
@iYou can view this file later by typing @!i@f@b/new.

@f@C1@C6Transvision Detrication for Quarks@C1
@f    @C1@C2http://spx.linuxatwork.at@C1
@C6@f_______________________________________________
@l@C6- Sula Primerix II - 0.09.5 - @!C@m (2Sep99)
@C6@f-----------------------------------------------
@i@C1There are indeed a few things worth noting,@!C@i said Bozzo the Clown, as he pulled the dazed and slightly annoyed wabbit out a gray hat.
@C5*@!C A user popup menu (See doc/@C6Skript@C1X@!C.html) has been added to the console too. As usual, use the procedure @C2gs-submit-new@!C to add items. Right mouse button haha.
@C5*@!C The format of server files (see @f@bconf/sula_servers@^) has changed.
  Networks and server groups can be specified directly therein, e.g.:
@i@.         <Undernet>
@i@.         server1:port::.....
@i@.         server2
@i@.         ...
@i@.         </Undernet>
@C5*@!C Some scripts won't work with Guile 1.3.2+. Bad define placement or something. See updated versions in @b@fscripts/.
@C5*@!C Yuu may want some icons for the window manager. Some are included in the icons/ directory.
@C5*@!C The following X resource entry names have been removed:
  sula.Libdir, Sula.gtkrcFile. Use command line options instead. Use   @C1-help@!C option for info.
@C5*@!C @C1DCC@C2 FORWARD@!C should now be used instead of the commands @C1FWDCR@!C and @C1FWDCR@!C.
@C5*@!C The @C1SET@!C variable rm_on_fwd has been removed.
@C5*@!C A new procedure @C2dcc:forwarded?@!C has been added: It takes a DCC item (see procedure @C2gs-dcc-list@!C) and determines if it has been forwarded.
@C5*@!C The script @fscripts/connect-and-join.sc@!fm has been moved into @fsula-boot.
@C5*@!C The title of textboxes can be set on creation using @bSX_TITLE.

@C6@f_______________________________________________
@l@C6- Sula Primerix II - 0.09.4 - @!C@m (12Aug99)
@C6@f-----------------------------------------------
@C5I.@C2@m This & That
  @C1+@!C window title: the number displayed is the window number,
    and no longer the window number +1.
  @C1+@!C added a script to work with @iUnrealIRCD
  @C1+@!C moved @fsample_scripts/oops.scm@^ to @fscripts/
  @C1+@!C alias listing no longer interpretes '@@' in alias definitions
  @C1+@!C replaced O(n) channel/user operations with avl trees.
    Was a shame on very large channels.
  @C1+@!C new procedure chat:id

@C5II.@C2@m Changes to @C6Skript@C1X@!C
- added type @bSX_CLIST@^ - multi-columned list. See See @bdocs/skript.html@^.
- added type @bSX_BUTTON@^:
    @bSX_BUTTON@^ @ilabel proc user_data -1
- added types @bSX_OK@^ and @bSX_CANCEL@^. These set the label for the
  @C1OK@!C and @C1cancel@!C buttons, respectively. Example:
  SX_CANCEL "Done" SX_OK "Go!"
  
- The TextBox (@C2*@C5this@C2*@!C is an example of a textbox) has been totally
  overworked. See @b@idocs/skript.html.

@C5III.@C2@m Removed
- procedure @isx-text-valid?

@C6@f_______________________________________________
@l@C6- Sula Primerix II - 0.09.3 - @!C@m (6Aug99)
@C6@f-----------------------------------------------
@C5I.@C2@m Course Line
    - trill/strings: sample module @D15libutil.so
    - sample_scripts:
      + sample @D15URL grabber
      + type and go: fast autocorrection for those typos and abbrevs: @D15sara
      + sample hooks on INPUT and RAW_NON_NUMERIC. See @fscripts/afuck.scm.
@C5II.@C2@m Removed
  - _DDO_WARRANTY for good. Also removed associated commands.
    No more copyright and license info.  
  - SET variable match_server_alias
  - -nick option from comamnd /Send
  - all redundant DCC related commands fom the _sula_ days:
    cclose, fclose, achat, get, lfrr,...., rfrr, rfrs,... the whole lot
@C5III.@C2@m Rejuvenated
  - @D15DCC
    including fixes to DCC RESUME, RENAME, and REJECT.
    DCC LIST, GET, SEND, CLOSE now exist as such, and not just through
    convenience commands as was the case in _sula_.
  - @D15DCC more format strings:
    @f@C1o@!C fmt_dcc_chat_notify@!f when you receive a chat offer
    @f@C1o@!C fmt_dcc_file_notify@!f when a DCC chat requests comes in
    
    As usual, setting can be done via X resource files and via the SET
    command or via the procedure gs-set!.
    Defaults:

    @b*.Format.ChatNotify:@^@f [%H:%M] %i. Chat request from %n (%h) [%z %Z] 
    @bSula.Format.FileNotify:@^@f [%H:%M] %i. DCC GET [%f %j %k] from %n (%h) [%z %Z]
    
    @.%n, %h, %i, %z, and %Z are nick, user@host, DCC id, remote port and remote
    internet address (32 bit network number).
    %f, %j, and %k are filename, size and  cksum, respectively.
@C5IV.@C2@m Renamed
  - @bgs-window-dcc@^ to @bgs-window-chat
  - all @bdcc:XXX@^ renamed to @bchat:XXX@^:
      dcc:nick    ->  chat:nick
      dcc:window  ->  chat:window
      dcc:fd      ->  chat:fd
      dcc:IP      ->  chat:IP
      dcc:written ->  chat:written
      dcc:read    ->  chat:read
@C5V.@C2@m Genesys or genetic
  New procedures, largely untested:
  - @bchat:userhost@^@. : returns the userhost of the CHAT partner. Takes
    a DCC chat connection from a channel window (see @bgs-window-chat@^).
  - @bgs-execute0@^@. : shortcut for (@bgs-execute@^ -1 ....)
  - @bgs-modify-user-input
      Can only be called from within hooks on INPUT. Replaces what the user
      typed with something else so the parser sees just the new text.
  - @bgs-modify-irc-output
      Can only be called from within hooks on RAW_NON_NUMERIC. *Replaces*
      an IRC message as soon it comes in. Client then sees only the new text.
      Not really 'as soon as the message gets in', since RAW_IRC preceeds
      RAW_NON_NUMERIC.
  - @bgs-dcc-list
    Returns a list of all DCC items (all active and all pending DCC requests
    and connections). Also see @fsula-boot@^ for some description.
    The following procedures then take such items and return specific components:
  
    dcc:chat?, dcc:file?, dcc:active?, dcc:queued?, dcc:received?, dcc:sent?,
    dcc:id, dcc:nick, dcc:userhost,
    dcc:remote-addr, dcc:remote-IP, dcc:remote-port,
    dcc:starttime, dcc:bytes-sent, dcc:bytes-received, 
    dcc:file-name; dcc:file-size, dcc:file-checksum

    So,
    @f@s@.(let loop((All-DCCs (gs-dcc-list)))
    @f@s@.  (if(not(null? All-DCCs))
    @f@s@.    (let((one (car All-DCCs)))
    @f@s@.      (say "This one's a DCC " (if(dcc:chat? one) "chat" "File transfer"))
    @f@s@.      (if(and(dcc:chat? one)(dcc:active? one))
    @f@s@.        (say "You are talking to " (dcc:nick one) " who is from "
    @f@s@.        (dcc:remote-IP one) ". Email him/her at @$" (dcc:userhost one)
    @f@s@.        "@!$. Ack ja, you been  chatting for " (- (current-time) (dcc:starttime one))
    @f@s@.        " seconds!"))
    @f@s@.      (loop (cdr All-DCCs)))))
@C5VI.@C2@m 1984 (or: Permission to dissect)

  Normally, hook handlers get only a copy of the server or client message to
  work with. All modifications to the message are local to the hook.
  It is now possible for two hook types to globally *modify* the IRC or client
  message such that subsequent hooks and the user never see the original text.
  
  - @bHook type @D15RAW_NON_NUMERIC
    Is allowed to modify messages by calling the procedure
    gs-modify-irc-output. Other hooks and the client then never see the
    original IRC message and cant tell whether it's been modified or not.
    For fear of abuse, support for this tampering must be built into the
    client using -DMUTABLE_IRC at compile time. Also, at runtime, 'mutable_irc'
    must be SET on. An since RAW_NON_NUMERIC doesnt work on server numerics,
    numeric replies cannot be modified.

    Hooks of type RAW_NON_NUMERIC always use the original message.

    See the scripts scripts/afuck.scm for an example.
  
  - @bHook type @D15INPUT
    Can modify user input by calling the procedure gs-modify-user-input
    with the replacement text as argument.

  @C2Related flags (currenntly for RAW_NON_NUMEIRIC)
  @C1+@!C @bat runtime:@!b /set mutable_irc on|off|toggle
  @C1+@!C @bX resource entry:@!b *.mutable_irc: on|of
  @C1+@!C @bcommand line option:@!b -mutable_irc
@C5VII.@C2@m Corrected
  - @C1@f/USERHOST@!C @inick@!i -cmd ...@^ failed if @inick@!i contained '-'

@i@C5That's all folks.
