home *** CD-ROM | disk | FTP | other *** search
- SPV067I.MOD : Address book mod. [Part 1 of 5]
- Papa Bear #1 @11579
-
- ┌────────────────────────────A CEREBRUM RELEASE!─────────────────────────────┐
- │ Mod Name : SPV067I.MOD Mod Authors: Bull Ship 1@11132.wwivnet │
- │ Difficulty : ████▒▒▒▒▒▒ Wyatt Earp 1@11131.wwivnet │
- │ WWIV Version : 4.24 Pâpâ ßêâr 1@11579.wwivnet │
- │ Mod Date : 7/07/95 │
- │ Files Affected: BBS.C, READMAIL.C, MSGBASE1.C, UEDIT.C, MMENU.C, MSGBASE.C,│
- │ VARS.H, FCNS.H, BBS.STR │
- │ Description : A user Address Book to store Network addresses/Usernames │
- │ │
- │ THIS IS RELEASED WITH THE FULL PERMISSION AND SUPPORT OF BULL SHIP! │
- ╞═────────────────────────────────────═╤═───────────────────────────────────═╡
- │ StarPort Valhalla [ ] - ASV 28.8kbps Home of the SPV mod series! │
- └─────────────────────────────────────═╧═────────────────────────────────────┘
-
- >>> OFFICIAL WWIV SUPPORT SITE! <<<
-
- Word of Warning: You installed it, you're responsible! Make back-ups BEFORE
- attempting to install this modification! Read all text before beginning.
- ─────────────────────────────────────────────────────────────────────────────
- LEGEND:
- = Original Code [use this to search on]
- + Add this Line [mods ALWAYS add stuff, don't they?]
- - Delete this Line [or comment out, its not needed]
- * Change this Line [I usually comment these lines]
- ... Skipping some code here [keeps the mod shorter]
- ─────────────────────────────────────────────────────────────────────────────
- LONG DESCRIPTION: This is the address book mod that Bull Ship has been
- working with for quite some time. With his permission, I've simply taken the
- mod and re-written it into something better (I hope).
- Basically, it allows your users to store other users names, network
- addresses (including gated multi-networked nodes), and a small note.
-
- Features:
- ∞ WWIV Multi-instance compatible.
- ∞ All WWIV Restrictions supported and used.
- ∞ Sysops can easily define or undefine Restrictions they want.
- ∞ Newusers not allowed access.
- ∞ Deletes users address book entries if you delete user.
- ∞ Address book is self maintaining -- filling in old spots as they're open.
- ∞ Works with auto-delete mods that use "void deluser".
- ∞ Access Address Book from Email/Message read prompts.
- ∞ Access to Address Book when you hit 'E' to email and WFC.
- ∞ Access to Address Book by typing //ADDRESS from main menu.
- ∞ Users can delete their own address book entries.
- ∞ User help screen describes mod and how to use it.
-
- BS05D.424/SPV067I.MOD revision changes and additions
- ∞ Modifications made by Pâpâ ßêâr. 99% re-written code.
- ∞ User name, network address, and BBS name/phone are automatically extracted
- for local and networked posts. Gated postings (including those from the
- other nets, like the internet) are automatically extracted with *complete*
- and proper routing and user information. All fields that I could fill in
- automatically, I did.
- ∞ Addresses stored in one file, ADDRESS.DAT, in the DATA directory.
- ∞ SysOp can now view ALL records, if you choose to do so. When in "all"
- mode, the person who entered the address is shown. This works in the
- (V)iew and (S)earch functions.
- ∞ SysOp can remove ALL records. You can also remove yours, or any other
- user's (by number), if you wish.
- ∞ The function cline() is added. You can use this in any part of the source
- that you'd like. It creates centered or non-centered colored ("steely")
- bars. This removed the necessity of having to have the FANCY_HEADER and
- REG_HEADER #define's (and removed all the redundant associated coding).
- ∞ When a user gets deleted, their address book entries are made available for
- others' usage. This means that the book is self-maintaining and will fill
- in "dead" spots as new addresses are added.
- ∞ You can now delete individual records in the (S)earch function, as well as
- E-Mailing the displayed address record.
- ∞ (S)earch functions will search for ANY character(s) in ALL fields. You can
- now use a # if you want.
- ∞ During the (S)earch option, you can now (M)odify an entry.
- ∞ Made it so AutoSend auto-posting cannot be extracted to book.
- ∞ Fixed a minor (which could be major) bug that declared the handle variables
- only to 23 (24 if you used the entire character array,
- not leaving room for the null terminator) when the userrec name name field
- has it defined out to 30 (31 with the null terminator) characters.
- ∞ Fixed another bug that would cause it to crash during extraction. Normally,
- the variable net_email_name takes on the format of:
-
- So and So #1 @1111
-
- However, I found some that were like:
-
- So and So 1@1111
-
- So I've included a new strip_to_node() function (the same function that
- services my SPV031*.MOD -- Quote Mod) to handle extraction of these and
- gated type "names".
- ∞ When asked if an entry is ok during extraction, you can now select (M)odify
- and change the fields' data.
- ∞ Saves and restores top screen info. status.
- ∞ Checks for duplicate address/handle entries during extraction and manual
- addition of address book additions.
- ∞ User can now download their address book entries.
- ∞ Pressing (E)-Mail will now search through the address book first before
- using stock E-Mail functions -- if you choose to do so.
- ∞ If the old address book exists, the user is given the opportunity to
- download it. After the downloading, it is removed.
-
- NOTE! Revision "D" totally changes the way the addresses are stored. Please
- be aware of this. The ADDRESS subdirectory and individual files are
- no longer supported. This revision allows the users to download their
- old address books, if they exist. Once downloaded, the old files are
- deleted.
-
- >>> IMPORTANT <<<
- If upgrading, please make certain to go over the ENTIRE mod. The calls to
- address() are no longer in effect (they have been changed to AddressBook())
-
- SO DO *EVERY* STEP, MAKING CERTAIN THAT THE CODE YOU HAVE INSTALLED MATCHES
- THE CODE YOU SEE IN THIS SPV067I UPDATE OF BS05C.424!!!
-
- CREDITS:
- First, from Bull Ship:
- Thanks go to Mr. Rick 1@3460 who sent me code for address extraction that
- helped point me in the right direction. Thanks also goes to Dr. Olds 1@2930
- (IceNet) who helped me test the revision B upgrade. Wish I could say I was
- the one who thought of this MOD.. but that credit goes to Bonk 1@11142 and to
- my wife. Credit also goes to my wife, JJJ's Mom who currently has over 80
- pieces of email saved so that she can keep their net address... (Hmmm, just
- think of the HD space I'll save <grin>.)
- Update to 4.24 mostly done by Wyatt Earp 1@4 SierraLink, 1@11131 WWIVnet
-
- From Pâpâ ßêâr:
- Thanks to Bull Ship for asking me to participate in this project. Once I
- installed it, I fell in love with it. I couldn't help to make changes to it
- -- all of which I hope you think are improvements!
- ─────────────────────────────────────────────────────────────────────────────
- STEP 1: You should have, all told, 5 files, as follows:
-
- SPV067I.MOD Address Book Mod and instructions.
- ADDRESS.C Majority of Address Book Mod functions.
- MENU22.ANS ANSI Address Book menu
- MENU22.MSG WWIV Color Address Book menu
- ADDRESS.MSG Address Book Help / Instructions for your users.
-
- If you do not, please get a complete archive from MOD NET, or Amber.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 2: Open ADDRESS.C and search near the top for " NOTE #1 ", around line
- number 31:
-
- Determine if you want to comment out any of WWIV's restrictions. The way the
- mod is now, if you set ANY restriction on a user they will not be able to
- email anyone or use or create an address book. This is the way I have it set
- up on my board.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 2a: NOTE! You may wish to remove any literal strings at this time to
- save on DGROUP.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 3: Do all the following instructions:
-
- Copy ADDRESS.C to your source code directory.
- (If upgrading copy the new one over the old.)
-
- Copy ADDRESS.MSG to your GFILES directory (this is your users Help file).
- (If upgrading, make certain to use the new one!)
-
- Copy MENU22.ANS and MENU22.MSG to your GFILES directory.
- (If upgrading, DELETE the MENU20.* in your GFILES directory.)
-
- <note: if you already have a menu #22, rename these menus to the next highest
- menu number you have available. And change the call in ADDRESS.C
- printmenu(22); to match what you renamed the menus to.>
- ─────────────────────────────────────────────────────────────────────────────
- STEP 4: To add access to Address book by typing //ADDRESS.
- Add these lines to MMENU.C, void mainmenu(void):
-
- =/*************************************************/
- + if (strcmp(s,"ADDRESS")==0) // SPV067I
- + AddressBook(); // SPV067I
- = if ((strcmp(s,"UPLOAD")==0) && (actsl>10))
- = upload_post();
- ─────────────────────────────────────────────────────────────────────────────
- STEP 5: Still in the same file, same function, case 'E':
- Install either OPTION #1 -or- OPTION #2, but *not* both:
-
- OPTION #1 - will put the user directly into the address book by hitting E
- from the main menu, there is an Email option in the Address Book.
-
- = case 'E':
- + AddressBook(); // SPV067I
- - send_email(); // SPV067I remove line
- = break;
-
- ─────────────────────────────────────────────────────────
-
- OPTION #2 - This second way will offer your users a chance to Address Book,
- if they choose No, they they go straight to sending email:
-
- = case 'E':
- // SPV067I block copy START
- nl();
- npr("5Use Personal address book 2[1N3/1y2]5?0 ");
- if (yn())
- AddressBook();
- else
- // SPV067I block copy END
- = send_email(); // SPV067I (indent two spaces if you want)
- = break;
-
- ─────────────────────────────────────────────────────────────────────────────
- STEP 5: BBS.C, void void getcaller(void)
-
- void getcaller(void)
- {
- = char s[81],ch,lokb,*ss;
- = int any,fast=0,i;
- + int top_address; // SPV067I
- = double d;
- = userrec tu;
- = c_sub=c_dir=0;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 6: Same file, same function, case 'E':
-
- = case 'E':
- = if (ok_local()) {
- = usernum=1;
- = holdphone(1);
- = okskey=1;
- // SPV067I block copy START
- top_address=topdata;
- topdata=0;
- AddressBook();
- topdata=top_address;
- // SPV067I block copy END
- - send_email(); // SPV067I *remove line*
- = okskey=0;
- = write_user(1,&thisuser);
- = cleanup_net();
- ─────────────────────────────────────────────────────────────────────────────
- STEP 7: READMAIL.C, void readmail(void), add as shown:
-
- = char s[201],s1[205],s2[81],*b,*ss1;
- + char handle[31],address1[51],board[75],ch1,add; // SPV067I
- = mailrec m, m1;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 8: Same file, same function, change these lines to support the new
- case '.':
-
- = if (so()) {
- = if (sysinfo.flags & OP_FLAGS_MAIL_PROMPT)
- = npr(get_string(1365));
- * ch=onek("QSRIDAMF?-+GEZPVUOLCN."); // SPV067I add .
- = } else {
- = if (cs()) {
- = if (sysinfo.flags & OP_FLAGS_MAIL_PROMPT)
- = npr(get_string(1366));
- * ch=onek("QSRIDAMF?-+GZPVUOC."); // SPV067I add .
- = } else {
- = if (!okmail) {
- = if (sysinfo.flags & OP_FLAGS_MAIL_PROMPT)
- = npr(get_string(1367));
- * ch=onek("QI?-+G."); // SPV067I add .
- = } else {
- = if (sysinfo.flags & OP_FLAGS_MAIL_PROMPT)
- = npr(get_string(1368));
- * ch=onek("QSRIDAMF?+-G."); // SPV067I add .
- = }
- = }
- ─────────────────────────────────────────────────────────────────────────────
- STEP 9: Still in the same file, same function, now add the new case '.':
-
- = case 'R':
- = break;
- // SPV067I block copy START
- case '.':
- if ((!m.fromsys && !m.fromuser) ||
- (strstr(GateName,"AutoSend"))) {
- nl();
- pl("6ERROR! 2No system or user number available!0");
- nl();
- pausescr();
- break;
- }
- nl();
- npr("5Extract this Address to your Address Book? 0");
- if (ny()) {
- if ((m.fromuser) && (!m.fromsys)) {
- // Local BBS user
- read_user(m.fromuser,&u);
- strcpy(handle,nam(&u,m.fromuser));
- sprintf(address1,"%d",m.fromuser);
- sprintf(board,"Local %s user",syscfg.systemname);
- } else if (m.fromsys) {
- // User name needed for all network E-Mail
- strcpy(handle,GateName);
- if (m.fromuser) {
- // Network E-Mail
- sprintf(address1,"%u@%u.%s",m.fromuser,m.fromsys,
- net_networks[nn].name);
- sprintf(board,"%s %s",csne->name,csne->phone);
- } else {
- // GATED network E-Mail
- sprintf(address1,"%s @%u.%s",net_email_name,m.fromsys,
- net_networks[nn].name);
- nl();
- pl("5Enter BBS name/note2: 0");
- npr("6:0");
- mpl(74);
- inputl(board,74);
- }
- }
- add=1;
- if (CheckForDupe(handle,address1)) {
- nl();
- npr("2Possible address/handle matches, 0");
- npr("2go ahead and add to book? 0");
- if (!yn())
- add=0;
- }
- if (add) {
- do {
- i=1;
- AddressHeader("E-MAIL EXTRACT/CONFIRMING");
- npr("5%-30.30s %s0",handle,address1); nl();
- npr("9Note1: 5%s0",board);
- nln(2);
- npr("5Add this entry to your Address Book 0");
- npr("4Y3es5/4n3o5/4m3odify5)? 0");
- ch1=onek("Y\rNM");
- switch (ch1) {
- case 'Y':
- case 13:
- WriteAddress(handle,address1,board);
- break;
- case 'N':
- nl();
- pl("6Aborted0");
- break;
- case 'M':
- nl();
- i=0;
- npr("5New handle (1ENTER=%s5)2: 0",handle); nl();
- npr("6:0");
- mpl(30);
- inputl(s2,30);
- if (s2[0])
- strcpy(handle,s2);
- npr("5New address (1ENTER=%s5)2: 0",address1);
- nl();
- npr("6:0");
- mpl(50);
- inputl(s2,50);
- if (s2[0])
- strcpy(address1,s2);
- npr("5New BBS name/note (1ENTER=%-57s5)2: 0",
- board);
- nl();
- npr("6:0");
- mpl(74);
- inputl(s2,74);
- if (s2[0])
- strcpy(board,s2);
- break;
- }
- } while ((!hangup) && (!i));
- nl();
- }
- }
- npr("5Enter Address Book? 0");
- if (yn())
- AddressBook();
- GateName[0]=0;
- break;
- // SPV067I block copy END
- = case '?':
- = printmenu(4);
- = i2=0;
- = break;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 10: MSGBASE1.C, void scan(int msgnum, int optype, int *nextsub)
- add these variable declarations:
-
- = char s[161],s1[81],*b,*ss1;
-
- = char *fstr, ch, s2[81];
- + char handle[31],address1[51],board[74],ch1,Done,add; // SPV067I
- + net_system_list_rec *csne; // SPV067I
- + unsigned int system,user; // SPV067I
- = int fnd, sdir=1, lmt;
- = static char findstr[21];
- ─────────────────────────────────────────────────────────────────────────────
- STEP 11: Same file, same function, add new case '.':
-
- = grab_quotes(NULL, NULL);
- = restore_msg_menu();
- = break;
- // SPV067I block copy START
- case '.':
- grab_user_name(&(get_post(msgnum)->msg),
- subboards[curlsub].filename);
- if (get_post(msgnum)->status & status_post_new_net) {
- set_net_num(get_post(msgnum)->title[80]);
- if (get_post(msgnum)->title[80]==-1) {
- pl(get_string(679));
- break;
- }
- }
- strcpy(handle,stripcolors(strip_to_node(net_email_name)));
- if (net_email_name[0]) {
- system=get_post(msgnum)->ownersys;
- user=get_post(msgnum)->owneruser;
- if ((!system && !user) ||
- (strstr(net_email_name,"AutoSend"))) {
- nl();
- pl("6ERROR! 2No system or user number available!0");
- nl();
- pausescr();
- break;
- }
- nl();
- npr("5Extract this address to your Address Book? 0");
- if (ny()) {
- if (!system) {
- // Local user information
- read_user(user,&tu);
- strcpy(handle,nam(&tu,user));
- sprintf(address1,"%u",user);
- sprintf(board,"Local %s user",syscfg.systemname);
- } else {
- if (user) {
- // Network user information (Fills in BBS name, ph)
- sprintf(address1,"%u@%u.%s",user,system,
- net_networks[net_num].name);
- csne=next_system(system);
- sprintf(board,"%s %s",csne->name,csne->phone);
- } else {
- // Network gated information (internet, FIDO, too!)
- strcpy(handle,GateName);
- sprintf(address1,"%s @%u.%s",net_email_name,
- system,net_networks[net_num].name);
- nl();
- pl("5Enter BBS name/note2: 0");
- npr("6:0");
- mpl(75);
- inputl(board,75);
- }
- }
- add=1;
- if (CheckForDupe(handle,address1)) {
- nl();
- npr("2Possible address/handle matches, 0");
- npr("2go ahead and add to book? 0");
- if (!yn())
- add=0;
- }
- if (add) {
- do {
- Done=1;
- AddressHeader("MESSAGE EXTRACT/CONFIRMING");
- npr("5%-30.30s %s0",handle,address1); nl();
- npr("9Note1: 5%s0",board);
- nln(2);
- npr("5Add this entry to your Address Book 0");
- npr("4Y3es5/4n3o5/4m3odify5)? 0");
- ch1=onek("Y\rNM");
- switch (ch1) {
- case 'Y':
- case 13:
- WriteAddress(handle,address1,board);
- break;
- case 'N':
- nl();
- pl("6Aborted0");
- break;
- case 'M':
- nl();
- Done=0;
- npr("5New handle (1ENTER=%s5)2: 0",
- handle); nl();
- npr("6:0");
- mpl(30);
- inputl(s2,30);
- if (s2[0])
- strcpy(handle,s2);
- npr("5New address (1ENTER=%s5)2: 0",
- address1); nl();
- npr("6:0");
- mpl(50);
- inputl(s2,50);
- if (s2[0])
- strcpy(address1,s2);
- npr("5New BBS name/note (1ENTER=%-57s5)2: 0",
- board);
- nl();
- npr("6:0");
- mpl(74);
- inputl(s2,74);
- if (s2[0])
- strcpy(board,s2);
- break;
- }
- } while ((!hangup) && (!Done));
- nl();
- }
- }
- npr("5Enter Address Book? 0");
- if (yn())
- AddressBook();
- }
- GateName[0]=0;
- break;
- // SPV067I block copy END
- = case '?':
- = if (lcs())
- = printmenu(13);
- ─────────────────────────────────────────────────────────────────────────────
- >>> IN UEDIT.C <<<
- *** IF UPGRADING FROM THE BS05*.424 MODIFICATION, REMOVE THE VARIABLE
- DECLARATION FOR ad[81] IN void deluser(int un) ***
- ─────────────────────────────────────────────────────────────────────────────
- STEP 12: In UEDIT.C, void deluser(int un), add this line:
-
- = u.inact |= inact_deleted;
- = u.waiting=0;
- + DeleteAddresses(un); // SPV067I
- = write_user(un,&u);
- = f=open_email(1);
- ─────────────────────────────────────────────────────────────────────────────
- STEP 13: If you do *NOT* have SPV031IJ.MOD (Quote Mod) installed, then add
- this function to the bottom of ADDRESS.C:
-
- NOTE: If you have a Quote Mod installed previous to version SPV031IJ, then
- *REPLACE* your strip_to_node() function with this one:
-
- char *strip_to_node(char *txt)
- {
- int i,ok,ok1,i1=-1;
- char s[81],s1[81];
-
- if (txt[0]==96 && txt[1]==96) {
- for (i=2;(i<=strlen(txt)) && (txt[i]!=96);i++) {
- s[i-2]=txt[i];
- s[i-1]=0;
- }
- return(s);
- }
- if (strstr(txt,"AT")) {
- ok=1;
- for (i=2; i<strlen(txt); i++) {
- if (ok) {
- s[++i1]=txt[i];
- s[i1+1]=0;
- }
- if (txt[i+1]==96)
- ok=0;
- }
- return(s);
- }
- if (strstr(txt,"@")) {
- if (strstr(txt,"#")==NULL) {
- strcpy(s1,strrev(txt));
- ok=ok1=0;
- for (i=0;i<strlen(s1);i++) {
- if ((ok) && (ok1)) {
- s[i1++]=s1[i];
- s[i1+1]=0;
- }
- if ((ok1) && (!ok)) {
- if (s1[i+1]==32)
- ok=1;
- }
- if ((s1[i]==64) && (!ok1))
- ok1=1;
- }
- return(strrev(s));
- } else {
- ok=1;
- for (i=0; i<strlen(txt); i++) {
- if (ok) {
- s[i]=txt[i];
- s[i+1]=0;
- }
- if (txt[i+2]==35)
- ok=0;
- }
- return(s);
- }
- }
- return(txt);
- }
- ─────────────────────────────────────────────────────────────────────────────
- STEP 14: Prototype the new ADDRESS.C functions to FCNS.H Either type:
-
- MAKE FCNS
-
- at the command line, or block copy these lines into the file:
-
- = void rip_list_qscan(int start);
- = void rip_config_qscan(void);
- =
- + /* File: address.c -- SPV067I */
- + void AddressBook(void);
- + void DeleteAddresses(int UserNumber);
- + void WriteAddress(char *Name,char *NetAddress,char *NetName, char *Board);
- + void AddressHeader(char *Area);
- + unsigned char CheckForDupe(char *Handle, char *NetAddress);
- + void SendEmail(void);
- + char *strip_to_node(char *txt); // NOTE NOTE NOTE -- SPV067I
- +
- = #endif
-
- NOTE NOTE NOTE: *DO NOT* add this line if you already have SPV031*.* (Quote
- Mod) installed!
- ─────────────────────────────────────────────────────────────────────────────
- STEP 15: Modify MAKEFILE.MAK to accept new ADDRESS.C, use either OPTION #1 or
- OPTION #2:
-
- OPTION #1 - MAKEFILE.MAK for TCC
-
- (1) In the overlaid files section add the call for ADDRESS.OBJ as shown:
-
- $(OBJ)sr.obj $(OBJ)ini.obj $(OBJ)xferovl2.obj\
- $(OBJ)bbsovl3.obj $(OBJ)qwk.obj $(OBJ)qwk1.obj\
- $(OBJ)ripovl.obj $(OBJ)address.obj
-
- (2) Near the bottom of the "depends" section add the call for ADDRESS.C
- as shown:
-
- $(OBJ)qwk1.obj : qwk1.c vars.h vardec.h net.h
- $(TCC_OVL)
- $(OBJ)ripovl.obj : ripovl.c vars.h vardec.h net.h
- $(TCC_OVL)
- $(OBJ)address.obj : address.c vars.h
- $(TCC_OVL)
-
- ─────────────────────────────────────────────────────────
-
- OPTION #2 - MAKEFILE.MAK for BCC
-
- (1) Add to the first part of the overlaid section
-
- = xfertmp.obj xinit.obj qwk.obj qwk1.obj \
- * ripovl.obj address.obj
- =
- = BBS_O_OVL = \
- = $(OBJ)\batch.obj $(OBJ)\bbsovl1.obj $(OBJ)\bbsovl2.obj \
-
- (2) Add to the second overlaid section
-
- = $(OBJ)\xinit.obj $(OBJ)\qwk.obj $(OBJ)\qwk1.obj \
- = $(OBJ)\ripovl.obj $(OBJ)\address.obj
- =
- =
- = ###########################################################################
-
- (3) Add to the dependencies
-
- = ripovl.obj : ripovl.c
- = $(TCC_OVL)
- + address.obj : address.c
- + $(TCC_OBJ)
- =
- = fix.obj : fix.c
- ─────────────────────────────────────────────────────────────────────────────
- STEP 16: Add this variable declaration to VARS.H:
-
- = ver_no2[51],wwiv_net_no[20], xdate[9], *xenviron[50],
- * dlfn[81],edlfn[81], nete[5], irt_sub[81], GateName[81];
- =
- = __EXTRN__ unsigned char actsl, andwith, checksum;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 17: Add this line to MSGBASE.C:
-
- = while ((ss[p]!=13) && ((long)p<len) && (p<200))
- = n[p]=ss[p++];
- = n[p]=0;
- + strcpy(s1,n); // SPV067I
- + strcpy(GateName,stripcolors(strip_to_node(s1))); // SPV067I
- = ++p;
- = p1=0;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 18: Recompile the the whole enchilada.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 19: If you've changed your WWIV.INI so that MAIL_PROMPT is enabled, use
- a string editor like MINIESM or Tolken's ESM and add " . " to the
- following lines:
-
- 1365 / 1366 / 1367 / 1368
- ─────────────────────────────────────────────────────────────────────────────
- STEP 20: Now.. you need to update your menus to reflect the new option for
- your users, using an editor that doesn't have WORDWRAP.. <don't use
- WWIVEDIT!!!>
-
- Menus affected are 1, 2, 4 and 13 in MENUS.MSG and MENUSANS.MSG.
-
- 1.3>5 Extract Address to Personal Address Book0
- ─────────────────────────────────────────────────────────────────────────────
- Again, thanks to Bull Ship, and the people who've helped him. If it weren't
- for him, I'm not certain that a mod this great would have come into being.
- If you have problems, please E-Mail me (1@11579.wwivnet) and not him. I've
- changed virtually every line of coding, so I'm the responsible party :)
-
- This mod is copyright 1995 by Tracy Baker, aka Papa Bear, and is
- distributed as freeware. Permission is granted to distribute and post this
- mod on BBS systems and online services, provided no alterations are made
- (removal of message headers/taglines allowed). This mod may contain some
- parts of WWIV source code, which is copyright 1988-1994 by Wayne Bell and
- licensed only to registered users of WWIV. Use of WWIV source without
- registration constitutes a license violation and could lead to legal
- prosecution and certain doom.
- Shareware distributors and CD-ROM publishers may not distribute this mod
- without express written permission of the Author or WWIV Software Services.
-
- 7-9=1*6>2Pâpâ ßêâr6<1*9=7-0
- ---
- 1No, I don't have any taglines to give you. Go Away.
-