home *** CD-ROM | disk | FTP | other *** search
- #define TAB_SIZE 8
-
- struct art_list {
- struct art_list *next_list;
- int first_article;
- int last_article;
- };
-
- struct newsrc_item {
- struct newsrc_item *next_item;
- struct newsrc_item *previous_item;
- char *newsrc_grp_name;
- int newsrc_subscribed;
- struct art_list *read_list;
- };
-
-
- struct subj_line {
- struct subj_line *subj_next;
- int art_no;
- char *subject;
- };
-
-
- extern struct newsrc_item *newsrc_list;
- extern struct newsrc_item *newsrc_last;
- extern struct art_list *free_arts;
-
- extern struct subj_line *subjects;
-
- extern int last_subj_art;
-
- extern int cmd; /* The current command character */
-
- extern char art_format[FILENAME_MAX];
-
- extern struct newsrc_item *active_group; /* The "current" newsgroup being read */
- extern struct newsrc_item *previous_group; /* The last active_group */
-
- extern int cmd; /* The current command character */
-
- extern char *cwd; /* The initial drive:directory */
- extern FILE *this_article;
- extern FILE *last_article;
-
- /* rn options */
- extern int erase_for_more; /* -e sets TRUE */
- extern int supress_initial; /* -s[count] sets it to count (0 if absent) */
- extern int dont_flush; /* -T ses TRUE */
-
-
-
- /* rn strings
-
- The following strings are implemented (at least partially)
-
- %a Current article number
- %B Byte offset in file of start of file save
- (0 for save; start of body for write)
- %c Current newsgroup, directory form
- %C Current newsgroup, dot form
- %f "From:" line ("Reply-To:" if it exists)
- %F "Newsgroups:" for new article constructed from
- "Newsgroups:" ("Followup-To:") of current
- article
- %H Host name
- %i "Message-I.D.:"
- %L Your Login name
- %O Original working directory
- %p Your private news directory, ~/News
- %P Public news directory
- %s Subject with all "Re:"s and ???
- %S Subject with one "Re:" stripped off
- %T "To:" line for reply. Constructed from the "Path:"
- %t "To:" line for reply. Constructed from "From:"
- ("Reply-To:") line
- %u Number of unread articles in the current newsgroup
- %z Length of current article in bytes
- %~ Your home directory
-
- The following strings are NOT implemented at this time
-
- %A Full name of current article (%P/%c/%a)
- %b Destination of last save
- %d Full name of newsgroup directory (%P/%c
- %D "Distribution:" line from current article
- %h Nmae of header file to pass to mail or news poster
- %I reference indication mark
- %l administrator's login
- %m current mode
- %M number of articles Marked
- %n
- %o
- %r
- %R
- %U Number unread articles not counting this one
- %x
- %.
- %$
- %/
- %(name)
- %[name]
- %`command`
- %"prompt"
- %(test=pattern?then:else)
- %digit
-
- */
-
- /* The following "strings" are stored as numbers
-
- %a int current_article
- %B long last_start_of_save
- %u int current_unread
- %z long current_article_length
-
- */
-
- extern int current_article;
- extern long last_start_of_save;
- extern long current_start_of_body;
- extern int current_unread;
- extern long current_article_length;
-
- extern char *current_to;
- extern char *current_path_to;
- extern char *message_ID;
- extern char *current_subject;
- extern char *current_refs;
- extern char *current_newsgroups;
- extern char *current_followup;
- extern char *current_reply_to;
- extern char *current_distribution;
-
-
- extern void check_alloc(void *ptr);
- char *expand(char *rn_string, int *cnt);
- void reply(FILE *f, int cmd);
- void clear_screen(void);
- void save_article(FILE *f, int cmd);
- void update_list(int article);
- void unmark_article(int article);
- struct subj_line *get_subj_line(int art_no);
- void catch_up_subj(int article);
- char *subj_str(int art_no) ;
- char *get_subject_line(FILE *f);
- void flush_kybd(void);
- int is_read (int article);
- int do_article(FILE *art, int decrypt, int art_no, int verbose);
-