Common subdirectories: pine3.94.stock/bin and pine3.94/bin
Common subdirectories: pine3.94.stock/contrib and pine3.94/contrib
Common subdirectories: pine3.94.stock/doc and pine3.94/doc
Common subdirectories: pine3.94.stock/imap and pine3.94/imap
Common subdirectories: pine3.94.stock/pico and pine3.94/pico
Common subdirectories: pine3.94.stock/pine and pine3.94/pine
Common subdirectories: pine3.94.stock/contrib/bitmaps and pine3.94/contrib/bitmaps
Common subdirectories: pine3.94.stock/contrib/carmel and pine3.94/contrib/carmel
Common subdirectories: pine3.94.stock/contrib/flag.cc and pine3.94/contrib/flag.cc
Common subdirectories: pine3.94.stock/contrib/keypad.enable and pine3.94/contrib/keypad.enable
Common subdirectories: pine3.94.stock/contrib/ports and pine3.94/contrib/ports
Common subdirectories: pine3.94.stock/contrib/utils and pine3.94/contrib/utils
Common subdirectories: pine3.94.stock/contrib/bitmaps/unixware and pine3.94/contrib/bitmaps/unixware
Common subdirectories: pine3.94.stock/contrib/carmel/c-client and pine3.94/contrib/carmel/c-client
Common subdirectories: pine3.94.stock/contrib/carmel/doc and pine3.94/contrib/carmel/doc
Common subdirectories: pine3.94.stock/contrib/carmel/imapd and pine3.94/contrib/carmel/imapd
Common subdirectories: pine3.94.stock/contrib/carmel/pine and pine3.94/contrib/carmel/pine
Common subdirectories: pine3.94.stock/contrib/ports/aos and pine3.94/contrib/ports/aos
Common subdirectories: pine3.94.stock/contrib/ports/vms and pine3.94/contrib/ports/vms
Common subdirectories: pine3.94.stock/doc/tech-notes and pine3.94/doc/tech-notes
Common subdirectories: pine3.94.stock/imap/ANSI and pine3.94/imap/ANSI
diff -rc pine3.94.stock/imap/RFC1176.TXT pine3.94/imap/RFC1176.TXT
*** pine3.94.stock/imap/RFC1176.TXT	Thu Aug 23 06:47:09 1990
--- pine3.94/imap/RFC1176.TXT	Tue Jun 25 04:28:22 1996
***************
*** 601,607 ****
        response to the SELECT command to begin with either "[READ-ONLY]"
        or "[READ-WRITE]" to show the mailbox's access status.
  
!       EXAMPLE: A002 SELECT INBOX
        selects the default mailbox.
  
     tag BBOARD bulletin_board
--- 601,607 ----
        response to the SELECT command to begin with either "[READ-ONLY]"
        or "[READ-WRITE]" to show the mailbox's access status.
  
! 
        selects the default mailbox.
  
     tag BBOARD bulletin_board
***************
*** 1680,1683 ****
  
  
  Crispin                                                        [Page 30]
! 
--- 1680,1683 ----
  
  
  Crispin                                                        [Page 30]
! 
Only in pine3.94/imap: RFC1176.TXT.orig
Common subdirectories: pine3.94.stock/imap/non-ANSI and pine3.94/imap/non-ANSI
Common subdirectories: pine3.94.stock/imap/ANSI/c-client and pine3.94/imap/ANSI/c-client
Common subdirectories: pine3.94.stock/imap/ANSI/imapd and pine3.94/imap/ANSI/imapd
Common subdirectories: pine3.94.stock/imap/ANSI/ipopd and pine3.94/imap/ANSI/ipopd
Common subdirectories: pine3.94.stock/imap/ANSI/ms and pine3.94/imap/ANSI/ms
Common subdirectories: pine3.94.stock/imap/non-ANSI/c-client and pine3.94/imap/non-ANSI/c-client
Common subdirectories: pine3.94.stock/imap/non-ANSI/imapd and pine3.94/imap/non-ANSI/imapd
Common subdirectories: pine3.94.stock/imap/non-ANSI/ipopd and pine3.94/imap/non-ANSI/ipopd
Common subdirectories: pine3.94.stock/imap/non-ANSI/ms and pine3.94/imap/non-ANSI/ms
diff -rc pine3.94.stock/pine/folder.c pine3.94/pine/folder.c
*** pine3.94.stock/pine/folder.c	Tue May 14 21:25:19 1996
--- pine3.94/pine/folder.c	Tue Jun 25 04:28:24 1996
***************
*** 66,73 ****
  #define	FLDR_NAME(X)	((X) ? ((X)->nickname ? (X)->nickname : (X)->name) :"")
  #define	SUBSCRIBE_PMT	\
  		       "Enter newsgroup name (or partial name to get a list): "
!     
! 
  /*----------------------------------------------------------------------
     The data needed to redraw the folders screen, including the case where the 
  screen changes size in which case it may recalculate the folder_display.
--- 66,75 ----
  #define	FLDR_NAME(X)	((X) ? ((X)->nickname ? (X)->nickname : (X)->name) :"")
  #define	SUBSCRIBE_PMT	\
  		       "Enter newsgroup name (or partial name to get a list): "
! #ifdef MBOX_SUBSCRIBE
! #define SUBSCRIBE_PMT_FOLDER \
!                        "Enter folder name (or partial name to get a list): "
! #endif
  /*----------------------------------------------------------------------
     The data needed to redraw the folders screen, including the case where the 
  screen changes size in which case it may recalculate the folder_display.
***************
*** 130,135 ****
--- 132,140 ----
  char      *group_subscription PROTO((int, CONTEXT_S *));
  char      *rename_folder PROTO((int, int, CONTEXT_S *));
  int        delete_folder PROTO((int, CONTEXT_S *, int *));
+ #ifdef MBOX_SUBSCRIBE
+ int        unsub_folder PROTO((int, CONTEXT_S *, int *));
+ #endif
  void       print_folders PROTO((FSTATE_S *));
  int        search_folders PROTO((FSTATE_S *, int));
  int        compare_names PROTO((const QSType *, const QSType *));
***************
*** 171,184 ****
--- 176,200 ----
  	{NULL,NULL,KS_NONE},		{"G","GotoFldr",KS_GOTOFLDR},
  	{"I","CurIndex",KS_FLDRINDEX},	{"W","WhereIs",KS_WHEREIS},
  	{"Y","prYnt",KS_PRINT},		{NULL,NULL,KS_NONE},
+ #ifdef MBOX_SUBSCRIBE
+         {"S","Sub",KS_NONE},            {"U","Unsub",KS_NONE},
+ #endif
  	{NULL,NULL,KS_NONE},		{NULL,NULL,KS_NONE}};
  INST_KEY_MENU(folder_keymenu, folder_keys);
  #define	MAIN_KEY  	2  /* Sometimes Main, sometimes Exit */
  #define	SELECT_KEY	3  /* Sometimes View, sometimes Select */
  #define	OTHER_KEY	1
+ #ifdef MBOX_SUBSCRIBE
+ #define SUB_KEY         7 /* 23 */
+ #define UNSUB_KEY       8 /* 24 */
+ #define       RENAME_KEY      9 /* 22 */
+ #define DELETE_KEY      20
+ #define ADD_KEY         21
+ #else
  #define	DELETE_KEY	8
  #define	ADD_KEY	        9
  #define	RENAME_KEY	10
+ #endif
  #define	WHEREIS_KEY	11
  
  
***************
*** 471,476 ****
--- 487,498 ----
  	      KS_OSDATASET(&folder_keys[SELECT_KEY], KS_NONE);
  	      clrbitn(OTHER_KEY, bitmap);
  	      clrbitn(RENAME_KEY, bitmap);
+ #ifdef MBOX_SUBSCRIBE
+ 	      if (F_ON(F_USE_SUBSCRIPTIONS, ps)) {
+ 		clrbitn(SUB_KEY, bitmap);
+ 		clrbitn(ADD_KEY, bitmap);
+ 	      }
+ #endif
  	      if(do_what == Subscribe){
  		  if(doing_listmode){
  		      folder_keys[DELETE_KEY].name = "X";
***************
*** 487,499 ****
--- 509,534 ----
  
  #ifdef NEWBB
                if(do_what == Subscribe) {
+ #ifdef MBOX_SUBSCRIBE
+                   folder_keys[UNSUB_KEY].name = "X";
+                   folder_keys[UNSUB_KEY].label = "DismissNew";
+ #else /* MBOX_SUBSCRIBE */
                    folder_keys[ADD_KEY].name = "X";
                    folder_keys[ADD_KEY].label = "DismissNew";
+ #endif /* MBOX_SUBSCRIBE */
                } else {
+ #ifdef MBOX_SUBSCRIBE
+ 		clrbitn(UNSUB_KEY, bitmap);
+ #else /* MBOX_SUBSCRIBE */
   	          clrbitn(ADD_KEY, bitmap);
+ #endif /* MBOX_SUBSCRIBE */
                }
  #else
+ #ifdef MBOX_SUBSCRIBE
+ 	      clrbitn(UNSUB_KEY, bitmap);
+ #else /* MBOX_SUBSCRIBE */
  	      clrbitn(ADD_KEY, bitmap);
+ #endif /* MBOX_SUBSCRIBE */
  #endif
  
  	    }
***************
*** 944,949 ****
--- 979,988 ----
  	       && do_what == Subscribe && doing_listmode)
  	      goto DoToggle;  /* different default in this case */
  DoSelect:
+ #ifdef MBOX_SUBSCRIBE
+             if (do_what == FolderMaint && ch == 's')
+               goto do_sub_cmd;
+ #endif
  	    if((do_what != FolderMaint && ch == 'v') 
  	       || (do_what == FolderMaint && ch == 's'))
  	      goto bleep;
***************
*** 1207,1227 ****
--- 1246,1281 ----
  	    return(0);
  
  
+ #ifdef MBOX_SUBSCRIBE
              /*----------------- Add a new folder name -----------*/
+           case OPF10:
+           case 'a':
+             /*--------------- Rename folder ----------------*/
+           case OPF11:
+           case 'r':
+ #else /* MBOX_SUBSCRIBE */
+             /*----------------- Add a new folder name -----------*/
  	  case PF10:
  	  case 'a':
              /*--------------- Rename folder ----------------*/
  	  case PF11:
  	  case 'r':
+ #endif /* MBOX_SUBSCRIBE */
  	    if(do_what != FolderMaint)
  	      goto bleep;
  
+ #ifdef MBOX_SUBSCRIBE
+             if(ch == 'r' || ch == OPF11)
+ #else
  	    if(ch == 'r' || ch == PF11)
+ #endif
  	      new_file =rename_folder(quest_line,fs->folder_index,fs->context);
  	    else {
+ #ifndef MBOX_SUBSCRIBE
                  if(fs->context->type & FTYPE_BBOARD)
                    new_file = group_subscription(quest_line, fs->context);
                  else
+ #endif
  		  new_file = add_new_folder(quest_line, fs->context);
              }
  
***************
*** 1240,1246 ****
--- 1294,1304 ----
  		     
  
              /*-------------- Delete --------------------*/
+ #ifdef MBOX_SUBSCRIBE
+           case OPF9:
+ #else
            case PF9:
+ #endif
  	  case 'd':
  	    if(do_what == Subscribe && ch == PF9){
  		if(doing_listmode)
***************
*** 1274,1279 ****
--- 1332,1410 ----
  	    break;
  
  
+ #ifdef MBOX_SUBSCRIBE
+             /*----------------- Subscribe to a folder -----------*/
+           case PF9:
+           do_sub_cmd: /* 's' from above */
+             if(do_what != FolderMaint)
+               goto bleep;
+ 
+ 	    /* tjs */
+ 	    if(F_OFF(F_USE_SUBSCRIPTIONS, ps_global)) {
+ 		q_status_message(0,0,2,"\007Subscriptions disabled.");
+ 		break;
+ 	    }
+ 
+             new_file = group_subscription(quest_line, fs->context);
+ 
+ 	    if(new_file && ALL_FOUND(fs->context)) {
+ 		if(fs->context->use & CNTXT_PSEUDO){
+ 		    folder_delete(0, fs->context->folders);
+ 		    fs->context->use &= ~CNTXT_PSEUDO;
+ 		}
+ 		/* place cursor on new folder! */
+ 		find_folders_in_context(NULL, fs->context, NULL);
+ 		folder_insert(-1, new_folder(new_file),
+ 			      fs->context->folders); 
+ 		fs->prev_index = -1;
+ 		fs->folder_index = folder_index(new_file,
+ 						fs->context->folders);
+ 		create_folder_display(fs, ps->ttyo->screen_cols);
+ 		q_status_message1(SM_ORDER, 0, 3, "Subscribed to \"%s\"",
+ 				  new_file);
+ 	    }
+ 	    
+ 	    if(fs->prev_index < 0)
+ 		mangled_header++;
+ 
+ 	    mangled_footer++;
+ 
+             break;
+ 
+             /*-------------- Unsubscribe --------------------*/
+           case PF10:
+           case 'u':
+             if(do_what != FolderMaint)
+               goto bleep;
+ 
+                   /* tjs */
+                   if(F_OFF(F_USE_SUBSCRIPTIONS, ps_global)) {
+                       q_status_message(0,0,2,"\007Subscriptions disabled.");
+                       break;
+                   }
+ 
+             if(!ALL_FOUND(fs->context) || (fs->context->use & CNTXT_PSEUDO)){
+                 q_status_message1(0,1,3,
+                             "\007No folder selected to unsubscribe.  %s list.",
+                             (ALL_FOUND(fs->context)) ? "Empty" : "Expand");
+                 break;
+             }
+ 
+             if(unsub_folder(fs->folder_index, fs->context, &mangled_header)){
+                 /* remove from file list */
+                 folder_delete(fs->folder_index, fs->context->folders);
+ 
+                 if(fs->folder_index >= folder_total(fs->context->folders))
+                   fs->folder_index = max(0, fs->folder_index - 1);
+ 
+                 create_folder_display(fs, ps->ttyo->screen_cols);
+                 fs->prev_index = -1; /* Force redraw */
+             }
+ 
+             mangled_footer++;
+             break;
+ #endif /* MBOX_SUBSCRIBE */
+ 
              /*-------------- Toggle subscribe checkbox --------------------*/
  	  case 'x':
  DoToggle:
***************
*** 1299,1305 ****
--- 1430,1440 ----
  
  
               /*------------- Print list of folders ---------*/
+ #ifdef MBOX_SUBSCRIBE
+           case OPF12:
+ #else
            case OPF9:
+ #endif
  	  case 'y':
  	    if(do_what != FolderMaint)
  	      goto bleep;
***************
*** 1961,1966 ****
--- 2096,2107 ----
  	   && !((cntxt->use & CNTXT_INCMNG) && !context_isambig(add_folder))))
        return(NULL);		/* c-client should've reported error */
  
+ #ifdef MBOX_SUBSCRIBE
+     /* If using mailbox subscriptions, then auto-subscribe new created fldrs */
+     if (!context_subscribe(cntxt->context, create_stream, add_folder))
+       return(NULL);             /* c-client should've reported error */
+ #endif /* MBOX_SUBSCRIBE */
+ 
      if(cntxt->use & CNTXT_INCMNG){
  	f = new_folder(add_folder);
  	if(nickname[0]){
***************
*** 2084,2089 ****
--- 2225,2233 ----
      static ESCKEY_S subscribe_keys[] = {{ctrl('T'), 12, "^T", "To All Grps"},
  					{-1, 0, NULL, NULL}};
      extern long	    line_hash();
+ #ifdef MBOX_SUBSCRIBE
+     int mbox_mode = !(cntxt->type & FTYPE_BBOARD);
+ #endif
  
      /*---- Build a context to find all news groups -----*/
      subscribe_cntxt         = *cntxt;
***************
*** 2101,2110 ****
      while(1){
  	xsum = line_hash(add_folder);
          rc = optionally_enter(add_folder, quest_line, 0, MAXFOLDER, 1, 0,
! 			      SUBSCRIBE_PMT, subscribe_keys, help, 0);
  	removing_trailing_white_space(add_folder);
  	removing_leading_white_space(add_folder);
!         if((rc == 0 && *add_folder) || rc == 12){
  	    we_cancel = busy_alarm(1, "Fetching newsgroup list", NULL, 0);
  
  	    if(last_find_partial){
--- 2245,2259 ----
      while(1){
  	xsum = line_hash(add_folder);
          rc = optionally_enter(add_folder, quest_line, 0, MAXFOLDER, 1, 0,
! #ifdef MBOX_SUBSCRIBE
! 			      (mbox_mode?SUBSCRIBE_PMT_FOLDER:SUBSCRIBE_PMT),
! #else /* MBOX_SUBSCRIBE */
! 			      SUBSCRIBE_PMT,
! #endif /* MBOX_SUBSCRIBE */
! 			      subscribe_keys, help, 0);
  	removing_trailing_white_space(add_folder);
  	removing_leading_white_space(add_folder);
! 	if((rc == 0 && *add_folder) || rc == 12){
  	    we_cancel = busy_alarm(1, "Fetching newsgroup list", NULL, 0);
  
  	    if(last_find_partial){
***************
*** 2268,2273 ****
--- 2417,2429 ----
  
  	/* subscribe one at a time */
  	for(i=0; folders[i]; i++){
+ #ifdef MBOX_SUBSCRIBE
+     if (mbox_mode) {
+ 
+       if (context_subscribe(subscribe_cntxt.context, NULL, add_folder) == 0)
+         return (NULL);
+     } else {
+ #endif
  	    context_apply(tmp_20k_buf, subscribe_cntxt.context, folders[i]);
  	    full_name = cpystr(tmp_20k_buf+1);
  	    rc = (int)mail_subscribe_bboard(NULL, full_name);
***************
*** 2302,2307 ****
--- 2458,2466 ----
  		    folder_insert(-1, new_folder(folders[i]), cntxt->folders);
  		}
  	    }
+ #ifdef MBOX_SUBSCRIBE
+     }
+ #endif
  	}
  
  	if(n == 0){
***************
*** 2322,2327 ****
--- 2481,2492 ----
  	fs_give((void **)&folders);
      }
      else{
+ #ifdef MBOX_SUBSCRIBE
+       if (mbox_mode) {
+       if (context_subscribe(subscribe_cntxt.context, NULL, add_folder) == 0)
+         return (NULL);
+       } else {
+ #endif
  	context_apply(tmp_20k_buf, subscribe_cntxt.context, add_folder);
  	full_name = cpystr(tmp_20k_buf+1);
  	rc = (int)mail_subscribe_bboard(NULL, full_name);
***************
*** 2344,2349 ****
--- 2509,2517 ----
  
  	q_status_message1(SM_ORDER, 0, 3, "Subscribed to \"%s\"", add_folder);
      }
+ #ifdef MBOX_SUBSCRIBE
+   }
+ #endif
  
      return(add_folder);
  }
***************
*** 2548,2553 ****
--- 2716,2722 ----
      FOLDER_S   *fp;
      int         ret, close_opened = 0;
  
+ #ifndef MBOX_SUBSCRIBE
      if(cntxt->type & FTYPE_BBOARD){
  	static char fmt[] = "Really unsubscribe from \"%.*s\"";
           
***************
*** 2580,2585 ****
--- 2749,2755 ----
  
  	return(1);
      }
+ #endif /* !MBOX_SUBSCRIBE */
  
      if(!folder_total(cntxt->folders)){
  	q_status_message(SM_ORDER | SM_DING, 0, 4,
***************
*** 2681,2687 ****
--- 2851,2922 ----
  
  
  
+ #ifdef MBOX_SUBSCRIBE
  /*----------------------------------------------------------------------
+    Unsubscribe from a folder
+ 
+    Args: index -- Index of folder in collection to remove
+          cntxt -- The particular collection the folder's to be remove from
+          mangled_header -- Pointer to flag to set if the the anchor line
+                            needs updating (deleted the open folder)
+ 
+  Result: return 0 if not delete, 1 if deleted.
+ 
+  NOTE: Currently disallows deleting open folder...
+   ----*/
+ int
+ unsub_folder(index, cntxt, mangled_header)
+     int        index, *mangled_header;
+     CONTEXT_S *cntxt;
+ {
+     char       *folder, ques_buf[100];
+     MAILSTREAM *del_stream = NULL;
+     FOLDER_S   *fp;
+     int         ret, close_opened = 0;
+   
+     folder = folder_entry(index, cntxt->folders)->name;
+     sprintf(ques_buf, "Really unsubscribe from \"%s\"", folder);
+   
+     ret = want_to(ques_buf, 'n', 'x', NO_HELP, 0, 0);
+     switch(ret) {
+               /* ^C */
+     case 'x':
+               Writechar('\007', 0);
+               /* fall through */
+     case 'n':
+               return(0);
+     }
+   
+     dprint(2, (debugfile, "unsubbing folder \"%s\" in context \"%s\"\n",
+                      folder, cntxt->context));
+ 
+     if(cntxt->type & FTYPE_BBOARD){
+               dprint(8, (debugfile, "unsub folder (bboard)\n"));
+               context_apply(tmp_20k_buf, cntxt->context, folder);
+               dprint(8,(debugfile, "context_apply put %s in tmp_20k_buf\n",
+                         tmp_20k_buf));
+               if(mail_unsubscribe_bboard(NULL, tmp_20k_buf+1) == 0){
+                   q_status_message1(0, 1, 3, "\007Error unsubscribing from \"%s\"",
+                                     folder);
+                   return(0);
+               }
+     } else {    
+               dprint(8, (debugfile, "not bboard\n"))
+               context_apply(tmp_20k_buf, cntxt->context, folder);
+               dprint(8,(debugfile, "context_apply put [%s] in tmp_20k_buf\n",
+                         tmp_20k_buf));
+               if(mail_unsubscribe(NULL, tmp_20k_buf /*+1*/ ) == 0){
+                   q_status_message1(0, 1, 3, "\007Error unsubscribing from \"%s\"",
+                                     folder);
+                   return(0);
+               }
+     }
+     dprint(8,(debugfile, "unsub_folder returning normally\n"));
+     return(1);
+ }
+ #endif /* MBOX_SUBSCRIBE */
+ 
+ /*----------------------------------------------------------------------
        Print the list of folders on paper
  
     Args: list    --  The current list of folders
***************
*** 3994,3999 ****
--- 4229,4240 ----
  	 * (probably only necessary to rebuild the section that has
  	 * to do with the current context)
  	 */
+ #ifdef MBOX_SUBSCRIBE
+       if ((!(context->use & CNTXT_FINDALL)) &&
+                 F_ON(F_USE_SUBSCRIPTIONS, ps_global))
+         context_find(search_context, find_folder_stream, search_string);
+       else
+ #endif
  	context_find_all(search_context, find_folder_stream, search_string);
      }
  
Only in pine3.94/pine: folder.c.orig
diff -rc pine3.94.stock/pine/folder.c pine3.94/pine/folder.cpine3.94.stock/pine/init.c pine3.94/pine/init.c
*** pine3.94.stock/pine/init.c	Mon Jun  3 13:04:01 1996
--- pine3.94/pine/init.c	Tue Jun 25 04:28:27 1996
***************
*** 313,320 ****
--- 313,324 ----
                          /* Have to have this on DOS, PC's, Macs, etc... */
  {"user-id",                    0, 1, 0, 1, 0, 0, 0,
  #else			/* Don't allow on UNIX machines for some security */
+ #ifdef ALLOW_CHANGING_FROM
+ {"user-id",                    0, 1, 0, 1, 0, 0, 0,
+ #else
  {"user-id",                    0, 0, 0, 1, 0, 0, 0,
  #endif
+ #endif
      cf_text_user_id},
  {"user-domain",                0, 1, 0, 1, 1, 0, 0, cf_text_user_domain},
  {"smtp-server",                0, 1, 0, 1, 1, 1, 0, cf_text_smtp_server},
***************
*** 1392,1397 ****
--- 1396,1404 ----
  	{"use-current-dir",			F_USE_CURRENT_DIR},
  	{"use-function-keys",			F_USE_FK},
  	{"use-sender-not-x-sender",		F_USE_SENDER_NOT_X},
+ #ifdef MBOX_SUBSCRIBE
+ 	{"use-subscriptions",               F_USE_SUBSCRIPTIONS},
+ #endif
  	{"use-subshell-for-suspend",		F_SUSPEND_SPAWNS}
      };
  
***************
*** 2398,2404 ****
--- 2405,2423 ----
  
      ps->VAR_USER_ID = cpystr(expanded ? expanded : "");
  #else
+ #ifdef ALLOW_CHANGING_FROM
+     if(ps->vars[V_USER_ID].cmdline_val.p)
+       expanded = expand_variables(tmp_20k_buf,
+                                   ps->vars[V_USER_ID].cmdline_val.p);
+     
+     if(!expanded && ps->vars[V_USER_ID].user_val.p)
+       expanded = expand_variables(tmp_20k_buf,
+                                   ps->vars[V_USER_ID].user_val.p);
+ 
+     ps->VAR_USER_ID = cpystr(expanded ? expanded : ps->ui.login);
+ #else /* ALLOW_CHANGING_FROM */
      ps->VAR_USER_ID = cpystr(ps->ui.login);
+ #endif
      if(!ps->VAR_USER_ID[0]){
          fprintf(stderr, "Who are you? (Unable to look up login name)\n");
          rv = -1;
Only in pine3.94/pine: init.c.orig
diff -rc pine3.94.stock/pine/init.c pine3.94/pine/init.cpine3.94.stock/pine/mailcmd.c pine3.94/pine/mailcmd.c
*** pine3.94.stock/pine/mailcmd.c	Mon Jun  3 16:32:50 1996
--- pine3.94/pine/mailcmd.c	Tue Jun 25 04:28:30 1996
***************
*** 1180,1186 ****
      struct pine *state;
      char	*cmd;
  {
!     if(READONLY_FOLDER || state->dead_stream){
  	q_status_message2(SM_ORDER | (state->dead_stream ? SM_DING : 0), 0, 3,
  			  "Can't %s message.  Folder is %s.", cmd,
  			  (state->dead_stream) ? "closed" : "read-only");
--- 1180,1186 ----
      struct pine *state;
      char	*cmd;
  {
!     if(/*READONLY_FOLDER ||*/ state->dead_stream){
  	q_status_message2(SM_ORDER | (state->dead_stream ? SM_DING : 0), 0, 3,
  			  "Can't %s message.  Folder is %s.", cmd,
  			  (state->dead_stream) ? "closed" : "read-only");
Only in pine3.94/pine: mailcmd.c.orig
diff -rc pine3.94.stock/pine/mailcmd.c pine3.94/pine/mailcmd.cpine3.94.stock/pine/makefile.hpp pine3.94/pine/makefile.hpp
*** pine3.94.stock/pine/makefile.hpp	Fri Mar 15 02:14:59 1996
--- pine3.94/pine/makefile.hpp	Tue Jun 25 04:28:30 1996
***************
*** 54,60 ****
  PICODIR=     ../pico
  
  STDLIBES=    -ltermcap -lnet 
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DHPP -DSYSTYPE=\"HPP\" -DMOUSE
--- 54,60 ----
  PICODIR=     ../pico
  
  STDLIBES=    -ltermcap -lnet 
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a -L/usr/local/lib -lkrb -ldes
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DHPP -DSYSTYPE=\"HPP\" -DMOUSE
***************
*** 73,79 ****
  	ttyout.c os.c
  
  # The & means make in parallel
! pine: $& $(obj) $(LOCLIBES)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
--- 73,79 ----
  	ttyout.c os.c
  
  # The & means make in parallel
! pine: $& $(obj) 
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
Only in pine3.94/pine: makefile.hpp.orig
diff -rc pine3.94.stock/pine/makefile.hpp pine3.94/pine/makefile.hpppine3.94.stock/pine/makefile.sol pine3.94/pine/makefile.sol
*** pine3.94.stock/pine/makefile.sol	Wed Jun  5 13:15:13 1996
--- pine3.94/pine/makefile.sol	Tue Jun 25 04:28:30 1996
***************
*** 55,61 ****
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -lsocket -lnsl -lgen
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  # Use these for the Solaris C compiler
--- 55,61 ----
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -lsocket -lnsl -lgen
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a -L/usr/local/lib -lkrb -ldes -liberty
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  # Use these for the Solaris C compiler
***************
*** 85,91 ****
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj) $(LOCLIBES)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(LDCC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
--- 85,91 ----
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(LDCC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
Only in pine3.94/pine: makefile.sol.orig
diff -rc pine3.94.stock/pine/makefile.sol pine3.94/pine/makefile.solpine3.94.stock/pine/makefile.sun pine3.94/pine/makefile.sun
*** pine3.94.stock/pine/makefile.sun	Fri Mar 15 02:15:12 1996
--- pine3.94/pine/makefile.sun	Tue Jun 25 04:28:31 1996
***************
*** 54,60 ****
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -ldl
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DSUN -DSYSTYPE=\"SUN\" -DMOUSE
--- 54,60 ----
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -ldl
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a -L/usr/local/lib -lkrb -ldes
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DSUN -DSYSTYPE=\"SUN\" -DMOUSE
***************
*** 72,78 ****
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj) $(LOCLIBES)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
--- 72,78 ----
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj) 
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
Only in pine3.94/pine: makefile.sun.orig
diff -rc pine3.94.stock/pine/makefile.sun pine3.94/pine/makefile.sunpine3.94.stock/pine/makefile.ult pine3.94/pine/makefile.ult
*** pine3.94.stock/pine/makefile.ult	Thu Apr 25 17:04:52 1996
--- pine3.94/pine/makefile.ult	Tue Jun 25 04:28:31 1996
***************
*** 54,60 ****
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -lauth
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DULT -DSYSTYPE=\"ULT\" -DMOUSE
--- 54,60 ----
  PICODIR=     ../pico
  
  STDLIBES=    -ltermlib -lauth
! LOCLIBES=    $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a -L/usr/local/lib -lkrb -ldes
  LIBES=       $(EXTRALIBES) $(LOCLIBES) $(STDLIBES)
  
  STDCFLAGS=   -Dconst= -DULT -DSYSTYPE=\"ULT\" -DMOUSE
***************
*** 72,78 ****
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj) $(LOCLIBES)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
--- 72,78 ----
  	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
  	ttyout.c os.c
  
! pine:  $(obj)
  	echo "char datestamp[]="\"`date`\"";" > date.c
  	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
  	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
Only in pine3.94/pine: makefile.ult.orig
Common subdirectories: pine3.94.stock/pine/osdep and pine3.94/pine/osdep
diff -rc pine3.94.stock/pine/makefile.ult pine3.94/pine/makefile.ultpine3.94.stock/pine/other.c pine3.94/pine/other.c
*** pine3.94.stock/pine/other.c	Tue May 28 20:06:47 1996
--- pine3.94/pine/other.c	Tue Jun 25 04:28:33 1996
***************
*** 2480,2485 ****
--- 2480,2489 ----
  	  case F_ENABLE_SPACE_AS_TAB :
  	    return(h_config_cruise_mode);
  	  case F_ENABLE_TAB_DELETES :
+ #ifdef MBOX_SUBSCRIBE
+           case F_USE_SUBSCRIPTIONS :
+             return(h_config_use_subscriptions);
+ #endif /* MBOX_SUBSCRIBE */
  	    return(h_config_cruise_mode_delete);
  	  case F_ALLOW_GOTO :
  	    return(h_config_allow_goto);
Only in pine3.94/pine: other.c.orig
diff -rc pine3.94.stock/pine/other.c pine3.94/pine/other.cpine3.94.stock/pine/pine.h pine3.94/pine/pine.h
*** pine3.94.stock/pine/pine.h	Wed Jun  5 14:08:57 1996
--- pine3.94/pine/pine.h	Tue Jun 25 04:28:36 1996
***************
*** 1,3 ****
--- 1,4 ----
+ #define MBOX_SUBSCRIBE
  /*----------------------------------------------------------------------
    $Id: pine.h,v 4.453 1996/06/05 18:08:46 mikes Exp $
  
***************
*** 63,69 ****
  #ifndef _PINE_INCLUDED
  #define _PINE_INCLUDED
  
! #define PINE_VERSION		"3.94"
  #define	PHONE_HOME_VERSION	"394"
  #define	PHONE_HOME_HOST		"docserver.cac.washington.edu"
  #define	UPDATE_FOLDER		"{pine.cac.washington.edu:144/anonymous}#news."
--- 64,70 ----
  #ifndef _PINE_INCLUDED
  #define _PINE_INCLUDED
  
! #define PINE_VERSION		"3.94L"
  #define	PHONE_HOME_VERSION	"394"
  #define	PHONE_HOME_HOST		"docserver.cac.washington.edu"
  #define	UPDATE_FOLDER		"{pine.cac.washington.edu:144/anonymous}#news."
***************
*** 1145,1151 ****
--- 1146,1157 ----
  #define	F_FROM_DELIM_IN_PRINT	   80
  #define	F_BACKGROUND_POST	   81
  #define	F_ALLOW_GOTO		   82
+ #ifdef MBOX_SUBSCRIBE
+ #define F_USE_SUBSCRIPTIONS        83
+ #define F_LAST_FEATURE             83
+ #else
  #define F_LAST_FEATURE		   82		 /* RESET WITH NEW FEATURES */
+ #endif
  
  #if (F_LAST_FEATURE > (LARGEST_BITMAP - 1))
     Whoa!  Too many features!
Only in pine3.94/pine: pine.h.orig
diff -rc pine3.94.stock/pine/pine.h pine3.94/pine/pine.hpine3.94.stock/pine/pine.hlp pine3.94/pine/pine.hlp
*** pine3.94.stock/pine/pine.hlp	Tue Jun 11 02:41:24 1996
--- pine3.94/pine/pine.hlp	Tue Jun 25 04:28:40 1996
***************
*** 4887,4892 ****
--- 4887,4900 ----
  Sender to be used instead of X-Sender.
  
  <End of help on this topic>
+ ====== h_config_use_subscriptions =====
+         FEATURE: use-subscriptions
+ 
+ Normally Pine does not recognize IMAP subscription lists.  Setting this
+ option causes Pine do display only those mailboxes which you are
+ subscribed to, instead of all of the mailboxes in that folder collection.
+ 
+ <End of help on this topic>
  ====== h_config_use_fk =====
          FEATURE: use-function-keys
  
Only in pine3.94/pine: pine.hlp.orig
