diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:43:39 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:43:39 +0200 |
commit | f4092abdf94af6a99aff944d6264bc1284e8bdd4 (patch) | |
tree | 2ac1c9cc16ceb93edb2c4382c088dac5aeafdf0f /nx-X11/extras/ogl-sample/main/doc/man/macros | |
parent | a840692edc9c6d19cd7c057f68e39c7d95eb767d (diff) | |
download | nx-libs-045ad1ef854b60942711d14c3d17d9fadc21dad4.tar.gz nx-libs-045ad1ef854b60942711d14c3d17d9fadc21dad4.tar.bz2 nx-libs-045ad1ef854b60942711d14c3d17d9fadc21dad4.zip |
Imported nx-X11-3.1.0-1.tar.gznx-X11/3.1.0-1
Summary: Imported nx-X11-3.1.0-1.tar.gz
Keywords:
Imported nx-X11-3.1.0-1.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/extras/ogl-sample/main/doc/man/macros')
5 files changed, 744 insertions, 0 deletions
diff --git a/nx-X11/extras/ogl-sample/main/doc/man/macros/GNUmakefile b/nx-X11/extras/ogl-sample/main/doc/man/macros/GNUmakefile new file mode 100644 index 000000000..231d951e0 --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/macros/GNUmakefile @@ -0,0 +1,48 @@ +#!gmake +# +# License Applicability. Except to the extent portions of this file are +# made subject to an alternative license as permitted in the SGI Free +# Software License B, Version 1.1 (the "License"), the contents of this +# file are subject only to the provisions of the License. You may not use +# this file except in compliance with the License. You may obtain a copy +# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +# +# http://oss.sgi.com/projects/FreeB +# +# Note that, as provided in the License, the Software is distributed on an +# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +# +# Original Code. The Original Code is: OpenGL Sample Implementation, +# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +# Copyright in any portions created by third parties is as indicated +# elsewhere herein. All Rights Reserved. +# +# Additional Notice Provisions: The application programming interfaces +# established by SGI in conjunction with the Original Code are The +# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +# Window System(R) (Version 1.3), released October 19, 1998. This software +# was created using the OpenGL(R) version 1.2.1 Sample Implementation +# published by SGI, but has not been independently verified as being +# compliant with the OpenGL(R) version 1.2.1 Specification. +# +# $Date: 2004/03/14 08:29:07 $ $Revision: 1.1.1.4 $ +# $Header: /cvs/xorg/xc/extras/ogl-sample/main/doc/man/macros/GNUmakefile,v 1.1.1.4 2004/03/14 08:29:07 eich Exp $ + +COMMONPREF = standard +include $(ROOT)/usr/include/make/commondefs + +default headers headers_install libs libs_install install apps: + +distsi distoss: + $(MAKE) $(COMMONPREF)$@ + +$(COMMONTARGS): % : $(COMMONPREF)% + +include $(COMMONRULES) diff --git a/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.awk b/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.awk new file mode 100644 index 000000000..07f6ce39b --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.awk @@ -0,0 +1,290 @@ +# basename is set on the command line +# The regexp below is replaced by an expression to do case insensitive +# searching on the name of a GL function before running this program. +# +# Runs on 'gl.h' ('glu.h', 'glx.h') and locates the lines for the specified +# GL (glu, glx) function, then generates M4 definitions for man page +# +BEGIN { + found = 0 + numargs = 0 + newargs[0] = "" + stderr = "cat 1>&2" + vee = 0 + getnames(basename) + + for (j=0; j<numNames; j++) + { + rexpNames[j] = names[j] regExps[j] + head[j] = "" + numFound[j] = 0 + nargs[0] = 0 + } +} + +/extern/ { + cmdfield = 0; + # search for the command string + for (i = 3; i <= NF; i++) + { + name = $i; + if (index(name,"gl") == 1) + { + cmdfield = i; + # strip the gl, glu, or glX prefix + # note that the X of glX is not stripped! + if (index(name,"glu") == 1) + name = substr(name,4); + else + name = substr(name,3); + truename = name; + break; + } + } + if (cmdfield != 0) { + for (i=0; i<numNames; i++) + { + if (name ~ rexpNames[i]) + { # Found one - $cmdfield is the name, $2 through $(cmdfield-1) is + # the return type. The rest is the argument list. + match(name,names[i]) + if ((RLENGTH != length(names[i])) || (match(name,rexpNames[i]) != 1)) + continue + if (RLENGTH != length(name)) + continue + cname = name + names[i,numFound[i]] = truename + p = index($0,"(") + addargs(substr($0,p,length($0)-p-1),i) # Strips trailing semicolon + typestr = $2 + for (j = 3; j < cmdfield; j++) + { + typestr = typestr " " $j + } + head[i] = head[i] makeHead(truename,typestr,i) + numFound[i]++ + found++ + } + } + } +} + +END { + if (found == 0) { + if (basename == "xintro") { + numNames = 1; + numFound[0] = 1; + names[0,0] = "XIntro"; + } + else if (basename == "intro") { + numNames = 1; + numFound[0] = 1; + names[0,0] = "Intro"; + } + else { + printf "No GL call found that matches '%s'.\n", basename | stderr + printf "Edit macros/mkhead.awk to add a special name.\n" | stderr + } + } + printf "_define(_samething,@<.PP\n" + printf "The above subroutines are functionally equivalent;\n" + printf "they differ only in the specification of their parameters.\n" + printf ">@)dnl\n" + + printf "_define(_header,@<dnl\n" + printf "_setup()dnl\n" + printf "_define(_cname,$1)dnl\n" + printf ".TH %s$1 3G\n", prefix + printf ".SH NAME\n" + printf ".B \"" + for (i=0; i<numNames; i++) + for (j=0; j<numFound[i]; j++) + if ((i == (numNames-1)) && (j == (numFound[i]-1))) + printf "%s%s\n", prefix, names[i,j] + else + printf "%s%s, ", prefix, names[i,j] + printf "\\- $2\n" + printf ">@)dnl\n" + + printf "_define(_names,@<dnl\n" + printf "_ifelse($3,@<>@,.SH C SPECIFICATION\n)" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_namenum,@<%d>@,@<%s>@,dnl\n",i,head[i] + } + printf "ERROR)dnl\n" + printf "_define(@<_namenum>@,_incr(_namenum))>@)dnl\n" + +# if (found > 1) +# { +# printf "_samething()\n" +# } + maxArgs = 0 + for (i=0; i<numNames; i++) + if (maxArgs < nargs[i]) + maxArgs = nargs[i] + long = "" + for (j=1; j<=maxArgs; j++) + { + printf "_define(_param%d,@<",j + printf "_define(@<_tmpnum>@,_ifelse($#,0,_namenum,$1))dnl\n" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_tmpnum,@<%d>@,\\f2%s\\fP,dnl\n",i+1,args[j,i] + if (length(args[j,i]) > length(long)) + long = args[j,i] + } + printf "???)>@)dnl\n" + } +# next loop same as above, except does not italicize +# resulting definitions can be used in equations + for (j=1; j<=maxArgs; j++) + { + printf "_define(_eqnparam%d,@<",j + printf "_define(@<_tmpnum>@,_ifelse($#,0,_namenum,$1))dnl\n" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_tmpnum,@<%d>@,\"%s\",dnl\n",i+1,args[j,i] + if (length(args[j,i]) > length(long)) + long = args[j,i] + } + printf "???)>@)dnl\n" + } +# The following stuff is designed to find the longest argument so that +# the '.TP' indentation can be set in the first instaciation of _phead +# (thus the use of the '_first' macro as a flag). Things are complicated +# by the possibility of multiple arguments in the call to _phead. +# This is what _makelist is for: to turn a space separted multiple +# argument list into a comma separated one (commas can't be used in +# the original list because they have special meaning to m4). +# Unfortunately, this means that (currently) if the longest string is +# a multiple argument, the indentation will only be right if it occurs +# in the first _phead. This is because only the API file is scanned +# for arguments, and not the man page file, so this script can't know +# which instance of phead has the longest (multiple) argument. + + long = "\\fI" long "\\fP" + printf "_define(_phead,@<dnl\n" + printf "_ifdef(@<_first>@,@<.TP>@,@<.TP \\w'" + printf "_ifelse(_eval(_len(%s)>_len(_makelist($1))),1,",long + printf "%s,translit(_makelist($1),@<+>@,@<\\>@))\\ \\ 'u dnl\n", long + printf "_define(_first,first)>@)\n" + printf "translit(_makelist($1),@<+>@,@<,>@)>@)dnl\n" + printf "_define(_cmnd,@<\\%%_ifelse($1,@<>@,\\f3" prefix "@<>@_cname\\fP,dnl\n" + printf "\\f3" prefix "$1\\fP)>@)dnl\n" + printf "_define(_glcmnd,@<_ifelse($1,@<>@,\\f3gl@<>@_cname\\fP,dnl\n" + printf "\\f3gl$1\\fP)>@)dnl\n" + printf "_define(_glucmnd,@<_ifelse($1,@<>@,\\f3glu@<>@_cname\\fP,dnl\n" + printf "\\f3glu$1\\fP)>@)dnl\n" + printf "_define(_xcmnd,@<_ifelse($1,@<>@,\\f3X@<>@_cname\\fP,dnl\n" + printf "\\f3X$1\\fP)>@)dnl\n" +# printf "syscmd(@<${maCdIr}/mkname.awk>@ ${maCdIr}/pglspec >_tmpnam)dnl\n" +# printf "_include(_tmpnam)syscmd(rm -f _tmpnam)>@))dnl\n" +} + + + +# +# function to make the troff to typeset the function header +# +function makeHead(fname,type,i) +{ + fname = prefix fname + headString = sprintf("%s \\f3%s\\fP(",type,fname) + if (numargs > 0) + { + headString = headString "\n" + if (numargs > 1) + { + headString = headString sprintf("%s,\n",targs[1,i]) + headString = headString ".nf\n" + headString = headString sprintf(".ta \\w'\\f3%s \\fP%s( 'u\n",type,fname) + for (j=2; j<=numargs-1; j++) + headString = headString sprintf("\t%s,\n",targs[j,i]) + headString = headString sprintf("\t%s )\n",targs[numargs,i]) + headString = headString ".fi\n" + } + else + headString = headString sprintf("%s )\n.nf\n.fi\n",targs[numargs,i]) + } + else + headString = headString " void )\n.nf\n.fi\n" + return headString +} + +# Generates 'args' of untyped argument names +# Also generates 'targs' of typed argument names and 'nargs', the number +# of arguments. + +function addargs(arglist,i) +{ +# +# First strip leading '(' and trailing ')' +# + if (substr(arglist,1,1) == "(") + arglist = substr(arglist,2,length(arglist)) + while (substr(arglist,1,1) == " ") + arglist = substr(arglist,2,length(arglist)) + + if (substr(arglist,length(arglist),1) == ")") + arglist = substr(arglist,1,length(arglist)-1) + while (substr(arglist,length(arglist),1) == " ") + arglist = substr(arglist,1,length(arglist)-1) + + numargs = split(arglist,newargs, ",[ \t]") + if (newargs[1] == "void") + { + numargs = 0; + targs[1,i] = newargs[1]; + args[1,i] = newargs[1]; + } + if (nargs[i] < numargs) + nargs[i] = numargs; + + for (j=1; j<=numargs; j++) + { +# targs[j,i] italicizes the argument but not the type + targs[j,i] = newargs[j] + numWords = split(targs[j,i],words,"[ \t]") + args[j,i] = words[numWords] + targs[j,i] = words[1] + for (k=2; k<=numWords-1; k++) + targs[j,i] = targs[j,i] " " words[k] + targs[j,i] = targs[j,i] " \\fI" words[numWords] "\\fP" + sub(/\[.*\]/,"",args[j,i]) + gsub("[*()]","",args[j,i]) + } +} + +# +# Parse and save away the _names(name,regexp) declarations in the file +# for later use in matching the entries in the API file. +# + +function getnames(file) +{ + numNames = 0 + fname = file ".gl" + while (getline < fname) + { + if (index($0,"_names(") != 0) + { + start = index($0,"_names(") + 7 + stuff = substr($0,start,length($0)-start) + split(stuff,things,",") + names[numNames] = things[1] + regExps[numNames] = things[2] + numNames++ + } + } + close(fname) + if (numNames == 0) + { + names[0] = file + regExps[0] = "[1-9]*u*[lbsifd]*v*" + numNames++ + } +} diff --git a/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.ftn.awk b/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.ftn.awk new file mode 100644 index 000000000..669a41d8f --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/macros/mkhead.ftn.awk @@ -0,0 +1,339 @@ +# FORTRAN version +# +# Scans the source text for a manual page and locates "_names" macro +# invocations. Looks up the names in gl.h (or glu.h or glx.h) and generates +# definitions for the OpenGL m4 man page macros (_cmnd, _param1, etc.) +# Extracts machine dependencies for the names and stores them in a file +# for later inclusion in the man page. (See glman shell script.) +# +# basename, prefix, machdeps, and machdepsout are set on the command line. +# The regexp below is replaced by an expression to do case insensitive +# searching on the name of a GL function before running this program. +# +BEGIN { + FS = " |\t|\\(" + basename = substr(basename,2,length(basename)-1) # strip leading 'f' + prefix = "f" prefix + found = 0 + numargs = 0 + newargs[0] = "" + stderr = "cat 1>&2" + vee = 0 + getnames("f" basename) + + for (j=0; j<numNames; j++) + { + rexpNames[j] = names[j] regExps[j] + head[j] = "" + numFound[j] = 0 + nargs[0] = 0 + } +} + +/extern/ { + cmdfield = 0; + # search for the command string + for (i = 3; i <= NF; i++) + { + name = $i; + if (index(name,"gl") == 1) + { + cmdfield = i; + # strip the gl, glu, or glX prefix + if (index(name,"glu") == 1 || index(name,"glX") == 1) + name = substr(name,4); + else + name = substr(name,3); + truename = name; + break; + } + } + if (cmdfield != 0) { + for (i=0; i<numNames; i++) + { + if (name ~ rexpNames[i]) + { # Found one - $cmdfield is the name, $2 through $(cmdfield-1) is + # the return type. The rest is the argument list. + match(name,names[i]) + if ((RLENGTH != length(names[i])) || (match(name,rexpNames[i]) != 1)) + continue + if (RLENGTH != length(name)) + continue + cname = name + names[i,numFound[i]] = truename + p = index($0,"(") + addargs(substr($0,p,length($0)-p-1),i) # Strips trailing semicolon + typestr = $2 + for (j = 3; j < cmdfield; j++) + { + typestr = typestr " " $j + } + head[i] = head[i] makeHead(truename,typestr,i) + numFound[i]++ + found++ + } + } + } +} + +END { + if (found == 0) { + if (basename == "glxintro") { + numNames = 1; + numFound[0] = 1; + names[0,0] = "Intro"; + } + else if (basename == "intro") { + numNames = 1; + numFound[0] = 1; + names[0,0] = "Intro"; + } + else { + printf "No GL call found that matches '%s'.\n", basename | stderr + printf "Edit macros/mkhead.awk to add a special name.\n" | stderr + } + } + printf "_define(_samething,@<.PP\n" + printf "The above subroutines are functionally equivalent;\n" + printf "they differ only in the specification of their parameters.\n" + printf ">@)dnl\n" + + printf "_define(_header,@<dnl\n" + printf "_setup()dnl\n" + printf "_define(_cname,$1)dnl\n" + printf ".TH %s$1 \n", prefix + printf ".SH NAME\n" + printf ".B \"" + for (i=0; i<numNames; i++) + for (j=0; j<numFound[i]; j++) + if ((i == (numNames-1)) && (j == (numFound[i]-1))) + printf "%s%s\n", prefix, names[i,j] + else + printf "%s%s, ", prefix, names[i,j] + printf "\\- $2\n" + printf ">@)dnl\n" + + printf "_define(_names,@<dnl\n" + printf "_ifelse($3,@<>@,.SH FORTRAN SPECIFICATION\n)" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_namenum,@<%d>@,@<%s>@,dnl\n",i,head[i] + } + printf "ERROR)dnl\n" + printf "_define(@<_namenum>@,_incr(_namenum))>@)dnl\n" + +# Define the _machdeps macro to include the machine dependencies +# extracted earlier: + + printf "_define(@<_machdeps>@,@<_sinclude(@<%s>@)>@)dnl\n", machdepsout + +# if (found > 1) +# { +# printf "_samething()\n" +# } + maxArgs = 0 + for (i=0; i<numNames; i++) + if (maxArgs < nargs[i]) + maxArgs = nargs[i] + long = "" + for (j=1; j<=maxArgs; j++) + { + printf "_define(_param%d,@<",j + printf "_define(@<_tmpnum>@,_ifelse($#,0,_namenum,$1))dnl\n" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_tmpnum,@<%d>@,\\f2%s\\fP,dnl\n",i+1,args[j,i] + if (length(args[j,i]) > length(long)) + long = args[j,i] + } + printf "???)>@)dnl\n" + } +# next loop same as above, except does not italicize +# resulting definitions can be used in equations + for (j=1; j<=maxArgs; j++) + { + printf "_define(_eqnparam%d,@<",j + printf "_define(@<_tmpnum>@,_ifelse($#,0,_namenum,$1))dnl\n" + printf "_ifelse(" + for (i=0; i<numNames; i++) + { + printf "_tmpnum,@<%d>@,\"%s\",dnl\n",i+1,args[j,i] + if (length(args[j,i]) > length(long)) + long = args[j,i] + } + printf "???)>@)dnl\n" + } +# The following stuff is designed to find the longest argument so that +# the '.TP' indentation can be set in the first instaciation of _phead +# (thus the use of the '_first' macro as a flag). Things are complicated +# by the possibility of multiple arguments in the call to _phead. +# This is what _makelist is for: to turn a space separted multiple +# argument list into a comma separated one (commas can't be used in +# the original list because they have special meaning to m4). +# Unfortunately, this means that (currently) if the longest string is +# a multiple argument, the indentation will only be right if it occurs +# in the first _phead. This is because only the API file is scanned +# for arguments, and not the man page file, so this script can't know +# which instance of phead has the longest (multiple) argument. + + long = "\\fI" long "\\fP" + printf "_define(_phead,@<dnl\n" + printf "_ifdef(@<_first>@,@<.TP>@,@<.TP \\w'" + printf "_ifelse(_eval(_len(%s)>_len(_makelist($1))),1,",long + printf "%s,translit(_makelist($1),@<+>@,@<\\>@))\\ \\ 'u dnl\n", long + printf "_define(_first,first)>@)\n" + printf "translit(_makelist($1),@<+>@,@<,>@)>@)dnl\n" + printf "_define(_cmnd,@<_ifelse($1,@<>@,\\f3" prefix "@<>@_cname\\fP,dnl\n" + printf "\\f3" prefix "$1\\fP)>@)dnl\n" + printf "_define(_glcmnd,@<_ifelse($1,@<>@,\\f3gl@<>@_cname\\fP,dnl\n" + printf "\\f3gl$1\\fP)>@)dnl\n" + printf "_define(_glucmnd,@<_ifelse($1,@<>@,\\f3glu@<>@_cname\\fP,dnl\n" + printf "\\f3glu$1\\fP)>@)dnl\n" + printf "_define(_xcmnd,@<_ifelse($1,@<>@,\\f3X@<>@_cname\\fP,dnl\n" + printf "\\f3X$1\\fP)>@)dnl\n" +# printf "syscmd(@<${maCdIr}/mkname.awk>@ ${maCdIr}/pglspec >_tmpnam)dnl\n" +# printf "_include(_tmpnam)syscmd(rm -f _tmpnam)>@))dnl\n" +} + + + +# +# function to make the troff to typeset the function header +# +function makeHead(fname,type,i) +{ + fname = prefix fname + headString = sprintf("%s \\f3%s\\fP(",fortranize(type,0),fname) + if (numargs > 0) + { + headString = headString "\n" + if (numargs > 1) + { + headString = headString sprintf("%s,\n",fortranize(targs[1,i],1)) + headString = headString ".nf\n" + headString = headString sprintf(".ta \\w'\\f3%s \\fP%s( 'u\n",fortranize(type,0),fname) + for (j=2; j<=numargs-1; j++) + headString = headString sprintf("\t%s,\n",fortranize(targs[j,i],1)) + headString = headString sprintf("\t%s )\n",fortranize(targs[numargs,i],1)) + headString = headString ".fi\n" + } + else + headString = headString sprintf("%s )\n.nf\n.fi\n",fortranize(targs[numargs,i],1)) + } + else + headString = headString " )\n.nf\n.fi\n" + return headString +} + + +# Convert a gl C type to the FORTRAN equivalent +# If flag = 1, then convert a function argument; +# else, convert a function return type. + +function fortranize(typedArg,flag) +{ + item = typedArg; + if (flag == 0) { # return type + sub(/void/,"SUBROUTINE",item) + } + # function argument or return type + if (item ~ /\*/) { + sub(/\*/,"",item); + sub(/const /,"",item) + if (item ~ /GLubyte/) + sub(/GLubyte/,"CHARACTER*256",item) + else + sub(/GL[^ ]*/,"CHARACTER*8",item) + } + else { + sub(/GLu*byte/,"INTEGER*1",item) + sub(/GLu*short/,"INTEGER*2",item) + sub(/GLu*int/,"INTEGER*4",item) + sub(/GLsizei/,"INTEGER*4",item) + sub(/GLfloat/,"REAL*4",item) + sub(/GLclampf/,"REAL*4",item) + sub(/GLdouble/,"REAL*8",item) + sub(/GLclampd/,"REAL*4",item) + sub(/GLboolean/,"LOGICAL*1",item) + sub(/GLenum/,"INTEGER*4",item) + sub(/GLbitfield/,"INTEGER*4",item) + } + return item +} + + +# Generates 'args' of untyped argument names +# Also generates 'targs' of typed argument names and 'nargs', the number +# of arguments. + +function addargs(arglist,i) +{ +# +# First strip leading '(' and trailing ')' +# + if (substr(arglist,1,1) == "(") + arglist = substr(arglist,2,length(arglist)) + while (substr(arglist,1,1) == " ") + arglist = substr(arglist,2,length(arglist)) + + if (substr(arglist,length(arglist),1) == ")") + arglist = substr(arglist,1,length(arglist)-1) + while (substr(arglist,length(arglist),1) == " ") + arglist = substr(arglist,1,length(arglist)-1) + + numargs = split(arglist,newargs, ",[ \t]") + if (newargs[1] == "void") + { + numargs = 0; + targs[1,i] = newargs[1]; + args[1,i] = newargs[1]; + } + if (nargs[i] < numargs) + nargs[i] = numargs; + + for (j=1; j<=numargs; j++) + { +# targs[j,i] italicizes the argument but not the type + targs[j,i] = newargs[j] + numWords = split(targs[j,i],words,"[ \t]") + args[j,i] = words[numWords] + targs[j,i] = words[1] + for (k=2; k<=numWords-1; k++) + targs[j,i] = targs[j,i] " " words[k] + targs[j,i] = targs[j,i] " \\fI" words[numWords] "\\fP" + sub(/\[.*\]/,"",args[j,i]) + gsub("[*()]","",args[j,i]) + } +} + +# +# Parse and save away the _names(name,regexp) declarations in the file +# for later use in matching the entries in the API file. +# + +function getnames(file) +{ + numNames = 0 + fname = file ".gl" + while (getline < fname) + { + if (index($0,"_names(") != 0) + { + start = index($0,"_names(") + 7 + stuff = substr($0,start,length($0)-start) + split(stuff,things,",") + names[numNames] = things[1] + regExps[numNames] = things[2] + numNames++ + } + } + close(fname) + if (numNames == 0) + { + names[0] = file + regExps[0] = "[1-9]*u*[lbsifd]*v*" + numNames++ + } +} diff --git a/nx-X11/extras/ogl-sample/main/doc/man/macros/setup b/nx-X11/extras/ogl-sample/main/doc/man/macros/setup new file mode 100644 index 000000000..74a69369c --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/macros/setup @@ -0,0 +1,36 @@ +define(`_define',defn(`define'))dnl +define(`_ifdef',defn(`ifdef'))dnl +define(`_ifelse',defn(`ifelse'))dnl +define(`_eval',defn(`eval'))dnl +define(`_len',defn(`len'))dnl +define(`_incr',defn(`incr'))dnl +changecom()dnl +define(`_C_',defn(`dnl'))dnl +undefine(`define')undefine(`ifdef')dnl +undefine(`shift')undefine(`divert')undefine(`incr')dnl +undefine(`decr')undefine(`eval')undefine(`len')undefine(`index')dnl +undefine(`substr')undefine(`include')dnl +changequote(@<,>@)dnl +_define(_makelist,@<_dolist(translit($1,@< >@,@<,>@))>@)dnl +_define(_dolist,@<dnl +_ifelse($#,1,$1,$#,2,$1@<+ >@$2,$#,3,$1@<+ >@$2@<+ >@$3,$#,dnl +4,$1@<+ >@$2@<+ >@$3@<+ >@$4)>@)dnl +_define(_namenum,@<0>@)dnl +_define(_tmpnam,maketemp)dnl +_define(_const,@<\%\f3GL_$1\fP>@)dnl +_define(_arbconst,@<\%\f3GL_$1_ARB\fP>@)dnl +_define(_arbconstidx,@<\%\f3GL_$1\fP$i$\f3_ARB\fP>@)dnl +_define(_xconst,@<\%\f3$1\fP>@)dnl +_define(_extname,@<\%\f3$1\fP>@)dnl +_define(_arbstring,@<\%\f3GL_ARB_$1\fP>@)dnl +_define(_extstring,@<\%\f3GL_$1\fP>@)dnl +_define(_glxextstring,@<\%\f3GLX_$1\fP>@)dnl +_define(_glxconst,@<\%\f3GLX_$1\fP>@)dnl +_define(_glxerror,@<\%\f3GLX$1\fP>@)dnl +_define(_gluconst,@<\%\f3GLU_$1\fP>@)dnl +_define(_econst,@<bold \%GL_$1>@)dnl +_define(_hex,@<\%0x$1>@)dnl +_define(_setup,@<_ifdef(@<_filters>@,@<'\"! _filters() | mmdoc +>@)dnl +'\"macro stdmacro +>@)dnl diff --git a/nx-X11/extras/ogl-sample/main/doc/man/macros/setup.ftn b/nx-X11/extras/ogl-sample/main/doc/man/macros/setup.ftn new file mode 100644 index 000000000..b7ed065e9 --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/macros/setup.ftn @@ -0,0 +1,31 @@ +define(`_define',defn(`define'))dnl +define(`_ifdef',defn(`ifdef'))dnl +define(`_ifelse',defn(`ifelse'))dnl +define(`_eval',defn(`eval'))dnl +define(`_len',defn(`len'))dnl +define(`_incr',defn(`incr'))dnl +define(`_sinclude',defn(`sinclude'))dnl +changecom()dnl +define(`_C_',defn(`dnl'))dnl +undefine(`define')undefine(`ifdef')dnl +undefine(`shift')undefine(`divert')undefine(`incr')dnl +undefine(`decr')undefine(`eval')undefine(`len')undefine(`index')dnl +undefine(`substr')undefine(`include')undefine(`sinclude')dnl +changequote(@<,>@)dnl +_define(_makelist,@<_dolist(translit($1,@< >@,@<,>@))>@)dnl +_define(_dolist,@<dnl +_ifelse($#,1,$1,$#,2,$1@<+ >@$2,$#,3,$1@<+ >@$2@<+ >@$3,$#,dnl +4,$1@<+ >@$2@<+ >@$3@<+ >@$4)>@)dnl +_define(_namenum,@<0>@)dnl +_define(_tmpnam,maketemp)dnl +_define(_const,@<\f3GL_$1\fP>@)dnl +_define(_xconst,@<\f3$1\fP>@)dnl +_define(_glxconst,@<\f3GLX_$1\fP>@)dnl +_define(_glxerror,@<\f3GLX$1\fP>@)dnl +_define(_gluconst,@<\f3GLU_$1\fP>@)dnl +_define(_econst,@<bold GL_$1>@)dnl +_define(_hex,@<@<$>@$1>@)dnl +_define(_setup,@<_ifdef(@<_filters>@,@<'\"! _filters() | mmdoc +>@)dnl +'\"macro stdmacro +>@)dnl |