gih900@csc.anu.oz (Geoff Huston) (12/21/89)
+-+-+-+ Beginning of part 12 +-+-+-+ X `032 V if (upd_client `124`124 (inquire_sts = (cli$present(c$dsc("INQUIRE")) & 1 X))) `123 X if (!*s) strcpy(s,"*"); X--- 1517,1523 ----- X old_lev = news_context; X `032 X if (upd_client) strcpy(s,"*"); X! else parse_newsgroups(s,"",0,0,1); X `032 V if (upd_client `124`124 (inquire_sts = (cli$present(c$dsc("INQUIRE")) & 1 X))) `123 X if (!*s) strcpy(s,"*"); X************** X*** 1558,1564 X if (!len) protocol_val = 0; X else if (!strncmp(tmpstr,"CMUTCP",len)) protocol_val= 1; X else if (!strncmp(tmpstr,"WINTCP",len)) protocol_val= 2; X! else if (!strncmp(tmpstr,"SRITCP",len)) protocol_val= 2; X else if (!strncmp(tmpstr,"TCP",len)) X `032 X #ifdef SRI X--- 1561,1567 ----- X if (!len) protocol_val = 0; X else if (!strncmp(tmpstr,"CMUTCP",len)) protocol_val= 1; X else if (!strncmp(tmpstr,"WINTCP",len)) protocol_val= 2; X! else if (!strncmp(tmpstr,"MULTINETTCP",len)) protocol_val= 2; X else if (!strncmp(tmpstr,"TCP",len)) X `032 X #ifdef MULTINET X************** X*** 1561,1567 X else if (!strncmp(tmpstr,"SRITCP",len)) protocol_val= 2; X else if (!strncmp(tmpstr,"TCP",len)) X `032 X! #ifdef SRI X protocol_val = 3 X #else X #ifdef TWG X--- 1564,1570 ----- X else if (!strncmp(tmpstr,"MULTINETTCP",len)) protocol_val= 2; X else if (!strncmp(tmpstr,"TCP",len)) X `032 X! #ifdef MULTINET X protocol_val = 3 X #else X #ifdef TWG $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSITE.DIFF" $ CHECKSUM_IS = 1682381736 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newssite.c X--- [.news_src]newssite.c X************** X*** 242,247 X strcpy(mail_sig,usr_username); X s_to_lower(mail_sig); X `125 X `032 X *usr_persname = '\0'; X mail_flags = 0; X--- 242,251 ----- X strcpy(mail_sig,usr_username); X s_to_lower(mail_sig); X `125 X+ if (!strchr(mail_sig,'@')) `123 X+ strcat(mail_sig,"@"); X+ strcat(mail_sig,Node_address); X+ `125 X `032 X *usr_persname = '\0'; X mail_flags = 0; $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSITE_H.DIFF" $ CHECKSUM_IS = 292831274 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newssite.h X--- [.news_src]newssite.h X************** X*** 1,7 X /* X **++ X ** FACILITY: X! ** NEWSSITE X ** X ** ABSTRACT: X ** Site tailorable NEWS constant definitions. X--- 1,7 ----- X /* X **++ X ** FACILITY: X! ** NEWSSITE.H X ** X ** ABSTRACT: X ** Site tailorable NEWS constant definitions. X************** X*** 21,26 X ** - Add MIN and MAX expiry times X ** V5.8 2-Mar-1989 GIH X ** - Add RECHECK_TIMER, PATH_CHECK, SYSFILE, DISTFILE X **-- X **/ X `032 X--- 21,28 ----- X ** - Add MIN and MAX expiry times X ** V5.8 2-Mar-1989 GIH X ** - Add RECHECK_TIMER, PATH_CHECK, SYSFILE, DISTFILE X+ **`009V5.9B`00925-Oct-1989`009GIH V+ **`009 - Drop default item lifetime to 20 days (NEWS volumes are increasin Xg) X **-- X **/ X `032 X************** X*** 24,32 X **-- X **/ X `032 X! #define NEWS_VERSION "VMS News - V5.9" X! #define NEWS_VDATE "09-Jul-1989" X! #define NEWS_DDATE "09/07/89" X `032 X /* X * EXP_TIME X--- 26,34 ----- X **-- X **/ X `032 X! #define NEWS_VERSION "VMS News - V5.9C" X! #define NEWS_VDATE "19-Dec-1989" X! #define NEWS_DDATE "19/12/89" X `032 X /* X * EXP_TIME X************** X*** 36,43 X * Newsgroup lifetime (in days): global default. X */ X `032 X! #define EXP_TIME 30 X! #define GRP_TIME 60 X `032 X /* X * NEWS_BATCH_SIZE X--- 38,45 ----- X * Newsgroup lifetime (in days): global default. X */ X `032 X! #define EXP_TIME 20 X! #define GRP_TIME 50 X `032 X /* X * NEWS_BATCH_SIZE X************** X*** 159,164 X #define VMSV5`0091 X `032 X #define NNTP_CACHE 3 X `032 X #define USENET "usenet" X `032 X--- 161,168 ----- X #define VMSV5`0091 X `032 X #define NNTP_CACHE 3 X+`032 X+ #define NEWGROUP_REG 0 X `032 X #define USENET "usenet" X `032 $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSKIM.DIFF" $ CHECKSUM_IS = 1985494834 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsskim.c X--- [.news_src]newsskim.c $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSKIP.DIFF" $ CHECKSUM_IS = 1985494834 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsskip.c X--- [.news_src]newsskip.c $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSUTILITY.DIFF" $ CHECKSUM_IS = 1025822786 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsutility.c X--- [.news_src]newsutility.c X************** X*** 491,497 X newsgrp.grp_ia = newsgrp.grp_iasize = newsgrp.grp_iavd = 0; X newsgrp.grp_iavdsize = newsgrp.grp_iapaste = newsgrp.grp_c_itm = 0; V newsgrp.grp_display_indx = newsgrp.grp_flags = newsgrp.grp_reg_text = 0 X; X!`032 X grprab.rab$w_rsz = sizeof newsgrp; X _c$cks(sys$put(&grprab)); X `125 X--- 491,497 ----- X newsgrp.grp_ia = newsgrp.grp_iasize = newsgrp.grp_iavd = 0; X newsgrp.grp_iavdsize = newsgrp.grp_iapaste = newsgrp.grp_c_itm = 0; V newsgrp.grp_display_indx = newsgrp.grp_flags = newsgrp.grp_reg_text = 0 X; X! newsgrp.grp_topic[0] = newsgrp.grp_notice[0] = '\0'; X grprab.rab$w_rsz = sizeof newsgrp; X _c$cks(sys$put(&grprab)); X `125 X************** X*** 775,781 X `032 X #if ITMLIFE_DEFAULTS X if (newsitm.itm_life) `123 X! `009if newsgrp.grp_itmlife) X `009 newsitm.itm_life = min(newsitm.itm_life,newsgrp.grp_itmlife); X `009else if (ga[0]->grp_itmlife) X `009 newsitm.itm_life = min(newsitm.itm_life,ga[0]->grp_itmlife); X--- 775,781 ----- X `032 X #if ITMLIFE_DEFAULTS X if (newsitm.itm_life) `123 X! `009if (newsgrp.grp_itmlife) X `009 newsitm.itm_life = min(newsitm.itm_life,newsgrp.grp_itmlife); X `009else if (ga[0]->grp_itmlife) X `009 newsitm.itm_life = min(newsitm.itm_life,ga[0]->grp_itmlife); X************** X*** 921,927 X if (i <= ga_size) for (j = ga_size; j >= i; --j) ga[j+1] = ga[j]; X if (curr_g >= i) ++curr_g; X ga[i] = nentry; X! ga[i]->grp_reg = 1; X ga[i]->grp_display_indx = (cur_dir_type < DIR_NEW); X ++ga_size; X `032 X--- 921,927 ----- X if (i <= ga_size) for (j = ga_size; j >= i; --j) ga[j+1] = ga[j]; X if (curr_g >= i) ++curr_g; X ga[i] = nentry; X! ga[i]->grp_reg = NEWGROUP_REG; X ga[i]->grp_display_indx = (cur_dir_type < DIR_NEW); X ++ga_size; X `032 X************** X*** 1324,1330 X ga_exact_name(s) X char *s; X `123 X! int i; X `032 X for (i = 1 ; i <= ga_size ; ++i) X if (!strcmp(s,ga[i]->grp_name)) return(i); X--- 1324,1332 ----- X ga_exact_name(s) X char *s; X `123 X! int i, X! lens = strlen(s); X! char *n, *ps, *pn, *sps; X `032 X sps = s + lens - 1; X for (i = 1 ; i <= ga_size ; ++i) `123 X************** X*** 1326,1333 X `123 X int i; X `032 X! for (i = 1 ; i <= ga_size ; ++i) X! if (!strcmp(s,ga[i]->grp_name)) return(i); X return(0); X `125 X `012 X--- 1328,1347 ----- X lens = strlen(s); X char *n, *ps, *pn, *sps; X `032 X! sps = s + lens - 1; X! for (i = 1 ; i <= ga_size ; ++i) `123 X! if ( (*s != *(n = ga[i]->grp_name)) X! `124`124 (lens != strlen(n))) X! continue;`009`009`009`009`009/* first char & length == */ X! /* The real works: Compare backwards; First chars known equal. */ X! ps = sps; X! pn = n + lens - 1; X! while (ps > s) X! if (*ps-- != *pn--) break; X! if (ps == s) return(i); X! `125 X! /* if (!strcmp(s,ga[i]->grp_name)) return(i); <<-- original code */ X!`032 X return(0); X `125 X `012 X************** X*** 1784,1789 X char itemhold[40]; X `032 X newsgroup_status_line(curr_g); X iap = gap->grp_ia; X if (gap->grp_count) X sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count, X--- 1798,1804 ----- X char itemhold[40]; X `032 X newsgroup_status_line(curr_g); X+ if (!gap->grp_ia) map_items(curr_g); X iap = gap->grp_ia; X if (gap->grp_count) X sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count, X************** X*** 2167,2171 X set_level(2); X cur_down_itm(curr_g,1000000,1); X `125 X return(0); X `125 X--- 2182,2209 ----- X set_level(2); X cur_down_itm(curr_g,1000000,1); X `125 X+ return(0); X+ `125 X+`032 X+ check_id(id) X+ char *id; X+ `123 X+ char mref[IDLEN + 4]; X+ int *gp; X+`032 X+ util_idcpy(mref,id); X+ s_to_lower(mref); X+ gp = &mref[IDLEN]; X+ *gp = 0; X+`032 X+ itmrab.rab$l_kbf = mref; X+ itmrab.rab$b_ksz = IDLEN + 4; X+ itmrab.rab$b_krf = 1; X+ itmrab.rab$l_rop = RAB$M_KGE `124 RAB$M_RRL `124 RAB$M_NLK; X+ itmrab.rab$b_rac = RAB$C_KEY; X+`032 X+ if ( (sys$get(&itmrab) & 1) X+ && !strcmp(mref,newsitm.itm_id)) return(1); X+ if (hist_check(mref)) return(1); X return(0); X `125 $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSV58_UPGRADE.DIFF" $ CHECKSUM_IS = 0 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSVARIABLES.DIFF" $ CHECKSUM_IS = 1396338330 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsvariables.h X--- [.news_src]newsvariables.h X************** X*** 68,74 X str_length, X str_case_sensitive, X str_line, X! str_col; X `032 X extrnl X short response_length;`009`009/* input length */ X--- 68,75 ----- X str_length, X str_case_sensitive, X str_line, X! str_col, X! mail_self_flag iev(0); X `032 X extrnl X short response_length;`009`009/* input length */ $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSVMSMAIL.DIFF" $ CHECKSUM_IS = 54467975 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsvmsmail.c X--- [.news_src]newsvmsmail.c X************** X*** 1,7 X /* X **++ X ** FACILITY: X! ** NEWSMAIL X ** X ** ABSTRACT: X ** Routines which use callable mail to map VMS mail into NEWS. X--- 1,7 ----- X /* X **++ X ** FACILITY: X! ** NEWSVMSMAIL X ** X ** ABSTRACT: X ** Routines which use callable mail to map VMS mail into NEWS. X************** X*** 22,28 X **-- X **/ X `012 X! #module NEWSMAIL "V5.8" X `032 X #include "newsinclude.h" X #include "newsdefine.h" X--- 22,28 ----- X **-- X **/ X `012 X! #module NEWSVMSMAIL "V5.8" X `032 X #include "newsinclude.h" X #include "newsdefine.h" X************** X*** 124,129 X `032 X if (!(fn_dsc->dsc$w_length)) return(1); X tmp = malloc(sizeof *tmp); X tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1); X strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length); X tmp->folder_name[fn_dsc->dsc$w_length] = '\0'; X--- 124,130 ----- X `032 X if (!(fn_dsc->dsc$w_length)) return(1); X tmp = malloc(sizeof *tmp); X+ tmp->fnext = 0; X tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1); X strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length); X tmp->folder_name[fn_dsc->dsc$w_length] = '\0'; X************** X*** 728,734 X err_line("\tNot a MAIL folder\n"); X return(0); X `125 X! all = ((news_context == 1) `124`124 (cli$present("ALL") & 1)); X if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123 X char prm[80]; X `032 X--- 729,735 ----- X err_line("\tNot a MAIL folder\n"); X return(0); X `125 X! all = ((news_context == 1) `124`124 (cli$present(c$dsc("ALL")) & 1)); X if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123 X char prm[80]; X `032 X************** X*** 902,909 X while (cms[i].set_len) `123 X if (!strncmp(mt,cms[i].mtype,max(len,cms[i].set_len))) `123 X sm[0].ic = cms[i].i_code; X! sm[0].bl = sm[0].ba = sm[0].rl = 0; X! sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0; X if (set_common_profile()) err_line(cms[i].msg); X return(0); X `125 X--- 903,910 ----- X while (cms[i].set_len) `123 X if (!strncmp(mt,cms[i].mtype,max(len,cms[i].set_len))) `123 X sm[0].ic = cms[i].i_code; X! sm[0].bl = 0; sm[0].ba = 0; sm[0].rl = 0; X! sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0; X if (set_common_profile()) err_line(cms[i].msg); X return(0); X `125 X************** X*** 920,926 X sm[0].bl = len; X sm[0].ba = mt; X sm[0].rl = 0; X! sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0; X if (set_common_profile()) `123 X sprintf(err_oline,sms[i].msg,mt); X err_line(err_oline); X--- 921,927 ----- X sm[0].bl = len; X sm[0].ba = mt; X sm[0].rl = 0; X! sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0; X if (set_common_profile()) `123 X sprintf(err_oline,sms[i].msg,mt); X err_line(err_oline); X************** X*** 929,936 X return(0); X `125 X sm[0].ic = sms[i].i_code; X! sm[0].bl = sm[0].ba = sm[0].rl = 0; X! sm[1].bl = sm[1].ic = sm[1].ba = sm[1].rl = 0; X if (set_common_profile()) X err_line(sms[i].msg); X return(0); X--- 930,937 ----- X return(0); X `125 X sm[0].ic = sms[i].i_code; X! sm[0].bl = 0; sm[0].ba = 0; sm[0].rl = 0; X! sm[1].bl = 0; sm[1].ic = 0; sm[1].ba = 0; sm[1].rl = 0; X if (set_common_profile()) X err_line(sms[i].msg); X return(0); $ GOSUB UNPACK_FILE $ FILE_IS = "NEWS_HLP.DIFF" $ CHECKSUM_IS = 2083817688 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]news.hlp X--- [.news_src]news.hlp X************** X*** 3,9 X NEWS is an implementation of the USENET NEWS system for VMS. This is a X bulletin board system, allowing users to read items posted to the board, X post replies to existing items, and create new items on the board. NEWS X! conforms to the Standard for Interchange of USENET Messages (RFC1036). X `032 X Unlike person-to-person mail, all items posted into NEWS are normally X readable by ALL users on the system, so the items in NEWS are intended for X--- 3,10 ----- X NEWS is an implementation of the USENET NEWS system for VMS. This is a X bulletin board system, allowing users to read items posted to the board, X post replies to existing items, and create new items on the board. NEWS X! conforms to the Internet Standard for Interchange of USENET Messages X! (RFC1036). X `032 X Unlike person-to-person mail, all items posted into NEWS are normally X readable by all users of the system, so the items in NEWS are intended X************** X*** 6,16 X conforms to the Standard for Interchange of USENET Messages (RFC1036). X `032 -+-+-+-+-+ End of part 12 +-+-+-+-+-