Annotation of libwww/Library/src/HTAnchor.html, revision 2.42

2.7       timbl       1: <HTML>
                      2: <HEAD>
2.42    ! frystyk     3:   <!-- Changed by: Henrik Frystyk Nielsen, 17-Apr-1996 -->
        !             4:   <TITLE>W3C Reference Library libwww Anchor Class and Link Class</TITLE>
2.8       timbl       5: </HEAD>
2.6       timbl       6: <BODY>
2.42    ! frystyk     7: <H1>
        !             8:   The Anchor Class and the Link Class
        !             9: </H1>
2.15      frystyk    10: <PRE>
                     11: /*
2.23      frystyk    12: **     (c) COPYRIGHT MIT 1995.
2.15      frystyk    13: **     Please first read the full copyright statement in the file COPYRIGH.
                     14: */
                     15: </PRE>
2.42    ! frystyk    16: <P>
        !            17: An anchor represents a region of a hypertext document which is linked to
        !            18: another anchor in the same or a different document. Another name for anchors
        !            19: would be URLs as an anchor represents all we know about a URL - including
        !            20: where it points to and who points to it.&nbsp;Because the anchor objects
        !            21: represent the part of the Web, the application has been in touch, it is often
        !            22: useful to maintain the anchors throughout the lifetime of the application.
        !            23: It would actually be most useful if we had persistent anchors so that an
        !            24: application could build up a higher knowledge about the Web topology. In
        !            25: this module you find:
        !            26: <P>
2.18      frystyk    27: <UL>
2.42    ! frystyk    28:   <LI>
        !            29:     <A HREF="#creation">Creation and deletion methods</A>
        !            30:   <LI>
        !            31:     <A HREF="#links">Manipulation of Link Objects</A>
        !            32:   <LI>
        !            33:     <A HREF="#access">Access Methods for information</A>
2.18      frystyk    34: </UL>
2.42    ! frystyk    35: <P>
        !            36: This module is implemented by <A HREF="HTAnchor.c">HTAnchor.c</A>, and it
        !            37: is a part of the <A HREF="http://www.w3.org/pub/WWW/Library/"> W3C Reference
        !            38: Library</A>.
2.15      frystyk    39: <PRE>
                     40: #ifndef HTANCHOR_H
1.1       timbl      41: #define HTANCHOR_H
2.24      frystyk    42: 
2.17      frystyk    43: #include "HTList.h"
                     44: #include "HTAtom.h"
2.25      frystyk    45: #include "HTMethod.h"
2.18      frystyk    46: </PRE>
2.42    ! frystyk    47: <H2>
        !            48:   Types defined and used by the Anchor Object
        !            49: </H2>
        !            50: <P>
        !            51: This is a set of videly used type definitions used through out the Library:
2.24      frystyk    52: <PRE>
2.35      frystyk    53: typedef struct _HTLink         HTLink;
                     54: 
2.24      frystyk    55: typedef HTAtom * HTFormat;
                     56: typedef HTAtom * HTLevel;                     /* Used to specify HTML level */
2.40      frystyk    57: typedef HTAtom * HTEncoding;                               /* C-E and C-T-E */
2.24      frystyk    58: typedef HTAtom * HTCharset;
                     59: typedef HTAtom * HTLanguage;
2.35      frystyk    60: 
                     61: typedef struct _HTAnchor       HTAnchor;
                     62: typedef struct _HTParentAnchor HTParentAnchor;
                     63: typedef struct _HTChildAnchor  HTChildAnchor;
2.24      frystyk    64: </PRE>
2.42    ! frystyk    65: <H2>
        !            66:   <A NAME="links">The Link Class</A>
        !            67: </H2>
        !            68: <P>
        !            69: Anchors are bound together using link objects. Each anchor can be the source
        !            70: or destination of zero, one, or more links from and to other anchors.
        !            71: <H3>
        !            72:   Link Destination
        !            73: </H3>
2.18      frystyk    74: <PRE>
2.35      frystyk    75: extern BOOL HTLink_setDestination (HTLink * link, HTAnchor * dest);
                     76: extern HTAnchor * HTLink_destination (HTLink * link);
2.18      frystyk    77: </PRE>
2.42    ! frystyk    78: <H3>
        !            79:   Link Result
        !            80: </H3>
        !            81: <P>
        !            82: When a link has been used for posting an object from a source to a destination
        !            83: link, the result of the operation is stored as part of the link information.
2.18      frystyk    84: <PRE>
2.35      frystyk    85: typedef enum _HTLinkResult {
2.28      frystyk    86:     HT_LINK_INVALID = -1,
                     87:     HT_LINK_NONE = 0,
                     88:     HT_LINK_ERROR,
                     89:     HT_LINK_OK
                     90: } HTLinkResult;
                     91: 
2.35      frystyk    92: extern BOOL HTLink_setResult (HTLink * link, HTLinkResult result);
                     93: extern HTLinkResult HTLink_result (HTLink * link);
                     94: </PRE>
2.42    ! frystyk    95: <H3>
        !            96:   Link Method
        !            97: </H3>
        !            98: <P>
2.35      frystyk    99: The method used in a link can be PUT, or POST, for example
                    100: <PRE>
                    101: extern BOOL HTLink_setMethod (HTLink * link, HTMethod method);
                    102: extern HTMethod HTLink_method (HTLink * link);
                    103: </PRE>
2.42    ! frystyk   104: <H3>
        !           105:   Link Type
        !           106: </H3>
        !           107: <P>
2.35      frystyk   108: This is used for typed links.
                    109: <PRE>
                    110: typedef HTAtom * HTLinkType;
                    111: 
                    112: extern BOOL HTLink_setType (HTLink * link, HTLinkType type);
                    113: extern HTLinkType HTLink_type (HTLink * link);
                    114: </PRE>
2.42    ! frystyk   115: <H2>
        !           116:   Relations between Links and Anchors
        !           117: </H2>
        !           118: <H3>
        !           119:   Link this Anchor to another given one
        !           120: </H3>
        !           121: <P>
        !           122: A single anchor may have many outgoing links of which the default is the
        !           123: <EM>main link</EM>. If one already exists then this new link is simply added
        !           124: to the list.
2.35      frystyk   125: <PRE>
                    126: extern BOOL HTAnchor_link      (HTAnchor *     source,
                    127:                                 HTAnchor *     destination,
                    128:                                 HTLinkType     type,
                    129:                                 HTMethod       method);
                    130: </PRE>
2.42    ! frystyk   131: <H3>
        !           132:   Find the Link Object that Binds two Anchors
        !           133: </H3>
        !           134: <P>
        !           135: If the destination anchor is a target of a link from the source anchor then
        !           136: return the link object, else NULL.
2.35      frystyk   137: <PRE>
                    138: extern HTLink * HTAnchor_findLink (HTAnchor *src, HTAnchor *dest);
                    139: </PRE>
2.42    ! frystyk   140: <H3>
        !           141:   Find destination with given relationship
        !           142: </H3>
        !           143: <P>
2.35      frystyk   144: Return the anchor with a given typed link.
                    145: <PRE>
                    146: extern HTAnchor * HTAnchor_followTypedLink (HTAnchor *me, HTLinkType type);
                    147: </PRE>
2.42    ! frystyk   148: <H3>
        !           149:   Handling the Main Link
        !           150: </H3>
        !           151: <P>
2.35      frystyk   152: Any outgoing link can at any time be the main destination.
                    153: <PRE>
                    154: extern BOOL HTAnchor_setMainLink       (HTAnchor * anchor, HTLink * link);
                    155: extern HTLink * HTAnchor_mainLink      (HTAnchor * anchor);
                    156: 
                    157: extern HTAnchor * HTAnchor_followMainLink (HTAnchor * anchor);
                    158: </PRE>
2.42    ! frystyk   159: <H3>
        !           160:   Handling the Sub Links
        !           161: </H3>
2.35      frystyk   162: <PRE>
                    163: extern BOOL HTAnchor_setSubLinks       (HTAnchor * anchor, HTList * list);
                    164: extern HTList * HTAnchor_subLinks      (HTAnchor * anchor);
2.18      frystyk   165: </PRE>
2.42    ! frystyk   166: <H3>
        !           167:   Move Link Information
        !           168: </H3>
        !           169: <P>
        !           170: Move all link information form one anchor to another. This is useful when
        !           171: we get a redirection on a request and want to inherit the link information
        !           172: to the new anchor and change the link information in the old one to "redirect".
2.35      frystyk   173: <PRE>
                    174: extern BOOL HTAnchor_moveAllLinks      (HTAnchor *src, HTAnchor *dest);
                    175: </PRE>
2.42    ! frystyk   176: <H3>
        !           177:   Remove Link Information
        !           178: </H3>
        !           179: <P>
2.35      frystyk   180: Delete link information between two or more anchors
                    181: <PRE>
                    182: extern BOOL HTAnchor_removeLink                (HTAnchor *src, HTAnchor *dest);
                    183: extern BOOL HTAnchor_removeAllLinks    (HTAnchor * me);
                    184: </PRE>
2.42    ! frystyk   185: <H3>
        !           186:   Move a child anchor to the head of the list of its siblings
        !           187: </H3>
        !           188: <P>
        !           189: This is to ensure that an anchor which might have already existed is put
        !           190: in the correct order as we load the document.
2.35      frystyk   191: <PRE>
                    192: extern void HTAnchor_makeLastChild     (HTChildAnchor *me);
                    193: </PRE>
2.42    ! frystyk   194: <H2>
        !           195:   The Anchor Class
        !           196: </H2>
        !           197: <P>
        !           198: We have three variants of the Anchor object - I guess some would call them
        !           199: superclass and subclasses ;-) <A NAME="Generic"></A>
        !           200: <H3>
        !           201:   <A NAME="Generic">Generic Anchor Class</A>
        !           202: </H3>
        !           203: <P>
        !           204: This is the super class of anchors. We often use this as an argument to the
        !           205: functions that both accept parent anchors and child anchors. We separate
        !           206: the first link from the others to avoid too many small mallocs involved by
        !           207: a list creation. Most anchors only point to one place. <A NAME="parent"></A>
        !           208: <H3>
        !           209:   <A NAME="parent">Anchor for a Parent Object</A>
        !           210: </H3>
        !           211: <P>
        !           212: These anchors points to the whole contents of a graphic object (document).
        !           213: The parent anchor of a parent anchor is itself. The parent anchor now contains
        !           214: all meta information about the object. This is largely the entity headers
        !           215: in the HTTP specification. <A NAME="child"></A>
        !           216: <H3>
        !           217:   <A NAME="child">Anchor for a Child Object</A>
        !           218: </H3>
        !           219: <P>
        !           220: A child anchor is a anchor object that points to a subpart of a graphic object
        !           221: (document) <A NAME="creation"></A>
        !           222: <H2>
        !           223:   <A NAME="creation">Creation and Deletion Methods</A>
        !           224: </H2>
        !           225: <P>
        !           226: After we have defined the data structures we must define the methods that
        !           227: can be used on them. All anchors are kept in an internal hash table so that
        !           228: they are easier to find again.
        !           229: <H3>
        !           230:   Find/Create a Parent Anchor
        !           231: </H3>
        !           232: <P>
        !           233: This one is for a reference (link) which is found in a document, and might
        !           234: not be already loaded. The parent anchor returned can either be created on
        !           235: the spot or is already in the hash table.
2.18      frystyk   236: <PRE>
2.37      frystyk   237: extern HTAnchor * HTAnchor_findAddress         (const char * address);
2.18      frystyk   238: </PRE>
2.42    ! frystyk   239: <H3>
        !           240:   Find/Create a Child Anchor
        !           241: </H3>
        !           242: <P>
        !           243: This one is for a new child anchor being edited into an existing document.
        !           244: The parent anchor must already exist but the child returned can either be
        !           245: created on the spot or is already in the hash table. The <EM>tag</EM> is
        !           246: the part that's after the '#' sign in a URI.
2.18      frystyk   247: <PRE>
2.32      frystyk   248: extern HTChildAnchor * HTAnchor_findChild      (HTParentAnchor *parent,
2.37      frystyk   249:                                                 const char *   tag);
2.7       timbl     250: </PRE>
2.42    ! frystyk   251: <H3>
        !           252:   Find/Create a Child Anchor and Link to Another Parent
        !           253: </H3>
        !           254: <P>
        !           255: Find a child anchor anchor with a given parent and possibly a <EM>tag</EM>,
        !           256: and (if passed) link this child to the URI given in the <EM>href</EM>. As
        !           257: we really want typed links to the caller should also indicate what the type
        !           258: of the link is (see HTTP spec for more information). The link is
        !           259: <EM>relative</EM> to the address of the parent anchor.
2.18      frystyk   260: <PRE>
                    261: extern HTChildAnchor * HTAnchor_findChildAndLink
2.32      frystyk   262:                (HTParentAnchor * parent,               /* May not be 0 */
2.37      frystyk   263:                const char * tag,                       /* May be "" or 0 */
                    264:                const char * href,                      /* May be "" or 0 */
2.35      frystyk   265:                HTLinkType ltype);                      /* May be 0 */
2.18      frystyk   266: </PRE>
2.42    ! frystyk   267: <H3>
        !           268:   Delete an Anchor
        !           269: </H3>
        !           270: <P>
        !           271: All outgoing links from parent and children are deleted, and this anchor
        !           272: is removed from the sources list of all its targets. We also delete the targets.
        !           273: If this anchor's source list is empty, we delete it and its children.
2.18      frystyk   274: <PRE>
2.32      frystyk   275: extern BOOL HTAnchor_delete    (HTParentAnchor *me);
2.20      frystyk   276: </PRE>
2.42    ! frystyk   277: <H3>
        !           278:   Delete all Anchors
        !           279: </H3>
        !           280: <P>
        !           281: Deletes <EM>all</EM> anchors and return a list of all the objects (hyperdoc)
        !           282: hanging of the parent anchors found while doing it. The application may keep
        !           283: its own list of <CODE>HyperDoc</CODE>s, but this function returns it anyway.
        !           284: It is <EM>always</EM> for the application to delete any
        !           285: <CODE>HyperDoc</CODE>s. If NULL then no hyperdocs are returned. Return YES
        !           286: if OK, else NO.
        !           287: <P>
        !           288: <B>Note:</B> This function is different from cleaning up the history list!
2.20      frystyk   289: <PRE>
2.32      frystyk   290: extern BOOL HTAnchor_deleteAll (HTList * objects);
2.18      frystyk   291: </PRE>
2.42    ! frystyk   292: <H2>
        !           293:   <A NAME="access">Anchor Methods</A>
        !           294: </H2>
        !           295: <P>
2.18      frystyk   296: These functions should be used to access information within the anchor
                    297: structures.
2.42    ! frystyk   298: <H3>
        !           299:   Relations to Other Anchors
        !           300: </H3>
        !           301: <H4>
        !           302:   Who is Parent?
        !           303: </H4>
        !           304: <P>
2.18      frystyk   305: For parent anchors this returns the anchor itself
                    306: <PRE>
2.32      frystyk   307: extern HTParentAnchor * HTAnchor_parent        (HTAnchor *me);
2.18      frystyk   308: </PRE>
2.42    ! frystyk   309: <H4>
        !           310:   Does it have any Anchors within it?
        !           311: </H4>
2.18      frystyk   312: <PRE>
2.32      frystyk   313: extern BOOL HTAnchor_hasChildren       (HTParentAnchor *me);
2.18      frystyk   314: </PRE>
2.42    ! frystyk   315: <H3>
        !           316:   Binding a Data Object to an Anchor
        !           317: </H3>
        !           318: <P>
        !           319: A parent anchor can have a data object bound to it. This data object does
        !           320: can for example be a parsed version of a HTML that knows how to present itself
        !           321: to the user, or it can be an unparsed data object. It's completely free for
        !           322: the application to use this possibility, but a typical usage would to manage
        !           323: the data object as part of a memory cache.
2.18      frystyk   324: <PRE>
2.35      frystyk   325: extern void HTAnchor_setDocument       (HTParentAnchor *me, void * doc);
                    326: extern void * HTAnchor_document                (HTParentAnchor *me);
2.18      frystyk   327: </PRE>
2.42    ! frystyk   328: <H3>
        !           329:   URI Information of Anchors
        !           330: </H3>
        !           331: <P>
        !           332: There are two addresses of an anchor. The URI that was passed when the anchor
        !           333: was crated and the physical address that's used when the URI is going to
        !           334: be requested. The two addresses may be different if the request is going
        !           335: through a proxy or a gateway.
        !           336: <H4>
        !           337:   Get URI Address
        !           338: </H4>
        !           339: <P>
        !           340: Returns the full URI of the anchor, child or parent as a malloc'd string
        !           341: to be freed by the caller as when the anchor was created.
        !           342: <PRE>
        !           343: extern char * HTAnchor_address         (HTAnchor * me);
        !           344: </PRE>
        !           345: <H3>
        !           346:   Cache Information
        !           347: </H3>
        !           348: <P>
        !           349: If the cache manager finds a cached object, it is registered in the anchor
        !           350: object. This way the <A HREF="HTFile.html">file loader</A> knows that it
        !           351: is a MIME data object. The cache manager does not know whether the data object
        !           352: is out of date (for example if a <EM>Expires:</EM> header is in the MIME
        !           353: header. This is for the <A HREF="HTMIME.html">MIME parser</A> to find out.
        !           354: <PRE>
        !           355: extern BOOL HTAnchor_cacheHit          (HTParentAnchor * me);
        !           356: extern void HTAnchor_setCacheHit       (HTParentAnchor * me, BOOL cacheHit);
        !           357: </PRE>
        !           358: <H3>
        !           359:   Physical address
        !           360: </H3>
        !           361: <P>
2.18      frystyk   362: Contains the physical address after we haved looked for proxies etc.
                    363: <PRE>
2.32      frystyk   364: extern char * HTAnchor_physical                (HTParentAnchor * me);
2.18      frystyk   365: 
2.32      frystyk   366: extern void HTAnchor_setPhysical       (HTParentAnchor * me, char * protocol);
2.7       timbl     367: </PRE>
2.42    ! frystyk   368: <H3>
        !           369:   Is the Anchor searchable?
        !           370: </H3>
        !           371: <PRE>
        !           372: extern void HTAnchor_clearIndex                (HTParentAnchor * me);
        !           373: extern void HTAnchor_setIndex          (HTParentAnchor * me);
        !           374: extern BOOL HTAnchor_isIndex           (HTParentAnchor * me);
        !           375: </PRE>
        !           376: <H3>
        !           377:   Title handling
        !           378: </H3>
        !           379: <P>
        !           380: We keep the title in the anchor as we then can refer to it later in the history
        !           381: list etc. We can also obtain the title element if it is passed as a HTTP
        !           382: header in the response. Any title element found in an HTML document will
        !           383: overwrite a title given in a HTTP header.
2.18      frystyk   384: <PRE>
2.37      frystyk   385: extern const char * HTAnchor_title     (HTParentAnchor *me);
2.18      frystyk   386: 
2.32      frystyk   387: extern void HTAnchor_setTitle          (HTParentAnchor *me,
2.37      frystyk   388:                                         const char *   title);
2.18      frystyk   389: 
2.32      frystyk   390: extern void HTAnchor_appendTitle       (HTParentAnchor *me,
2.37      frystyk   391:                                         const char *   title);
2.18      frystyk   392: </PRE>
2.42    ! frystyk   393: <H3>
        !           394:   Media Types (Content-Type)
        !           395: </H3>
2.18      frystyk   396: <PRE>
2.32      frystyk   397: extern HTFormat HTAnchor_format                (HTParentAnchor *me);
                    398: extern void HTAnchor_setFormat         (HTParentAnchor *me,
                    399:                                         HTFormat       form);
2.18      frystyk   400: </PRE>
2.42    ! frystyk   401: <H3>
        !           402:   Charset parameter to Content-Type
        !           403: </H3>
2.18      frystyk   404: <PRE>
2.32      frystyk   405: extern HTCharset HTAnchor_charset      (HTParentAnchor *me);
                    406: extern void HTAnchor_setCharset                (HTParentAnchor *me,
                    407:                                         HTCharset      charset);
2.18      frystyk   408: </PRE>
2.42    ! frystyk   409: <H3>
        !           410:   Level parameter to Content-Type
        !           411: </H3>
2.21      frystyk   412: <PRE>
2.32      frystyk   413: extern HTLevel HTAnchor_level          (HTParentAnchor * me);
                    414: extern void HTAnchor_setLevel          (HTParentAnchor * me,
                    415:                                         HTLevel        level);
2.22      frystyk   416: </PRE>
2.42    ! frystyk   417: <H3>
        !           418:   Content Language
        !           419: </H3>
2.22      frystyk   420: <PRE>
2.39      frystyk   421: extern HTList * HTAnchor_language      (HTParentAnchor * me);
                    422: extern BOOL HTAnchor_addLanguage       (HTParentAnchor *me, HTLanguage lang);
2.21      frystyk   423: </PRE>
2.42    ! frystyk   424: <H3>
        !           425:   Content Encoding
        !           426: </H3>
2.18      frystyk   427: <PRE>
2.39      frystyk   428: extern HTList * HTAnchor_encoding      (HTParentAnchor * me);
                    429: extern BOOL HTAnchor_addEncoding       (HTParentAnchor * me, HTEncoding enc);
2.18      frystyk   430: </PRE>
2.42    ! frystyk   431: <H3>
        !           432:   Content Transfer Encoding
        !           433: </H3>
2.18      frystyk   434: <PRE>
2.40      frystyk   435: extern HTEncoding HTAnchor_transfer    (HTParentAnchor *me);
                    436: extern void HTAnchor_setTransfer       (HTParentAnchor *me,
                    437:                                         HTEncoding             transfer);
2.18      frystyk   438: </PRE>
2.42    ! frystyk   439: <H3>
        !           440:   Content Length
        !           441: </H3>
2.18      frystyk   442: <PRE>
2.41      frystyk   443: extern long int HTAnchor_length        (HTParentAnchor * me);
                    444: extern void HTAnchor_setLength (HTParentAnchor * me, long int length);
                    445: extern void HTAnchor_addLength (HTParentAnchor * me, long int deltalength);
2.18      frystyk   446: </PRE>
2.42    ! frystyk   447: <H3>
        !           448:   Allowed methods (Allow)
        !           449: </H3>
2.18      frystyk   450: <PRE>
2.36      frystyk   451: extern HTMethod HTAnchor_methods (HTParentAnchor * me);
                    452: extern void HTAnchor_setMethods (HTParentAnchor * me, HTMethod methodset);
                    453: extern void HTAnchor_appendMethods (HTParentAnchor * me, HTMethod methodset);
2.18      frystyk   454: </PRE>
2.42    ! frystyk   455: <H3>
        !           456:   Version
        !           457: </H3>
2.18      frystyk   458: <PRE>
2.35      frystyk   459: extern char * HTAnchor_version (HTParentAnchor * me);
2.37      frystyk   460: extern void HTAnchor_setVersion        (HTParentAnchor * me, const char * version);
2.28      frystyk   461: </PRE>
2.42    ! frystyk   462: <H3>
        !           463:   Date
        !           464: </H3>
        !           465: <P>
2.28      frystyk   466: Returns the date that was registered in the RFC822 header "Date"
                    467: <PRE>
2.35      frystyk   468: extern time_t HTAnchor_date            (HTParentAnchor * me);
2.37      frystyk   469: extern void HTAnchor_setDate           (HTParentAnchor * me, const time_t date);
2.28      frystyk   470: </PRE>
2.42    ! frystyk   471: <H3>
        !           472:   Last Modified Date
        !           473: </H3>
        !           474: <P>
2.28      frystyk   475: Returns the date that was registered in the RFC822 header "Last-Modified"
                    476: <PRE>
2.35      frystyk   477: extern time_t HTAnchor_lastModified    (HTParentAnchor * me);
2.37      frystyk   478: extern void HTAnchor_setLastModified   (HTParentAnchor * me, const time_t lm);
2.28      frystyk   479: </PRE>
2.42    ! frystyk   480: <H3>
        !           481:   Expires Date
        !           482: </H3>
2.28      frystyk   483: <PRE>
2.35      frystyk   484: extern time_t HTAnchor_expires         (HTParentAnchor * me);
2.37      frystyk   485: extern void HTAnchor_setExpires                (HTParentAnchor * me, const time_t exp);
2.18      frystyk   486: </PRE>
2.42    ! frystyk   487: <H3>
        !           488:   Derived from
        !           489: </H3>
2.18      frystyk   490: <PRE>
2.35      frystyk   491: extern char * HTAnchor_derived (HTParentAnchor *me);
2.37      frystyk   492: extern void HTAnchor_setDerived        (HTParentAnchor *me, const char *derived_from);
2.18      frystyk   493: </PRE>
2.42    ! frystyk   494: <H3>
        !           495:   Extra Headers
        !           496: </H3>
        !           497: <P>
2.18      frystyk   498: List of unknown headers coming in from the network. Do not use the
2.42    ! frystyk   499: <CODE>HTAnchor_addExtra()</CODE> function to extra headers here, but use
        !           500: the field in the <A HREF="HTReq.html#z1">request structure</A> for sending
        !           501: test headers.
2.7       timbl     502: <PRE>
2.32      frystyk   503: extern HTList * HTAnchor_Extra         (HTParentAnchor *me);
                    504: extern void HTAnchor_addExtra          (HTParentAnchor *me,
2.37      frystyk   505:                                         const char *   header);
2.18      frystyk   506: </PRE>
2.42    ! frystyk   507: <H3>
        !           508:   Status of Header Parsing
        !           509: </H3>
        !           510: <P>
2.18      frystyk   511: These are primarily for internal use
                    512: <PRE>
2.32      frystyk   513: extern BOOL HTAnchor_headerParsed      (HTParentAnchor *me);
                    514: extern void HTAnchor_setHeaderParsed   (HTParentAnchor *me);
2.7       timbl     515: </PRE>
2.42    ! frystyk   516: <H3>
        !           517:   We want to clear the header information...
        !           518: </H3>
2.18      frystyk   519: <PRE>
2.32      frystyk   520: extern void HTAnchor_clearHeader       (HTParentAnchor *me);
2.10      timbl     521: 
2.18      frystyk   522: #endif /* HTANCHOR_H */
                    523: </PRE>
2.42    ! frystyk   524: <P>
        !           525:   <HR>
2.39      frystyk   526: <ADDRESS>
2.42    ! frystyk   527:   @(#) $Id: HTAnchor.html,v 2.41 1996/04/18 01:41:37 frystyk Exp $
2.39      frystyk   528: </ADDRESS>
2.42    ! frystyk   529: </BODY></HTML>

Webmaster