[Top] [Contents] [Index] [ ? ]

Freehoo!

This file documents the Freehoo! version 3.4.1. Freehoo is a console based GNU messenger for Yahoo! services powered by Guile and Readline.

1. Overview  These are features of Freehoo
2. Invoking  Command line arguments
3. Freehoo commands  List of Freehoo commands
4. Customizing freehoo  Customizing Freehoo
5. Tips and Tricks  Cool tips and tricks
Extension Developer Guide (Advanced)
6. Extension language  About an extension language
7. hello.scm extension  Writing a simple `hello gnu' extension
8. Variables  Freehoo exported Scheme variables
9. Procedures  Freehoo exported Scheme primitives
10. Hooks  Freehoo exported Scheme hooks
11. Learning further  Guile and Scheme URLs
Miscellaneous
12. Authors  Freehoo contributors
13. URLs  Mailing list, Downloads, CVS
14. Guidelines for submitting a patch  
15. Portability  Porting Freehoo
16. License  You may give out copies of Freehoo
Indices
Concept Index  
Command Index  
Procedure Index  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Overview

Freehoo is a freely available GNU messenger for Yahoo! services. It has many features, but to highlight,


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Invoking

Invoking Freehoo at command prompt is very simple. The following are the possible command-line arguments supported,


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Freehoo commands

3.1 Freehoo command - *  broadcast message to all buddies.
3.2 Freehoo command - <buddy>  send message to buddy.
3.3 Freehoo command - add  add buddy to buddy list.
3.4 Freehoo command - alias  create aliases to buddies.
3.5 Freehoo command - bell  enable/disable bell sound.
3.6 Freehoo command - broadcast  broadcast message to all buddies.
3.7 Freehoo command - buzz  BUZZ! a buddy.
3.8 Freehoo command - forward  forward messages to other buddies.
3.9 Freehoo command - cc  CC messages to other buddies.
3.10 Freehoo command - color-*  color themes support.
3.11 FreeHoo virtual conference commands  conference commands.
3.12 FreeHoo command - date  date command.
3.13 FreeHoo command - dbg-backtrace  scheme backtrace command.
3.14 FreeHoo command - dict  dict command.
3.15 FreeHoo command - eval  evaluate Scheme expression.
3.16 freehoo command - exec  alias to shell.
3.17 FreeHoo command - freehoo  proud-of-freehoo check.
3.18 freehoo command - help  help on Freehoo commands.
3.19 freehoo command - history  history command.
3.20 freehoo command - ignore*  ignore commands.
3.21 freehoo command - load  load and evaluate Scheme extensions.
3.22 freehoo command - ping  ping a buddy.
3.23 freehoo command - pipe  pipe the output of command to buddy.
3.24 freehoo command - quit  quit Freehoo.
3.25 freehoo command - refresh  refresh buddy list.
3.26 freehoo command - reject  reject BUDDY for adding you in his/her buddy list.
3.27 freehoo command - remove  remove buddy from buddy list.
3.28 freehoo command - restart  restart Freehoo.
3.29 freehoo command - send  send message to a buddy.
3.30 freehoo command - send-file  send a file to buddy.
3.31 freehoo command - shell  run or escape to shell.
3.32 freehoo command - status  change or view your status.
3.33 freehoo command - toggle  turn states ON/OFF.
3.34 freehoo virtual conference commands  virtual conference commands.
3.35 freehoo command - version  display Freehoo version information.
3.36 freehoo command - who  view buddy list.
3.37 freehoo command - xmessage  send X popup messages.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 Freehoo command - *

command: * message
Broadcast message to all buddies in the list. * is a virtual buddy in your buddy list which means everybody in the list.

 
~qp~> * Hello, World!
~qp~> * 
The message Hello, World! will be sent to all the buddies in your buddy list.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Freehoo command - <buddy>

command: <buddy> message
Send message to buddy. You can use TAB key to fill the buddy name automatically. On conflict press TAB twice to list the conflicting buddy names.

Example: A sample Freehoo session.

 
~qp~> /who

[Friends]
* markus [Busy Hacking]
  rms
* thomas [Idle]

[Team]
  balugi
* kvisu2000

~qp~> kvisu2000 Hi, How are you
kvisu2000 -> I'm fine
~qp~> balugi Hi, Are you there
Offline message sent to [balugi]


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 Freehoo command - add

command: /add buddy [group] [message]
Add a buddy to your buddy list. The following are the possible arguments for this command,

  1. buddy must be a Yahoo ID.

  2. Optional group under which the buddy is added. If the group does not exists it will be created newly. The default group is Friends.

  3. message is optional message.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 Freehoo command - alias

command: /alias name buddy1 [buddy2 buddy3 ...]
This command expands name to buddy1, buddy2 etc. /alias accepts name and at least one buddy as arguments. Aliases can be recursive.

Using Guile interface, you can add permanent aliases to startup file (see section 4.1 freehoo.scm) like,

 
(define alias '((helpdesk . (abindian balugi kvisu2000))
                (mridul . (gnuindian))
                (bala . (balugi))
                (nags . (nagappanal))
                (visu . (kvisu2000))))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5 Freehoo command - bell

command: /bell
This command switches bell sound between ON and OFF. By default `bell' is ON. A better interface to this command is /toggle (see /toggle bell)

Using Guile interface, you can disable bell during startup (see section 4.1 freehoo.scm) like,

 
(fh-bell!)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 Freehoo command - broadcast

command: /broadcast message
Broadcast message to all buddies in the list. This is same as * (see section 3.1 Freehoo command - *).

 
~qp~> /broadcast Hello, World!
~qp~> 
The message Hello, World! will be sent to all the buddies in your buddy list.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.7 Freehoo command - buzz

command: /buzz buddy
send a BUZZ! to buddy

 
~qp~> /buzz marcus
~qp~> 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.8 Freehoo command - forward

command: /forward from-buddy to-buddy1 [to-buddy2 to-buddy3 ...]
Messages received from from-buddy are forwarded to to-buddy1, to-buddy2 etc. /forward accepts name and at least one to-buddy as arguments.

Using Guile interface, you can add permanent forwards to startup file (see section 4.1 freehoo.scm) like,

 
(define forward '((gnubot . (ramyog_2000 nagappanal balugi))
                 (gopal_narayanan . (parag_mehta))))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.9 Freehoo command - cc

command: /cc buddy cc-buddy1 [cc-buddy2 cc-buddy3 ...]
Message sent to buddy is CC'ed to cc-buddy1, cc-buddy2 etc. /cc accepts buddy and at least one cc-buddy as arguments.

Using Guile interface, you can add permanent CCs to startup file (see section 4.1 freehoo.scm) like,

 
(define cc '((rms . (markus roland thomas))
             (gopal_narayanan . (parag_mehta))))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.10 Freehoo command - color-*

command: /color-on
Enables color themes mode.

Using Guile interface, you can permanently enable color themes in startup file (see section 4.1 freehoo.scm) like, (1)

 
(fh-enable-colors)

command: /color-off
Disables color themes mode.

Using Guile interface, you can permanently disable color themes in startup file (see section 4.1 freehoo.scm) like,

 
(fh-disable-colors)

command: /color-buddy buddy color
Displays all messages from buddy in the specified color. Possible color values are [red, blue, yellow, magenta, green, cyan, white].

Using Guile interface, you can permanently set color for a buddy message in startup file (see section 4.1 freehoo.scm) like,

 
(fh-set-buddy-color! "nirranjan" "green")
(fh-set-buddy-color! "rms" "red")
(fh-set-buddy-color! "marcus" "magenta")


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.11 FreeHoo virtual conference commands

This is standard yahoo conference this feature is virtual.

command: /conf-start room buddy1 [buddy2 buddy3 ...]
This command starts a conference with room name room with buddies buddy1, buddy2 etc.

command: /conf-add room buddy
This command add a buddy, to a existing conference room.

command: /conf-list
This command lists all the conference rooms associated with you currently.

command: /conf-end room
This command quits you from a conference rooms.

command: /conf-decline room
This command send your decline to a received invitation from a conference rooms.

command: /conf-send room
This command sends message to a conference room.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.12 FreeHoo command - date

command: /date [arguments]
This command displays the system date. Try `--help' for complete list of arguments.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.13 FreeHoo command - dbg-backtrace

command: /dbg-backtrace [arguments]
Produce scheme backtrace for the last error.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.14 FreeHoo command - dict

command: dict [arguments]
Ask to dictionary buddy. Try `--help' for complete list of arguments.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.15 FreeHoo command - eval

command: /eval exp
Evaluate exp, a list representing a Scheme expression. You have complete access to fh-guile internals, including Scheme extensions through this command.

Example: To send message to yourself

 
~qp~> /eval (fh-send-message (fh-get-default-login-id) "Hello GNU")
abindian -> Hello GNU
~qp~>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.16 freehoo command - exec

command: /exec [command] [args ...]
This command is an alias to shell.

Example:

 
   See /shell example


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.17 FreeHoo command - freehoo

command: /hoo buddy
This command checks if buddy is using FreeHoo.

Example: To check if `kvisu2000' is using FreeHoo,

 
~qp~> /freehoo kvisu2000
Yes [kvisu2000] is using FreeHoo
~qp~>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.18 freehoo command - help

command: /help [command]

You can always ask FreeHoo itself for information on its commands, using the command /help. If command is ignored then help on all the commands will be listed. @footnote {If you want talk to the author of freehoo, message gnubot buddy}


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.19 freehoo command - history

command: /history [buddy]

Display history page by page for BUDDY. With no arguments mentioned, this command displays all messages that belongs to current history session. This session is flushed upon every successful login.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.20 freehoo command - ignore*

command: /ignore buddy
Adds this BUDDY to Yahoo ignore list. This buddy will be removed from the buddy list and you will get no messages from him/her.

command: /unignore buddy
This command unignores buddy from the Yahoo ignore list.

command: /ignore-list
Displays the Yahoo ignore-list


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.21 freehoo command - load

command: /load scheme-file
/load command loads and evaluates Scheme extensions. scheme-file argument is a must.

Using Guile interface, you can load other Scheme files from startup file (see section 4.1 freehoo.scm) like,

 
(load "/home/gnu/hello.scm")

(see fh-load)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.22 freehoo command - ping

command: /ping buddy count
Send ping messages to a buddy, count times.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.23 freehoo command - pipe

command: /pipe buddy command [args ...]
Pipe the output of command to buddy.

command: pipe buddy command [args ...]
Pipe the output of command to buddy and also set current target buddy.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.24 freehoo command - quit

command: /quit
Logout and exit from freehoo.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.25 freehoo command - refresh

command: /refresh
This command refreshes the buddy list and the status information.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.26 freehoo command - reject

command: /reject
This command rejects the buddy for adding you in his/her buddy list and removes your name from his/her buddylist.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.27 freehoo command - remove

command: /remove buddy [message]
This command permanently removes the BUDDY from buddy list. message argument is optional.

Example:

 
~qp~> /remove balugi Poda Kuppa!


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.28 freehoo command - restart

command: /restart
This command restarts freehoo from inside freehoo.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.29 freehoo command - send

command: /send buddy message
This command sends message to the buddy.

Example:

 
~qp~> /send balugi Hi, how are you/
balugi -> Fine and you/


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.30 freehoo command - send-file

command: /send-file buddy filepath [message]
This command sends file to the buddy.

Example:

 
~qp~> /send-file balugi /etc/passwd my passwd file


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.31 freehoo command - shell

command: /shell [command] [args ...]
/shell command executes the specified command with its args. With no arguments, /shell escapes to shell. You can also chat with shell as if shell is your buddy. Just type shell without / prefix.

Example:

 
~qp~> /shell ls -lh /tmp
total 12k
drwxr-xr-x    3 root   root    4.0k Jan  1 00:53 emacs-terminfo
-rw-r--r--    1 root   root       1 Jan  1 05:04 emacsOdVut8
drwx------    2 root   root    4.0k Jan  1 00:13 xdvi7GIKqr
~qp~> /sh
press C-d to return to freehoo
$ rm -f /tmp/xdvi7GIKqr
C-d RET
~qp~> 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.32 freehoo command - status

command: /status [status-number] [custom-message]
Using /status command, you can view or set your buddy-status.

  1. status-number should denote one of the following.

     
      0:  I'm Available
      1:  Be Right Back
      2:  Busy
      3:  Not at Home
      4:  Not at my Desk
      5:  Not in the Office
      6:  On the Phone
      7:  On Vacation
      8:  Out to Lunch
      9:  Stepped Out
     12:  Invisible
     99:  [Custom message]
    999:  Idle
    

  2. Optionally you can mention custom-message, if status-number is 99.

  3. When no arguments are supplied, /status command displays your current status.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.33 freehoo command - toggle

command: /toggle state
This command toggles the following states.

3.33.0.1 AUTO-INSERT mode HOW-TO  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.33.0.1 AUTO-INSERT mode HOW-TO

AUTO-INSERT mode makes freehoo intelligent by automatically selecting the buddy name, every time when the user types the message. The following is a small HOW-TO on AUTO-INSERT mode,


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.34 freehoo virtual conference commands

Unlike standard yahoo conference this feature is virtual. Its actually a combination of cc and forward extensions. All the messages you send to a virtual buddy named cf are despatched to the conference members. Similarly the messages received from any of the conference members are forwarded back to other conference members.

command: /vconf-start buddy1 [buddy2 buddy3 ...]
This command starts a virtual conference with buddy1, buddy2 etc. On conference start /vconf-start disappears and /vconf-who, /vconf-end appears. /vconf-start accepts at least one buddy as its argument.

command: /vconf-who
This command lists all the conference members.

command: /vconf-end
This command ends the virtual conference. On conference end /vconf-who, /vconf-end disappears and /vconf-start appears.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.35 freehoo command - version

command: /version
This command displays version information.

Example:

 
~qp~> /version
freehoo (Freehoo) 3.1.0
Copyright (C) 2003, 2004 Freehoo Core Team.
This is free software; see the source for copying conditions.  There
is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
~qp~>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.36 freehoo command - who

command: /who
This command displays the buddy list as well as their current buddy status.

Example:

 
~qp~> /who

[Friends]
* markus [Busy Hacking]
  rms
* thomas [Idle]

[Team]
  balugi
* kvisu2000

~qp~> 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.37 freehoo command - xmessage

command: /xmessage buddy message
Send a X popup message to buddy.

Example:

 
~qp~> /xmessage bala Hi Bala, are you there


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. Customizing freehoo

Hoo can be customized to a great extent using Guile interface. User can himself customize or extend new features in freehoo using Scheme as extension language. Most of the features are already written in Scheme.

4.1 freehoo.scm  startup configuration file
4.2 init.scm  system wide initialization
4.3 Default Scheme extensions  default Scheme extensions

If you want to extend freehoo yourself, you can further explore Hoo Extension Developer Guide. (see section 6. Extension language)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 freehoo.scm

Hoo loads the startup options from `~/.freehoo/freehoo.scm'. Right from custom settings like username, password ... to complete Scheme programming can be done in this file.

 
;   this is comment
;;; sample freehoo.scm
;;; login-id is equal to my gnu/linux account
;; (fh-set-default-login-id! (getlogin))

;;; default login-id for yahoo service
(fh-set-default-login-id! "gnu_india")
;; (fh-set-default-login-id! "abindian")
;; (fh-set-default-login-id! "gnubot")

;;; default global password
(fh-set-default-password! "nopassword")
;; (fh-set-default-password! "pressenter")

;;; by default session mode is AUTO-INSERT. switch it to VANILLA mode
;; (fh-toggle! "session")

;;; by default display of status message is SHOW. switch it HIDE
;; (fh-toggle! "status")

;;; if login-id is "abindian"
(and (string=? (fh-get-default-login-id) "abindian")
     ;;; default password
     (fh-set-default-password! "pressenter")
     ;;; switch OFF bell
     (fh-toggle! "bell")
     ;;; show ALL buddies
     (fh-toggle! "who")
     ;;; login in invisible mode
     (fh-set-default-status! 12))

;;; if login-id is "gnubot"
(and (string=? (fh-get-default-login-id) "gnubot")
     ;;; default password
     (fh-set-default-password! "pressescape")
     ;;; switch OFF bell
     (fh-toggle! "bell"))

;;; create aliases
(define alias '((helpdesk . (abindian balugi kvisu2000))
                (mridul . (gnuindian))
                (bala . (balugi))
                (nags . (nagappanal))
                (visu . (kvisu2000))))

;;; create CC lists
(define cc '((rms . (markus roland thomas))
             (gopal_narayanan . (parag_mehta))))

;;; create forward lists
(define forward '((gnubot . (ramyog_2000 nagappanal balugi))
                 (gopal_narayanan . (parag_mehta))))

;;; my own dict words
(fh-dict-add-word! "acomplexneword")
(fh-dict-add-word! "myfriendsnick")

All entries in this `freehoo.scm' file are optional. How ever there is no limit in customizing or extending freehoo through Guile interface. Explaining all the possibilities are beyond the scope of this document.

(see section 6. Extension language)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 init.scm

All system wide policy settings and extensions are loaded through `i.scm'. By default you can find `init.scm' at `/usr/share/freehoo/extensions/'. To override this system wide `init.scm' file, copy it to `~/.freehoo/extensions/init.scm'. You must be aware of what you are doing, before you mess up anything here.

(see section 6. Extension language)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 Default Scheme extensions

Most of the freehoo features are available through Scheme extensions. To override these extensions, copy them from `/usr/share/freehoo/extensions/' to `~/.freehoo/extensions/' and edit them.

(see section 6. Extension language)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. Tips and Tricks

You are free to use complete Readline keys inside freehoo. Frequently used Readline keys inside freehoo are,

@subsection Cursor motion
character C-b C-f
word M-b M-f
line up/down C-p C-n
line start/end C-a C-e
@subsection Editing
delete char C-d
delete char backwards C-h
delete word M-d
delete word backwards C-w
kill line C-k
kill line backwards C-u
character swap C-t
word swap M-w
paste C-y
undo C-_
repeat prefix M-number
@subsection Case change
uppercase word M-u
lowercase word M-l
capitalize word M-c

If you want to do further stunts, jump to Readline manual, See section `Readline' in Readline.

(3)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6. Extension language

An extension language is a programming language interpreter offered by an application program, so that users can write macros or even full-fledged programs to extend the original application. Extension languages have a C interface (it is usually C, but it could be any other compiled language), and can be given access to the C data structures. Likewise, there are C routines to access the extension language data structures.

Hoo uses GNU extension language - Guile (which can stand for _GNU Ubiquitous Intelligent Language Extension_). Guile started out as an embeddable Scheme interpreter, and has rapidly evolved into a kitchen-sink package including a standalone Scheme interpreter, an embeddable Scheme interpreter, several graphics options, other languages that can be used along with Scheme (for now just _ctax_ and _Tcl_), and hooks for much more.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. hello.scm extension

Learn how to write a simple extension by yourself.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.1 Writing hello.scm

This example extension creates a dynamic command /hello, which on invocation sends a message Hello GNU to yourself.

 
;; hello.scm
(fh-register-command! "/hello" "/hello\n\t- Hello to myself.\n")
(define (/hello args)
   "send me hello message"
   (fh-send-message (fh-get-default-login-id) "Hello GNU"))


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.2 Loading hello.scm

Copy `hello.scm' to `~/.freehoo/extensions/' and add this entry in your `~/.freehoo/freehoo.scm'

(fh-load "hello.scm")


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8. Variables

Currently no variables are exported to Scheme environment from Freehoo. Instead we have solved such needs using procedure interface to get/set variables.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9. Procedures

The following are the list of freehoo procedures that are exported to Scheme. Now you are able to call the procedures from Scheme that are written in C.

9.1 General procedures  General Scheme primitives
9.2 Configuration procedures  Configuration Scheme primitives
9.3 Hook related procedures  Hook related Scheme primitives
9.4 Utility procedures  Utility Scheme primitives


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.1 General procedures

primitive: fh-load filepath
Loads and evaluates filepath.scm from mentioned path or from `~/.freehoo/extensions/' or from `/usr/share/freehoo/extensions/'.

Example:

 
(fh-load "aliases.scm")

primitive: fh-add-buddy buddy group
Adds buddy to group in your contact list.

Example:

 
(fh-add-buddy "rms" "GNU")

primitive: fh-send-message buddy message
Sends message to the buddy.

Example:

 
(fh-send-message "rms" "hello GNU")

primitive: fh-send-message-no-hook buddy message
Sends message to the buddy. This procedure does not run any hooks. You will have to use this procedure while sending messages from inside fh-message-send-hook otherwise it will lead to an endless recursion.

Example:

 
(fh-send-message-no-hook "rms" "hello GNU")

primitive: fh-set-current-target-buddy! buddy
Sets the target buddy name in AUTO-INSERT mode. This call makes meaning only when you are in AUTO-INSERT mode.

Example:

 
(fh-set-current-target-buddy! "richard")

primitive: fh-register-command! command documentation
Registers a dynamic command and its documentation with Freehoo command interpreter.

Example:

 
(fh-register-command! "/date" "/date\n\t- display current date")

primitive: fh-unregister-command! command
Un-registers command from freehoo's command interpreter.

Example:

 
(fh-unregister-command!  "/date")

primitive: fh-version
Return the current version string of freehoo.

Example:

 
(display (fh-version))

primitive: fh-display message
Prints the message in the console. Unlike the display primitive, this procedure takes care of printing messages asynchronously.

Example:

 
(fh-display ("I am proud of freehoo"))

primitive: fh-dict-add-word! newword
Adds newword to the english dictionary for autocompletion.

Example:

 
(fh-dict-add-word! "acomplexneword")
(fh-dict-add-word! "myfriendsnick")

primitive: fh-dict-add-word-sorted! newword
Adds newword to the english dictionary for autocompletion. Assumes newword newword will be lexographically the last word in the dictionary list. Used to load words from huge dictionary files which are already sorted.

Example:

 
(fh-dict-add-word-sorted! "aaa")
(fh-dict-add-word-sorted! "aab")
(fh-dict-add-word-sorted! "abc")

primitive: fh-dict-del-word unusedword
Removes unusedword from the english dictionary for autocompletion.

Example:

 
(fh-dict-del-word "acomplexneword")
(fh-dict-del-word "myfriendsnick")


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.2 Configuration procedures

primitive: fh-bell
Switches the bell sound between ON and OFF.

Example:

 
(fh-bell)

primitive: fh-toggle! state
Switches state between two different states.

The value of state can be,

state bell
Switches bell sound between ON and OFF.

Example:

 
(fh-toggle! bell)

state session
Switches freehoo session between AUTO-INSERT and VANILLA modes.

Example:

 
(fh-toggle! session)

state status
Switches display of status messages between SHOW and HIDE.

Example:

 
(fh-toggle! status)

state who
Switches who mode between ONLINE-ONLY and SHOW-ALL.

Example:

 
(fh-toggle! who)

primitive: fh-get-home-dir
Return the home directory of current user.

Example:

 
(chdir (fh-get-home-dir))

primitive: fh-get-config-dir
Return the directory containing configuration files.

Example:

 
(display (fh-get-config-dir))

primitive: fh-get-config-filename
Return the configuration filepath.

Example:

 
(display (fh-get-config-filename))

primitive: fh-get-download-filename
Return the filename containing URL downloads.

Example:

 
(display (fh-get-download-filename))

primitive: fh-get-global-extensions-directory
Return the directory containing global extensions.

Example:

 
(chdir (fh-get-global-extensions-directory))

primitive: fh-get-local-extensions-directory
Return the directory containing local extensions.

Example:

 
(chdir (fh-get-local-extensions-directory))

primitive: fh-get-default-login-id
Return the yahoo-id of currently logged-in user.

Example:

 
(display (fh-get-default-login-id))

primitive: fh-set-default-login-id! yahoo-id
Sets the yahoo-id.

Example:

 
(fh-set-default-login-id! "kvisu2000")

primitive: fh-set-default-password! password
Sets the yahoo account password.

Example:

 
(fh-set-default-password! "pressenter")

primitive: fh-set-default-status! number
Sets the yahoo status number.

Example:

 
;;; go invisible
(fh-set-default-status! 12)
For complete list of status number definitions refer (see section 3.32 freehoo command - status)

primitive: fh-set-prompt! prompt-string
Sets the yahoo prompt. This call will be effective only when called during freehoo startup.

Example:

 
;;; set freehoo prompt
(fh-set-prompt! "~qp~> ")

primitive: fh-logoff
Logoff from the freehoo connection.

Example:

 
;;; logoff connection
(fh-logoff)

primitive: fh-quit
Logoff from the connection and quit freehoo

Example:

 
;;; logoff and quit freehoo
(fh-quit)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.3 Hook related procedures

(4)

primitive: fh-hook-return
Makes the calling procedure return immedieltly after running the hooks.

Example:

 
(define (alias to message)
  "alias nags to nagappanal"
  (and (string=? to "nags")
       ;; send message to actual name
       (fh-send-message-no-hook "nagappanal" message)
       ;; "nags" does'nt exist. so let send return immediately
       (fh-hook-return)))
(add-hook! fh-message-send-hook alias)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.4 Utility procedures

These are general purpose utility procedures written completly in Scheme.

(5)

procedure: symbolrnumber->symbol num
Converts num to its corresponding Scheme symbol. num is any number atom in Scheme.

Example:

 
(symbolrnumber->symbol 5)
will return 5 which is a Scheme symbol and not a number.

procedure: any->symbol num
Converts string or number or symbol to its corresponding Scheme symbol.

Example:

 
(any->symbol 5)
will return 5 which is a Scheme symbol and not a number.

procedure: list->asv list delimiter
Converts list to vector delimitted by delimiter. list stands for list to any seperated vector.

Example:

 
(list->asv ("gnuindian" "nagappanal" "abindian" "balugi") ", ")
will return "gnuindian, nagappanal, abindian, balugi"

procedure: list->csv list
Converts list to a comma seperated vector delimitted by `, '.

Example:

 
(list->csv ("gnuindian" "nagappanal" "abindian" "balugi"))
will return "gnuindian, nagappanal, abindian, balugi"

procedure: sentence->words sentence
Converts a string of sentence to a list of symbols.

Example:

 
(sentence->words "Free as in Freedom")
=> (Free as in Freedom)

procedure: list->symlist list
Converts list of numbers/symbols into a list of symbols.

Example:

 
(list->symlist (5 a gnu 100 10.5))
will return (5 a gnu 100 10.5) where all items in the list are symbols and not numbers. List already containing symbols are not alterted.

procedure: list->strlist list
Converts list of numbers/symbols into a list of strings.

Example:

 
(list->strlist (5 a gnu 100 10.5))
will return ("5" "a" "gnu" "100" "10.5") where all items in the list are symbols and not numbers. List already containing symbols are not alterted.

procedure: send-message-to-group group message
Send message to a group.

Example:

 
(send-message-to-group '(gnuindian nagappanal abindian balugi) "Hello GNU")

procedure: local-date-time
Returns the local date and time

Example:

 
(display (local-date-time))

procedure: ignore-message! message-pattern
ignores messages matching the regex message-pattern

Example:

 
(ignore-message! "^PING$")

procedure: ignored-message? message
Return #t if this message is ignored, else #f.

Example:

 
(ignored-message? "PING")


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10. Hooks

Through Hooks facility FreeHoo lets you steal its control at various important junctures during execution.

hook: fh-message-send-hook buddy message
Hook procedure is called with buddy and message as arguments on every send message operation.

Supporting primitives:

see fh-hook-return

Example:

 
(define (cc-proc to message)
  "hook procedure for CCing messages"
  (and (string=? to "rms")
       (fh-send-message-no-hook "thomas" message)
       (fh-send-message-no-hook "roland" message)
       (fh-send-message-no-hook "gord" message)))
(add-hook! fh-message-send-hook cc-proc)

hook: fh-message-receive-hook buddy message
Hook procedure is called with buddy and message as arguments on every receive message operation.

Supporting primitives:

see fh-hook-return

Example:

 
(define (forward-proc from message)
  "hook procedure for bouncing messages"
  (and (string=? from "rms")
       (fh-send-message-no-hook "thomas" message)
       (fh-send-message-no-hook "roland" message)
       (fh-send-message-no-hook "gord" message)))
(add-hook! fh-message-receive-hook forward-proc)

hook: fh-message-receive-offline-hook buddy message timestamp
Hook procedure is called with buddy, message and timestamp as arguments on every receive offline message operation.

Supporting primitives:

see fh-hook-return

Example:

 
(define (ack-proc from message timestamp)
  "hook procedure for acknowledging offline messages"
  (fh-send-message-no-hook from "Received ur offline message"))
(add-hook! fh-message-receive-offline-hook ack-proc)

hook: fh-mail-notify-hook from subject
Hook procedure is called with from and subject as arguments upon every new yahoo mail.

Example:

 
(define (mail-notify-proc from subject)
  "hook procedure for mail notification"
  (system "ogg123 ~/themes/mail-notify.ogg&"))

(add-hook! fh-mail-notify-hook mail-notify-proc)

hook: fh-login-post-hook
Hook procedure is called after completion of login operation.

Supporting primitives:

see fh-hook-return

Example:

 
(define (history-rotate-proc)
  "hook procedure for flushing the old history messages"
  (history-rotate))
(add-hook! fh-login-post-hook history-rotate-proc)

hook: fh-contact-added-hook
Hook procedure is called after a buddy adds you in his/her contact list.

Supporting primitives:

see fh-hook-return

Example:

 
(define (auto-add-buddy from message)
  "hook procedure for automatically adding buddy to your contact list"
  (fh-add-buddy from "GNU")) ;; GNU - group name
(add-hook! fh-contact-added-hook auto-add-buddy)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

11. Learning further

The following are the URLs where you can find useful manuals for Guile and Scheme.

http://www.gnu.org/software/guile/
http://www.schemers.org/
ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html
http://www.informatik.uni-kiel.de/~scheme/
http://freespace.virgin.net/david.drysdale/guile/tutorial.html
http://nis-www.lanl.gov/~rosalia/gnudl-doc/learn_libguile_toc.html
http://theoryx5.uwinnipeg.ca/gnu/guile/guile-user.html#SEC_Top
http://www.nada.kth.se/~mdj/guile-ref/guile-ref_toc.html
http://www.red-bean.com/guile/guile/old/3540.html
http://nis-www.lanl.gov/~rosalia/mydocs/guile-user.html
http://www.cs.utexas.edu/users/lavender/courses/scheme/
http://www.cstr.ed.ac.uk/projects/festival/manual/festival_8.html#SEC24
http://www.cs.ccu.edu.tw/~dan/tutorials.html
http://www.wcug.wwu.edu/~randyman/COMPUTERS/SCHEME/start.htm
http://www.dmoz.org/Computers/Programming/Languages/Lisp/Scheme/Teaching/
http://www.cs.caltech.edu/~cs181/doc/
http://cis.csuohio.edu/~hysockel/Links/Documents.html


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12. Authors

We believe in Software Freedom and Ethics, the GNU's way.

1. A. Balamurugan Developer balamurugana@yahoo.com
2. A. Nagappan Developer nagappanal@yahoo.com
3. Anand Babu Project Manager ab@gnu.org.in
4. Gopal Narayanan Developer gopal@debian.org
5. H.E. Ramesh Developer ramyog_2000@yahoo.com
6. K. Nirranjan Developer nirranjan@yahoo.com
7. K. Viswanathan Developer gnuvisu@yahoo.com
8. Mridul Jain Developer gnuindian@yahoo.com
9. Parag Mehta Developer pm@gnuos.org

Texi documentation written by K. Viswanathan gnuvisu@yahoo.com and revised by Anand Babu ab@gnu.org.in


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

13. URLs

URL: Homepage
http://www.gnu.org/non-gnu/freehoo/

URL: Download
http://savannah.nongnu.org/download/freehoo/

URL: CVS
To know project information like Bugs, Updates, Support, Patches, Tasks, News, Development Status, Activity Percentile, Project Activity visit http://www.gnu.org/non-gnu/freehoo/

URL: Mailing list
Freehoo has its own mailing list. The mailing list is for support, reporting bugs, mailing announcements. You are welcome to subscribe.

To Subscribe/Unsubscribe visit, https://savannah.nongnu.org/mail/?group=freehoo.

URL: Bugs
You are welcome to send bug reports about freehoo to https://savannah.nongnu.org/bugs/?group=freehoo. The bugs that you think are of the interest to the public (i.e. more people should be informed about them) can be Cc-ed to the above mailing lists.

Before actually submitting a bug report, please try to follow a few simple guidelines.

  1. Please try to ascertain that the behavior you see really is a bug. If Freehoo crashes, it's a bug. If freehoo does not behave as documented, it's a bug. If things work strange, but you are not sure about the way they are supposed to work, it might well be a bug.

  2. Try to repeat the bug in as simple circumstances as possible.

  3. If freehoo has crashed, try to run it in a debugger, e.g. `gdb `which hoo` core' and type where to get the backtrace.

  4. Find where the bug is, fix it and send the patches. :) (see section 14. Guidelines for submitting a patch)

Send your specific queries to M.P. Anand Babu ab@gnu.org.in


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14. Guidelines for submitting a patch

  1. Copy the latest CVS version of freehoo directory as freehoo-hack.

  2. Make changes in your freehoo-hack directory.

  3. Create patch using
    # diff -pruN freehoo freehoo-hack > freehoo-patch-title

  4. Mail the patch file `freehoo-patch-title' to the mailing list with subject prefixed with `PATCH:'.
    Please send only text mails with patch as a part of the message body. Don't update `ChangeLog' file, instead add your comments at the beginning of the body.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15. Portability

Since freehoo uses GNU Autoconf for building and configuring, and avoids using `special' ultra--mega--cool features of any particular Unix, it should compile (and work) on all common Unix flavors.

Various freehoo versions have been compiled and tested under GNU/Hurd and GNU/Linux. However freehoo can be easily ported to any POSIX complaint platform with Guile and Readline ports. If you compile it on an architecture not listed here, please let us know so that we can update it. (see section 13. URLs)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

16. License

The license of freehoo consists of the GNU GPL plus a special statement giving blanket permission to link with non-free software. This is the license statement as found in any individual file that it applies to:

 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this software; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA

As a special exception, the Free Software Foundation gives permission
for additional uses of the text contained in its release of freehoo.

The exception is that, if you link the Freehoo with other files to
produce an executable, this does not by itself cause the resulting
executable to be covered by the GNU General Public License.  Your use
of that executable is in no way restricted on account of linking the
Freehoo code into it.

This exception does not however invalidate any other reasons why the
executable file might be covered by the GNU General Public License.

This exception applies only to the code released by the Free Software
Foundation under the name freehoo.  If you copy code from other Free
Software Foundation releases into a copy of freehoo, as the General
Public License permits, the exception does not apply to the code that
you add in this way.  To avoid misleading anyone as to the status of
such modified files, you must delete this exception notice from them.

If you write modifications of your own for freehoo, it is your choice
whether to permit this exception to apply to your modifications.  If
you do not wish that, delete this exception notice.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Concept Index

Jump to:   A   C   E   F   G   I   O   P   R   S   V  

Index Entry Section

A
AUTHORS12. Authors
AUTO-INSERT3.33.0.1 AUTO-INSERT mode HOW-TO

C
Command line arguments2. Invoking
Customization4. Customizing freehoo

E
Extension language6. Extension language

F
Features1. Overview
freehoo URLs13. URLs
freehoo.scm4.1 freehoo.scm

G
Guile6. Extension language

I
init.scm4.2 init.scm
Initialization4.2 init.scm

O
ONLINE-ONLY3.33 freehoo command - toggle
Overriding extensions4.3 Default Scheme extensions

P
Portability15. Portability

R
Readline in freehoo5. Tips and Tricks

S
SHOW-ALL3.33 freehoo command - toggle
Startup4.1 freehoo.scm
Submitting patches14. Guidelines for submitting a patch

V
VANILLA3.33 freehoo command - toggle

Jump to:   A   C   E   F   G   I   O   P   R   S   V  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Command Index

Jump to:   *   <  
A   B   C   D   E   F   H   I   L   P   Q   R   S   T   U   V   W   X  

Index Entry Section

*
*3.1 Freehoo command - *

<
<buddy>3.2 Freehoo command - <buddy>

A
add3.3 Freehoo command - add
alias3.4 Freehoo command - alias

B
bell3.5 Freehoo command - bell
broadcast3.6 Freehoo command - broadcast
buzz3.7 Freehoo command - buzz

C
cc3.9 Freehoo command - cc
color-buddy3.10 Freehoo command - color-*
color-off3.10 Freehoo command - color-*
color-on3.10 Freehoo command - color-*
conf-add3.11 FreeHoo virtual conference commands
conf-begin3.11 FreeHoo virtual conference commands
conf-decline3.11 FreeHoo virtual conference commands
conf-list3.11 FreeHoo virtual conference commands
conf-quit3.11 FreeHoo virtual conference commands
conf-send3.11 FreeHoo virtual conference commands

D
date3.12 FreeHoo command - date
dbg-backtrace3.13 FreeHoo command - dbg-backtrace
dict3.14 FreeHoo command - dict

E
eval3.15 FreeHoo command - eval
exec3.16 freehoo command - exec

F
forward3.8 Freehoo command - forward
freehoo3.17 FreeHoo command - freehoo

H
help3.18 freehoo command - help
history3.19 freehoo command - history

I
ignore3.20 freehoo command - ignore*
ignore3.20 freehoo command - ignore*

L
load3.21 freehoo command - load

P
ping3.22 freehoo command - ping
pipe3.23 freehoo command - pipe

Q
quit3.24 freehoo command - quit

R
refresh3.25 freehoo command - refresh
reject3.26 freehoo command - reject
remove3.27 freehoo command - remove
restart3.28 freehoo command - restart

S
send3.29 freehoo command - send
send-file3.30 freehoo command - send-file
sh3.31 freehoo command - shell
status3.32 freehoo command - status

T
toggle3.33 freehoo command - toggle

U
unignore3.20 freehoo command - ignore*

V
vconf-end3.34 freehoo virtual conference commands
vconf-start3.34 freehoo virtual conference commands
vconf-who3.34 freehoo virtual conference commands
version3.35 freehoo command - version

W
who3.36 freehoo command - who

X
xmessage3.37 freehoo command - xmessage

Jump to:   *   <  
A   B   C   D   E   F   H   I   L   P   Q   R   S   T   U   V   W   X  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Procedure Index

Jump to:   A   F   I   L   S  

Index Entry Section

A
any->symbol9.4 Utility procedures

F
fh-add-buddy9.1 General procedures
fh-bell9.2 Configuration procedures
fh-contact-added-hook10. Hooks
fh-dict-add-word!9.1 General procedures
fh-dict-add-word-sorted!9.1 General procedures
fh-dict-del-word9.1 General procedures
fh-display9.1 General procedures
fh-get-config-dir9.2 Configuration procedures
fh-get-config-filename9.2 Configuration procedures
fh-get-default-login-id9.2 Configuration procedures
fh-get-download-filename9.2 Configuration procedures
fh-get-global-extensions-directory9.2 Configuration procedures
fh-get-home-dir9.2 Configuration procedures
fh-get-local-extensions-directory9.2 Configuration procedures
fh-hook-return9.3 Hook related procedures
fh-load9.1 General procedures
fh-login-post-hook10. Hooks
fh-logoff9.2 Configuration procedures
fh-mail-notify-hook10. Hooks
fh-message-receive-hook10. Hooks
fh-message-receive-offline-hook10. Hooks
fh-message-send-hook10. Hooks
fh-quit9.2 Configuration procedures
fh-register-command!9.1 General procedures
fh-send-message9.1 General procedures
fh-send-message-no-hook9.1 General procedures
fh-set-current-target-buddy!9.1 General procedures
fh-set-default-login-id!9.2 Configuration procedures
fh-set-default-password!9.2 Configuration procedures
fh-set-default-status!9.2 Configuration procedures
fh-set-prompt!9.2 Configuration procedures
fh-toggle!9.2 Configuration procedures
fh-unregister-command!9.1 General procedures
fh-version9.1 General procedures

I
ignore-message!9.4 Utility procedures
ignored-message?9.4 Utility procedures

L
list->asv9.4 Utility procedures
list->csv9.4 Utility procedures
list->strlist9.4 Utility procedures
list->symlist9.4 Utility procedures
local-date-time9.4 Utility procedures

S
send-message-to-group9.4 Utility procedures
sentence->words9.4 Utility procedures
symbolrnumber->symbol9.4 Utility procedures

Jump to:   A   F   I   L   S  


[Top] [Contents] [Index] [ ? ]

Footnotes

(1)

by default color themes is enabled

(2)

Currently typing notifications will be sent remote buddy only in AUTO-INSERT mode. VANNILA mode has no concept of current target buddy.

(3)

When you press TAB twice at freehoo prompt you can see all the possible commands and buddy names.

(4)

The following primitives can be called from procedures that are hooked to freehoo exported hooks. Also check the list of supported primitives for each hook.

(5)

utility procedures are loaded through /DATADIR/freehoo/extensions/util.scm and you are free to hack for cool undocumented procedures


[Top] [Contents] [Index] [ ? ]

Table of Contents

1. Overview
2. Invoking
3. Freehoo commands
3.1 Freehoo command - *
3.2 Freehoo command - <buddy>
3.3 Freehoo command - add
3.4 Freehoo command - alias
3.5 Freehoo command - bell
3.6 Freehoo command - broadcast
3.7 Freehoo command - buzz
3.8 Freehoo command - forward
3.9 Freehoo command - cc
3.10 Freehoo command - color-*
3.11 FreeHoo virtual conference commands
3.12 FreeHoo command - date
3.13 FreeHoo command - dbg-backtrace
3.14 FreeHoo command - dict
3.15 FreeHoo command - eval
3.16 freehoo command - exec
3.17 FreeHoo command - freehoo
3.18 freehoo command - help
3.19 freehoo command - history
3.20 freehoo command - ignore*
3.21 freehoo command - load
3.22 freehoo command - ping
3.23 freehoo command - pipe
3.24 freehoo command - quit
3.25 freehoo command - refresh
3.26 freehoo command - reject
3.27 freehoo command - remove
3.28 freehoo command - restart
3.29 freehoo command - send
3.30 freehoo command - send-file
3.31 freehoo command - shell
3.32 freehoo command - status
3.33 freehoo command - toggle
3.33.0.1 AUTO-INSERT mode HOW-TO
3.34 freehoo virtual conference commands
3.35 freehoo command - version
3.36 freehoo command - who
3.37 freehoo command - xmessage
4. Customizing freehoo
4.1 freehoo.scm
4.2 init.scm
4.3 Default Scheme extensions
5. Tips and Tricks
6. Extension language
7. hello.scm extension
7.1 Writing hello.scm
7.2 Loading hello.scm
8. Variables
9. Procedures
9.1 General procedures
9.2 Configuration procedures
9.3 Hook related procedures
9.4 Utility procedures
10. Hooks
11. Learning further
12. Authors
13. URLs
14. Guidelines for submitting a patch
15. Portability
16. License
Concept Index
Command Index
Procedure Index

[Top] [Contents] [Index] [ ? ]

Short Table of Contents

1. Overview
2. Invoking
3. Freehoo commands
4. Customizing freehoo
5. Tips and Tricks
6. Extension language
7. hello.scm extension
8. Variables
9. Procedures
10. Hooks
11. Learning further
12. Authors
13. URLs
14. Guidelines for submitting a patch
15. Portability
16. License
Concept Index
Command Index
Procedure Index

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated by using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack beginning of this chapter or previous chapter 1
[ Up ] Up up section 1.2
[ >> ] FastForward next chapter 2
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:



This document was generated by root on July, 2 2005 using texi2html