head	1.2;
access;
symbols
	REL7_1_2:1.1
	REL7_1_STABLE:1.1.0.8
	REL7_1_BETA:1.1
	REL7_1_BETA3:1.1
	REL7_1_BETA2:1.1
	REL7_1:1.1
	REL7_0_PATCHES:1.1.0.6
	REL7_0:1.1
	REL6_5_PATCHES:1.1.0.4
	REL6_5:1.1
	REL6_4:1.1.0.2
	release-6-3:1.1;
locks; strict;
comment	@# @;


1.2
date	2001.05.09.19.19.00;	author momjian;	state dead;
branches;
next	1.1;

1.1
date	98.02.11.14.14.16;	author scrappy;	state Exp;
branches;
next	;


desc
@@


1.2
log
@This patch adds a new configure option --with-pltcl-unknown which
enables pltcl unknown support.


Also it adds substituting of tclsh with tclsh that was by configure in
pltcl_*mod scripts. For example, On freebsd, tclsh can be called
tclsh8.2 or
tclsh8.3 depending on installed version of Tcl.

After patching files
  src/pl/tcl/modules/pltcl_listmod
  src/pl/tcl/modules/pltcl_loadmod
  src/pl/tcl/modules/pltcl_delmod
must be renamed(copied,repocopied) to
  src/pl/tcl/modules/pltcl_listmod.in
  src/pl/tcl/modules/pltcl_loadmod.in
  src/pl/tcl/modules/pltcl_delmod.in

seva@@sevasoft.kiev.ua
@
text
@#!/bin/sh
# Start tclsh \
exec tclsh "$0" $@@

#
# Code still has to be documented
#

#load /usr/local/pgsql/lib/libpgtcl.so
package require Pgtcl


#
# Check for minimum arguments
#
if {$argc < 1} {
    puts stderr ""
    puts stderr "usage: pltcl_listmod dbname \[options\] \[modulename \[...\]\]"
    puts stderr ""
    puts stderr "options:"
    puts stderr "    -host hostname"
    puts stderr "    -port portnumber"
    puts stderr ""
    exit 1
}

#
# Remember database name and initialize options
#
set dbname [lindex $argv 0]
set options ""
set errors 0
set opt ""
set val ""

set i 1
while {$i < $argc} {
    if {[string compare [string index [lindex $argv $i] 0] "-"] != 0} {
        break;
    }

    set opt [lindex $argv $i]
    incr i
    if {$i >= $argc} {
        puts stderr "no value given for option $opt"
	incr errors
	continue
    }
    set val [lindex $argv $i]
    incr i

    switch -- $opt {
        -host {
	    append options "-host \"$val\" "
	}
	-port {
	    append options "-port $val "
	}
	default {
	    puts stderr "unknown option '$opt'"
	    incr errors
	}
    }
}

#
# Final syntax check
#
if {$errors > 0} {
    puts stderr ""
    puts stderr "usage: pltcl_listmod dbname \[options\] \[modulename \[...\]\]"
    puts stderr ""
    puts stderr "options:"
    puts stderr "    -host hostname"
    puts stderr "    -port portnumber"
    puts stderr ""
    exit 1
}

proc listmodule {conn modname} {
    set xname $modname
    regsub -all {\\} $xname {\\} xname
    regsub -all {'}  $xname {''} xname

    set found 0
    pg_select $conn "select * from pltcl_modules where modname = '$xname'" \
    MOD {
        set found 1
	break;
    }

    if {!$found} {
        puts "Module $modname not found in pltcl_modules"
	puts ""
	return
    }

    puts "Module $modname defines procedures:"
    pg_select $conn "select funcname from pltcl_modfuncs \
	    where modname = '$xname' order by funcname" FUNC {
        puts "    $FUNC(funcname)"
    }
    puts ""
}

set conn [eval pg_connect $dbname $options]

if {$i == $argc} {
    pg_select $conn "select distinct modname from pltcl_modules	\
    		order by modname"	\
    		MOD {
        listmodule $conn $MOD(modname)
    }
} else {
    while {$i < $argc} {
        listmodule $conn [lindex $argv $i]
	incr i
    }
}

pg_disconnect $conn

@


1.1
log
@From: Jan Wieck <jwieck@@debis.com>

    A few minutes ago I sent down the PL/Tcl  directory  to  this
    list.  Look at it and reuse anything that might help to build
    PL/perl.  I really hope that PL/perl and PL/Tcl appear in the
    6.3 distribution. I'll do whatever I can to make this happen.
@
text
@@

