1 #ifndef _SLRN_FEATURES_H
2 #define _SLRN_FEATURES_H
3 /* Note!!!
4  * Lines beginning with '#' characters do NOT indicate that the line is
5  * commented out.  C does NOT use '#' as a comment character.  In this file,
6  * '1' indicates that the feature will be turned on, and '0' indicates that
7  * the feature will be turned off.
8  */
9 
10 /* These are essential macro definitions for Japanized version of slrn */
11 #ifndef SLRNPULL_CODE
12 #define KANJI
13 #define SLANG_HAS_KANJI_SUPPORT 1
14 #endif
15 
16 /* SLRN_TZ_TYPE is not necessary, but is recommended to be defined */
17 /* according to such system types as below */
18 /* CYGWIN32(not MINGW32)		define none */
19 /* EWS4800, MINGW32(included in CYGWIN-b20), HP-UX(R11.0) */
20 /*					SLRN_TZ_TZNAME */
21 /* FreeBSD				SLRN_TZ_TM_ZONE */
22 /* Linux, IRIX, SUNOS, Solaris, .... 		not known */
23 #define SLRN_TZ_TZNAME   1   /* tzname[] */
24 #define SLRN_TZ_TM_ZONE  2   /* timezone set in tm_zone of struct tm */
25 #define SLRN_TZ_TIMEZONE 3   /* timezone() */
26   /* choose one from listed above */
27 /* #define SLRN_TZ_TYPE SLRN_TZ_TZNAME */
28 #define SLRN_TZ_TYPE SLRN_TZ_TM_ZONE
29 
30 #define SLRN_DEFAULT_TIMEZONE "JST"
31 #define SLRN_DEFAULT_CHARSET "ISO-2022-JP"
32 
33 /* If you need not read Unicode Kanji, you may undef this macro. */
34 /* because this requires a big convert table. */
35 #define SLRN_UNICODE_KANJI_CONVERT 1
36 
37 /* If you enable local SPOOL support, you must also enable NNTP support
38  * or INEWS support.  Also, see below for filenames regarding the location
39  * of the local spool and inews.  Currently only unix supports this.
40  *
41  * NOTE: if you intend to use slrnpull, make sure you enable SPOOL_SUPPORT
42  *       in addition to PULL_SUPPORT.
43  */
44 #define SLRN_HAS_PULL_SUPPORT	1
45 #define SLRN_HAS_NNTP_SUPPORT	1
46 #define SLRN_HAS_SPOOL_SUPPORT	1
47 #define SLRN_HAS_INEWS_SUPPORT	0
48 /* Set this to 1 to force the user to use INEWS for posting.  This also means
49  * that slrn will use the hardcoded inews program pathname.
50  */
51 #define SLRN_FORCE_INEWS	0
52 
53 #define SLRN_HAS_SPOILERS	1
54 #define SLRN_HAS_MIME		1
55 #define SLRN_HAS_SORT_BY_SCORE	1
56 
57 /* If non-zero, a User-Agent header will be generated instead of X-Newsreader. */
58 #define SLRN_HAS_USER_AGENT	1
59 
60 /* If non-zero '~' characters will be used at the end of an article.  This
61  * is what the vi editor does. */
62 #define SLRN_HAS_TILDE_FEATURE	1
63 
64 /* If non-zero, a special message will be displayed when article is the last
65  * one in a thread.
66  */
67 #define SLRN_HAS_END_OF_THREAD	1
68 
69 /* If non-zero, text like *this* and _that_ will be highlighted. */
70 #define SLRN_HAS_EMPHASIZED_TEXT	1
71 
72 /* If non-zero, slrn will treat specially marked lines of an article
73  * as verbatum text.  It uses #v+ and #v- as markers of such text, e.g.,
74  * #v+
75  *    This line denotes verbatum text.
76  * #v-
77  */
78 #define SLRN_HAS_VERBATUM_MARKS	1
79 
80 /* See README.GroupLens.  This only works if SLRN_USE_SLTCP is non-zero.
81  * Also make sure NNTP support is enabled.
82  */
83 #define SLRN_HAS_GROUPLENS	0
84 
85 /* If set to 1, slrn will cache message-ids during a session and use those
86  * to eliminate cross-posts.  This should not be necessary if the server
87  * supports Xref in its overview database.
88  */
89 #define SLRN_HAS_MSGID_CACHE	0
90 
91 /* Set this to 0 if you do not want the slang interpreter made available. */
92 #define SLRN_HAS_SLANG		1
93 
94 /* Set this to 0 if you do not want slrn to generate message-id header. */
95 #define SLRN_HAS_GEN_MSGID	0
96 
97 /* If you want mapping ISO Latin <--> native character set, set this to 1.
98  * Supported character sets: isolatin, ibm850, and next
99  */
100 #define SLRN_HAS_CHARACTER_MAP	0
101 
102 /* If you want to use uudeview's uulib instead of slrn's builtin one
103  * change this to 1.  You will also need to edit the Makefile to point to
104  * the uudeview include file and and library.  Only enable this if you
105  * have uudeview installed on your system.
106  */
107 #define SLRN_HAS_UUDEVIEW	0
108 
109 /* If an article does not contain a references but it contains an In-reply-to
110  * header, then the In-reply-to header might serve as a references
111  * header. Set this to 1 to allow for that possibility.  Since this
112  * only works if XOVER is not used, most NNTP users will not be
113  * affected by it.  However, it could be a big win for slrnpull users
114  * who read groups that are gatewayed from a mailing list, e.g.,
115  * comp.os.msdos.djgpp.
116  */
117 #define SLRN_HAS_FAKE_REFS	1
118 
119 /* The sltcp interface is necessary for simultaneous tcp/ip connections. */
120 #define SLRN_USE_SLTCP		1
121 
122 #ifndef VMS
123 # define SLRN_HAS_DECODE	1
124 # define SLRN_HAS_PIPING	1
125 #else
126 # define SLRN_HAS_PIPING	0
127 # define SLRN_HAS_DECODE	0
128 #endif
129 
130 /* If non-zero, an rn style lock file will be created if .newsrc is the newsrc
131  * file.
132  */
133 #if defined(VMS) || defined(__os2__) || defined(__NT__)
134 # define SLRN_HAS_RNLOCK	0
135 #else
136 # define SLRN_HAS_RNLOCK	1
137 #endif
138 
139 /* If non-zero, slrn will add From header to mail messages. */
140 #if defined(IBMPC_SYSTEM) && !defined(KANJI)
141 # define SLRN_GEN_FROM_EMAIL_HEADER 1
142 #else
143 # define SLRN_GEN_FROM_EMAIL_HEADER 0
144 #endif
145 
146 #define SLRN_MAX_HEADER_FORMATS 10
147 
148 /* ----------------  LOCAL SPOOL and INEWS filenames and configuration ----------------------- */
149 
150 #if SLRN_HAS_INEWS_SUPPORT
151   /* Note the -S flag.  slrn appends the signature to the file to be posted and
152    * the -S flag tells inews not to also do this.  The -h flag must be used.
153    */
154 # define SLRN_INEWS_PROGRAM      "/usr/local/bin/inews -S -h"
155 #endif
156 
157 #if SLRN_HAS_SPOOL_SUPPORT || defined(SLRNPULL_CODE)
158 
159 /* Note: Do not be confused by INN.  You do not need INN.  slrn can work with
160  *       CNEWS just as well.
161  */
162 
163   /* Root directory names */
164 # define SLRN_SPOOL_ROOT	"/var/spool/news"
165   /* SLRN_NOV_ROOT gives the root directory for overview files
166    * if you don't have overview files, leave as SLRN_SPOOL_ROOT for now */
167 # define SLRN_SPOOL_NOV_ROOT	SLRN_SPOOL_ROOT
168   /* SLRN_NOV_FILE gives filename for overview file in each directory */
169 # define SLRN_SPOOL_NOV_FILE	".overview"
170 
171 # define SLRN_SPOOL_INNROOT	"/var/lib/news"
172   /* If the following filenames are relative ones, they are considered to be
173    * relative to SLRN_SPOOL_INNROOT.
174    */
175 # define SLRN_SPOOL_ACTIVE	"data/active"
176 # define SLRN_SPOOL_ACTIVETIMES	"data/active.times"
177 # define SLRN_SPOOL_NEWSGROUPS	"data/newsgroups"
178 
179   /* set to 1 to allow scanning the active file for article ranges if there's
180    * no .overview file -- if 0 or no active file, then look at filenames in
181    * the spool directory instead.  0 seems best... */
182 # define SPOOL_ACTIVE_FOR_ART_RANGE 0
183 #endif
184 
185 /* Default Startup mode.  Should slrn use spool or nntp?  What about default
186  * posting agent?
187  */
188 #if SLRN_HAS_NNTP_SUPPORT
189 # define SLRN_DEFAULT_SERVER_OBJ	SLRN_SERVER_ID_NNTP
190 # define SLRN_DEFAULT_POST_OBJ		SLRN_POST_ID_NNTP
191 #else
192 # define SLRN_DEFAULT_SERVER_OBJ	SLRN_SERVER_ID_SPOOL
193 # define SLRN_DEFAULT_POST_OBJ		SLRN_POST_ID_INEWS
194 #endif
195 
196 #if SLRN_HAS_INEWS_SUPPORT && SLRN_FORCE_INEWS
197 # undef SLRN_DEFAULT_POST_OBJ
198 # define SLRN_DEFAULT_POST_OBJ SLRN_POST_ID_INEWS
199 #endif
200 
201 
202 
203 /* ---------------- end of INEWS and LOCAL SPOOL configuration ----------- */
204 
205 #ifdef VMS
206 /*
207  *                                                            VMS filenames
208  */
209 # define SLRN_FAILED_POST_FILE		"slrn-failed-post.txt"
210 # define SLRN_USER_SLRNRC_FILENAME	"slrn.rc"
211 # define SLRN_LETTER_FILENAME		"slrn-letter.txt"
212 # define SLRN_ARTICLE_FILENAME		"slrn-article.txt"
213 # define SLRN_FOLLOWUP_FILENAME		"slrn-followup.txt"
214 # define SLRN_SIGNATURE_FILE		".signature"
215 # ifndef SLRN_LIB_DIR
216 #  define SLRN_LIB_DIR			"sys$manager:"
217 # endif
218 #else
219 # if defined(IBMPC_SYSTEM)
220 /*
221  *                                                             OS/2 filenames
222  */
223 #  define SLRN_FAILED_POST_FILE		"failpost.txt"
224 #  define SLRN_USER_SLRNRC_FILENAME	"slrn.rc"
225 #  define SLRN_LETTER_FILENAME		"letter.txt"
226 #  define SLRN_ARTICLE_FILENAME		"article.txt"
227 #  define SLRN_FOLLOWUP_FILENAME	"followup.txt"
228 #  define SLRN_SIGNATURE_FILE		"signatur.txt"
229 #  define SLRN_SENDMAIL_COMMAND		"sendmail -t -af"
230 #  ifndef SLRN_LIB_DIR
231 #    define SLRN_LIB_DIR		"C:/slrn"
232 #  endif
233 # else
234 #  ifdef __unix__
235 /*
236  *                                                             Unix filenames
237  */
238 #   define SLRN_FAILED_POST_FILE	"slrn-failed-post.txt"
239 #   define SLRN_USER_SLRNRC_FILENAME	".slrnrc"
240 #   define SLRN_LETTER_FILENAME	".letter"
241 #   define SLRN_ARTICLE_FILENAME	".article"
242 #   define SLRN_FOLLOWUP_FILENAME	".followup"
243 #   define SLRN_SIGNATURE_FILE		".signature"
244 #   define SLRN_SENDMAIL_COMMAND	"/usr/sbin/sendmail -oi -t -oem -odb"
245 #   ifndef SLRN_LIB_DIR
246 #    define SLRN_LIB_DIR		"/usr/local/lib/slrn"
247 #   endif
248 #  endif			       /* unix */
249 # endif				       /* os2 */
250 #endif				       /* vms */
251 
252 /* #define OUR_ORGANIZATION "organization-name" */
253 /* #define OUR_HOSTNAME "host.name.here" */
254 /* #define NNTPSERVER_NAME  "my.server.name" */
255 /* #define NNTPSERVER_FILE		"/usr/local/lib/news/nntp_server" */
256 
257 #if SLRN_HAS_GROUPLENS
258 # undef SLRN_USE_SLTCP
259 # define SLRN_USE_SLTCP 1
260 #endif
261 
262 /* The rest of the files apply to slrnpull. */
263 
264 /* This must be set to an absolute pathname. */
265 #define SLRNPULL_ROOT_DIR	"/var/spool/news/slrnpull"
266 
267 /* The remaing variables are specified as relative names with respect to the
268  * SLRNPULL_ROOT_DIR.
269  */
270 
271 /* slrnpull configuration filename. */
272 #define SLRNPULL_CONF		"slrnpull.conf"
273 
274 /* slrnpull outgoing post directory. */
275 #define SLRNPULL_OUTGOING_DIR	"out.going"
276 
277 /* If set to 1, slrn will write files to the outgoing directory with group
278  * write permission.  This assumes that the outgoing directory has been
279  * created with the setgid bit enabled, which slrnpull will do if this is
280  * set to 1.  See slrn/slrnpull/setgid.txt for more information.
281  */
282 #define SLRNPULL_USE_SETGID_POSTS	0
283 
284 /* The file that will be used for killing articles as they are fetched. */
285 #define SLRNPULL_SCORE_FILE	"score"
286 
287 /* All news article retrived from the server will be placed in newsgroup
288  * subdirectories in this directory.
289  */
290 #define SLRNPULL_NEWS_DIR	"news"
291 
292 /* File where messages and errors will be placed. */
293 #define SLRNPULL_LOGFILE	"log"
294 
295 #if SLRN_HAS_PULL_SUPPORT && !SLRN_HAS_SPOOL_SUPPORT
296 # undef SLRN_HAS_PULL_SUPPORT
297 # define SLRN_HAS_PULL_SUPPORT 0
298 #endif
299 
300 #if !SLRN_HAS_NNTP_SUPPORT
301 # undef SLRN_HAS_GROUPLENS
302 # define SLRN_HAS_GROUPLENS 0
303 #endif
304 
305 /* Sanity checks.  Do not modify. */
306 
307 #if !defined (SLRN_DEFAULT_SERVER_OBJ)
308 # if SLRN_HAS_NNTP_SUPPORT
309 #  define SLRN_DEFAULT_SERVER_OBJ SLRN_SERVER_ID_NNTP
310 # else
311 #  define SLRN_DEFAULT_SERVER_OBJ SLRN_SERVER_ID_SPOOL
312 # endif
313 #endif
314 
315 #if !defined (SLRN_DEFAULT_POST_OBJ)
316 # if SLRN_HAS_NNTP_SUPPORT
317 #  define SLRN_DEFAULT_POST_OBJ SLRN_POST_ID_NNTP
318 # else
319 #  define SLRN_DEFAULT_POST_OBJ SLRN_POST_ID_INEWS
320 # endif
321 #endif
322 
323 #endif				       /* _SLRN_FEATURES_H */
324