Commit 0f5a13fcb07e0aab1a7e8902d2abcb9c953b9148

Authored by perry.werneck@gmail.com
1 parent 88832e03

Ajustes para compilar em android

XtGlue.c
... ... @@ -566,60 +566,6 @@ static int DefaultProcessEvents(int block)
566 566  
567 567 /*---[ Implement external calls ]---------------------------------------------------------------------------*/
568 568  
569   -void * Malloc(size_t len)
570   -{
571   - char *r;
572   -
573   - r = malloc(len);
574   - if (r == (char *)NULL)
575   - Error(NULL,"Out of memory");
576   - return r;
577   -}
578   -
579   -void * Calloc(size_t nelem, size_t elsize)
580   -{
581   - int sz = nelem * elsize;
582   - char * r = malloc(sz);
583   -
584   - if(!r)
585   - Error(NULL,"Out of memory");
586   -
587   - memset(r, 0, sz);
588   - return r;
589   -}
590   -
591   -void * Realloc(void *p, size_t len)
592   -{
593   - p = realloc(p, len);
594   - if (p == NULL)
595   - Error(NULL,"Out of memory");
596   - return p;
597   -}
598   -
599   -void Free(void *p)
600   -{
601   - if(p)
602   - free(p);
603   -}
604   -
605   -void * lib3270_calloc(size_t elsize, size_t nelem, void *ptr)
606   -{
607   - size_t sz = nelem * elsize;
608   -
609   - if(ptr)
610   - ptr = realloc(ptr,sz);
611   - else
612   - ptr = malloc(sz);
613   -
614   - if(ptr)
615   - memset(ptr,0,sz);
616   - else
617   - Error(NULL,"Out of memory");
618   -
619   - return ptr;
620   -}
621   -
622   -
623 569 static struct {
624 570 const char *name;
625 571 KeySym keysym;
... ...
charset.c
... ... @@ -159,25 +159,28 @@ restore_charset(void)
159 159 }
160 160  
161 161 /* Get a character set definition. */
162   -static const char * get_charset_def(const char *csname)
  162 +/*
  163 +static char * get_charset_def(const char *csname)
163 164 {
164   - return get_fresource("%s.%s", ResCharset, csname);
  165 + return get_fresource("%s.%s", "charset", csname);
165 166 }
  167 +*/
166 168  
167   -#if defined(X3270_DBCS) /*[*/
168 169 /*
169   - * Initialize the DBCS conversion functions, based on resource values.
170   - */
  170 +#if defined(X3270_DBCS)
  171 +//
  172 +// Initialize the DBCS conversion functions, based on resource values.
  173 +//
171 174 static int
172 175 wide_resource_init(char *csname)
173 176 {
174 177 char *cn, *en;
175 178  
176   - cn = get_fresource("%s.%s", ResDbcsConverters, csname);
  179 + cn = get_fresource("%s.%s", "dbcsConverters", csname);
177 180 if (cn == CN)
178 181 return 0;
179 182  
180   - en = get_fresource("%s.%s", ResLocalEncoding, csname);
  183 + en = get_fresource("%s.%s", "localEncoding", csname);
181 184 if (en == CN)
182 185 en = appres.local_encoding;
183 186 Replace(converter_names, cn);
... ... @@ -186,78 +189,60 @@ wide_resource_init(char *csname)
186 189 return wide_init(cn, en);
187 190  
188 191 }
189   -#endif /*]*/
  192 +#endif
  193 +*/
190 194  
191 195 /*
192 196 * Change character sets.
193 197 */
194 198 enum cs_result charset_init(H3270 *session, char *csname)
195 199 {
196   - const char *cs;
  200 + char *cs;
197 201 const char *ftcs;
198 202 enum cs_result rc;
199 203 char *ccs, *cftcs;
200   -/*
201   -#if defined(X3270_DISPLAY)
202   - char *xks;
203   -#endif
204   -*/
205 204 const char *ak;
206 205  
207   -/*
208   -#if !defined(_WIN32)
209   - char *codeset_name;
210   -#endif
211   -
212   -#if !defined(_WIN32)
213   - // Get all of the locale stuff right.
214   -
215   - // Figure out the locale code set (character set encoding).
216   - codeset_name = nl_langinfo(CODESET);
217   - Trace("codeset_name: %s",codeset_name);
218   - set_codeset(codeset_name);
219   -#endif
220   -*/
221   -
222 206  
223 207 /* Do nothing, successfully. */
224 208 if (csname == CN || !strcasecmp(csname, "us"))
225 209 {
226 210 charset_defaults();
227 211 set_cgcsgids(CN);
228   -// set_charset_name(CN);
229 212 set_display_charset(session, "ISO-8859-1");
230 213 return CS_OKAY;
231 214 }
232 215  
233 216 /* Figure out if it's already in a resource or in a file. */
234   - cs = get_charset_def(csname);
235   - if (cs == CN &&
236   - strlen(csname) > ES_SIZE &&
237   - !strcasecmp(csname + strlen(csname) - ES_SIZE, EURO_SUFFIX)) {
238   - char *basename;
  217 +#ifdef ANDROID
  218 + ccs = strdup("0xad: [ \n 0xba: Yacute \n0xbd: ] \n 0xbb: diaeresis \n");
  219 +#else
  220 + ccs = lib3270_get_resource_string("charset", csname, NULL);
  221 +#endif
  222 +/*
  223 + if (cs == CN && strlen(csname) > ES_SIZE && !strcasecmp(csname + strlen(csname) - ES_SIZE, EURO_SUFFIX))
  224 + {
  225 + char *basename =
  226 + lib3270_free(cs);
239 227  
240   - /* Grab the non-Euro definition. */
  228 + // Grab the non-Euro definition.
241 229 basename = xs_buffer("%.*s", (int) (strlen(csname) - ES_SIZE), csname);
242 230 cs = get_charset_def(basename);
243 231 Free(basename);
244 232 }
245   - if (cs == CN)
  233 +*/
  234 + if (!ccs)
246 235 return CS_NOTFOUND;
247 236  
248 237 /* Grab the File Transfer character set. */
249   - ftcs = get_fresource("%s.%s", ResFtCharset, csname);
250   -
251   - /* Copy strings. */
252   - ccs = NewString(cs);
253   - cftcs = (ftcs == NULL)? NULL: NewString(ftcs);
  238 + cftcs = lib3270_get_resource_string("ftCharset",csname,NULL);
254 239  
255 240 /* Save the current definitions, and start over with the defaults. */
256 241 save_charset();
257 242 charset_defaults();
258 243  
259 244 /* Check for auto-keymap. */
260   - ak = get_fresource("%s.%s", ResAutoKeymap, csname);
  245 + ak = lib3270_get_resource_string("autoKeymap", csname, NULL);
261 246 if (ak != NULL)
262 247 auto_keymap = !strcasecmp(ak, "true");
263 248 else
... ... @@ -277,12 +262,15 @@ enum cs_result charset_init(H3270 *session, char *csname)
277 262  
278 263 if (rc != CS_OKAY)
279 264 restore_charset();
280   -#if defined(X3270_DBCS) /*[*/
  265 +
  266 +/*
  267 +#if defined(X3270_DBCS)
281 268 else if (wide_resource_init(csname) < 0) {
282 269 restore_charset();
283 270 return CS_NOTFOUND;
284 271 }
285   -#endif /*]*/
  272 +#endif
  273 +*/
286 274  
287 275 /*
288 276 #if defined(X3270_DISPLAY)
... ... @@ -384,11 +372,11 @@ set_charset_name(char *csname)
384 372 /* Define a charset from resources. */
385 373 static enum cs_result resource_charset(char *csname, char *cs, char *ftcs)
386 374 {
387   - enum cs_result rc;
388   - int ne = 0;
389   - const char *rcs = CN;
390   - int n_rcs = 0;
391   - const char *dcs;
  375 + enum cs_result rc;
  376 + int ne = 0;
  377 + char * rcs = CN;
  378 + int n_rcs = 0;
  379 + char * dcs;
392 380  
393 381 /* Interpret the spec. */
394 382 rc = remap_chars(csname, cs, (ftcs == NULL)? BOTH: CS_ONLY, &ne);
... ... @@ -400,37 +388,44 @@ static enum cs_result resource_charset(char *csname, char *cs, char *ftcs)
400 388 return rc;
401 389 }
402 390  
403   - rcs = get_fresource("%s.%s", ResDisplayCharset, csname);
  391 +// rcs = get_fresource("%s.%s", "displayCharset", csname);
  392 + rcs = lib3270_get_resource_string("displayCharset", csname, NULL);
404 393  
405 394 /* Isolate the pieces. */
406   - if (rcs != CN) {
407   - char *rcs_copy, *buf, *token;
  395 + if (rcs != CN)
  396 + {
  397 + char *buf, *token;
408 398  
409   - buf = rcs_copy = NewString(rcs);
410   - while ((token = strtok(buf, "+")) != CN) {
  399 + buf = rcs;
  400 + while ((token = strtok(buf, "+")) != CN)
  401 + {
411 402 buf = CN;
412   - switch (n_rcs) {
  403 + switch (n_rcs)
  404 + {
413 405 case 0:
414   -#if defined(X3270_DBCS) /*[*/
  406 +#if defined(X3270_DBCS)
415 407 case 1:
416   -#endif /*]*/
  408 +#endif
417 409 break;
418 410 default:
419   - popup_an_error(NULL,"Extra %s value(s), ignoring",
420   - ResDisplayCharset);
  411 + popup_an_error(NULL,"Extra value(s) in displayCharset.%s, ignoring", csname);
421 412 break;
422 413 }
423 414 n_rcs++;
424 415 }
425 416 }
426 417  
427   -#if defined(X3270_DBCS) /*[*/
428   - /* Can't swap DBCS modes while connected. */
  418 + lib3270_free(rcs);
  419 +
  420 +/*
  421 +#if defined(X3270_DBCS)
  422 + // Can't swap DBCS modes while connected.
429 423 if (IN_3270 && (n_rcs == 2) != dbcs) {
430 424 popup_an_error(NULL,"Can't change DBCS modes while connected");
431 425 return CS_ILLEGAL;
432 426 }
433   -#endif /*]*/
  427 +#endif
  428 +*/
434 429  
435 430 /*
436 431 #if !defined(_WIN32)
... ... @@ -445,15 +440,23 @@ static enum cs_result resource_charset(char *csname, char *cs, char *ftcs)
445 440 */
446 441  
447 442 /* Set up the cgcsgid. */
448   - set_cgcsgids(get_fresource("%s.%s", ResCodepage, csname));
  443 +// set_cgcsgids(get_fresource("%s.%s", "codepage", csname));
  444 + {
  445 + char *ptr = lib3270_get_resource_string("codepage", csname, NULL);
  446 + set_cgcsgids(ptr);
  447 + lib3270_free(ptr);
  448 + }
449 449  
450   - dcs = get_fresource("%s.%s", ResDisplayCharset, csname);
  450 +// dcs = get_fresource("%s.%s", "displayCharset", csname);
  451 + dcs = lib3270_get_resource_string("displayCharset", csname, NULL);
451 452  
452 453 if (dcs != NULL)
453 454 set_display_charset(&h3270,dcs);
454 455 else
455 456 set_display_charset(&h3270,"ISO-8859-1");
456 457  
  458 + lib3270_free(dcs);
  459 +
457 460 /* Set up the character set name. */
458 461 // set_charset_name(csname);
459 462  
... ...
ctlr.c
... ... @@ -56,7 +56,7 @@
56 56 #include "screenc.h"
57 57 #include "scrollc.h"
58 58 #include "seec.h"
59   -#include "sfc.h"
  59 +#include "sf.h"
60 60 #include "statusc.h"
61 61 #include "tablesc.h"
62 62 #include "telnetc.h"
... ... @@ -167,8 +167,7 @@ void ctlr_reinit(H3270 *session, unsigned cmask)
167 167 struct ea *tmp;
168 168 size_t sz = (session->maxROWS * session->maxCOLS);
169 169  
170   -
171   - session->buffer[0] = tmp = lib3270_calloc(sizeof(struct ea),sz+1, session->buffer[0]);
  170 + session->buffer[0] = tmp = lib3270_calloc(sizeof(struct ea), sz+1, session->buffer[0]);
172 171 session->ea_buf = tmp + 1;
173 172  
174 173 session->buffer[1] = tmp = lib3270_calloc(sizeof(struct ea),sz+1,session->buffer[1]);
... ...
kybd.c
... ... @@ -3461,7 +3461,7 @@ add_xk(KeySym key, KeySym assoc)
3461 3461 xk[i].assoc = assoc;
3462 3462 return;
3463 3463 }
3464   - xk = (struct xks *)Realloc(xk, (nxk + 1) * sizeof(struct xks));
  3464 + xk = (struct xks *) Realloc(xk, (nxk + 1) * sizeof(struct xks));
3465 3465 xk[nxk].key = key;
3466 3466 xk[nxk].assoc = assoc;
3467 3467 nxk++;
... ...
localdefs.h
... ... @@ -63,24 +63,15 @@ typedef struct _XtActionsRec{
63 63  
64 64 /* These are local functions with similar semantics to X functions. */
65 65  
66   -void * Malloc(size_t);
67   -void Free(void *);
68   -void * Calloc(size_t, size_t);
69   -void * Realloc(void *, size_t);
  66 +// void * Malloc(size_t);
  67 +// void Free(void *);
  68 +// void * Calloc(size_t, size_t);
  69 +// void * Realloc(void *, size_t);
70 70  
71   -/**
72   - * Alloc/Realloc memory buffer.
73   - *
74   - * Allocate/reallocate an array.
75   - *
76   - * @param elsize Element size.
77   - * @param nelem Number of elements in the array.
78   - * @param ptr Pointer to the actual array.
79   - *
80   - * @return ptr allocated with the new array size.
81   - *
82   - */
83   -void * lib3270_calloc(size_t elsize, size_t nelem, void *ptr);
  71 +#define Malloc(x) lib3270_malloc(x)
  72 +#define Free(x) lib3270_free(x)
  73 +#define Calloc(e,n) lib3270_calloc(e,n,NULL)
  74 +#define Realloc(x,n) lib3270_realloc(x,n)
84 75  
85 76 #define NewString(x) strdup(x)
86 77 //extern char *NewString(const char *);
... ...
rpq.c
... ... @@ -64,6 +64,7 @@
64 64 #include "telnetc.h"
65 65 #include "trace_dsc.h"
66 66 #include "utilc.h"
  67 +#include "sf.h"
67 68  
68 69 /* Statics */
69 70 static Boolean select_rpq_terms(void);
... ... @@ -121,8 +122,7 @@ static char *x3270rpq;
121 122 /*
122 123 * RPQNAMES query reply.
123 124 */
124   -void
125   -do_qr_rpqnames(void)
  125 +void do_qr_rpqnames(void)
126 126 {
127 127 #define TERM_PREFIX_SIZE 2 /* Each term has 1 byte length and 1
128 128 byte id */
... ...
sf.c
... ... @@ -56,7 +56,7 @@
56 56 #include "kybdc.h"
57 57 #include "screenc.h"
58 58 #include "seec.h"
59   -#include "sfc.h"
  59 +#include "sf.h"
60 60 #include "tablesc.h"
61 61 #include "telnetc.h"
62 62 #include "trace_dsc.h"
... ... @@ -92,13 +92,13 @@ static void query_reply_start(void);
92 92 static void do_query_reply(unsigned char code);
93 93 static void query_reply_end(void);
94 94  
95   -typedef void qr_single_fn_t(void);
96 95 typedef Boolean qr_multi_fn_t(unsigned *subindex, Boolean *more);
97 96  
98 97 static qr_single_fn_t do_qr_summary, do_qr_usable_area, do_qr_alpha_part,
99 98 do_qr_charsets, do_qr_color, do_qr_highlighting, do_qr_reply_modes,
100 99 do_qr_imp_part, do_qr_null;
101   -extern qr_single_fn_t do_qr_rpqnames;
  100 +
  101 +
102 102 #if defined(X3270_DBCS) /*[*/
103 103 static qr_single_fn_t do_qr_dbcs_asia;
104 104 #endif /*]*/
... ... @@ -121,10 +121,15 @@ static struct reply {
121 121 #if defined(X3270_DBCS) /*[*/
122 122 { QR_DBCS_ASIA, do_qr_dbcs_asia, NULL }, /* 0x91 */
123 123 #endif /*]*/
  124 +
124 125 #if defined(X3270_FT) /*[*/
125 126 { QR_DDM, do_qr_ddm, NULL }, /* 0x95 */
126 127 #endif /*]*/
  128 +
  129 +#ifndef ANDROID
127 130 { QR_RPQNAMES, do_qr_rpqnames, NULL }, /* 0xa1 */
  131 +#endif // !ANDROID
  132 +
128 133 { QR_IMP_PART, do_qr_imp_part, NULL }, /* 0xa6 */
129 134  
130 135 /* QR_NULL must be last in the table */
... ...
sf.h 0 → 100644
... ... @@ -0,0 +1,19 @@
  1 +/*
  2 + * Copyright 1995, 1999, 2000 by Paul Mattes.
  3 + * Permission to use, copy, modify, and distribute this software and its
  4 + * documentation for any purpose and without fee is hereby granted,
  5 + * provided that the above copyright notice appear in all copies and that
  6 + * both that copyright notice and this permission notice appear in
  7 + * supporting documentation.
  8 + *
  9 + * x3270, c3270, s3270, tcl3270 and pr3287 are distributed in the hope that
  10 + * they will be useful, but WITHOUT ANY WARRANTY; without even the implied
  11 + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12 + * file LICENSE for more details.
  13 + */
  14 +
  15 +typedef void qr_single_fn_t(void);
  16 +
  17 +LIB3270_INTERNAL qr_single_fn_t do_qr_rpqnames;
  18 +
  19 +LIB3270_INTERNAL enum pds write_structured_field(unsigned char buf[], int buflen);
... ...
... ... @@ -1,20 +0,0 @@
1   -/*
2   - * Copyright 1995, 1999, 2000 by Paul Mattes.
3   - * Permission to use, copy, modify, and distribute this software and its
4   - * documentation for any purpose and without fee is hereby granted,
5   - * provided that the above copyright notice appear in all copies and that
6   - * both that copyright notice and this permission notice appear in
7   - * supporting documentation.
8   - *
9   - * x3270, c3270, s3270, tcl3270 and pr3287 are distributed in the hope that
10   - * they will be useful, but WITHOUT ANY WARRANTY; without even the implied
11   - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12   - * file LICENSE for more details.
13   - */
14   -
15   -/*
16   - * sfc.h
17   - * Global declarations for sf.c.
18   - */
19   -
20   -LIB3270_INTERNAL enum pds write_structured_field(unsigned char buf[], int buflen);
util.c
... ... @@ -1087,3 +1087,100 @@ StringToKeysym(char *s)
1087 1087 }
1088 1088 #endif
1089 1089 */
  1090 +
  1091 +LIB3270_EXPORT void lib3270_free(void *p)
  1092 +{
  1093 + if(p)
  1094 + free(p);
  1095 +}
  1096 +
  1097 +LIB3270_EXPORT void * lib3270_realloc(void *p, int len)
  1098 +{
  1099 + p = realloc(p, len);
  1100 + if(!p)
  1101 + Error(NULL,"Out of memory");
  1102 + return p;
  1103 +}
  1104 +
  1105 +LIB3270_EXPORT void * lib3270_calloc(int elsize, int nelem, void *ptr)
  1106 +{
  1107 + size_t sz = nelem * elsize;
  1108 +
  1109 + if(ptr)
  1110 + ptr = realloc(ptr,sz);
  1111 + else
  1112 + ptr = malloc(sz);
  1113 +
  1114 + if(ptr)
  1115 + memset(ptr,0,sz);
  1116 + else
  1117 + Error(NULL,"Out of memory");
  1118 +
  1119 + return ptr;
  1120 +}
  1121 +
  1122 +
  1123 +LIB3270_EXPORT void * lib3270_malloc(int len)
  1124 +{
  1125 + char *r;
  1126 +
  1127 + r = malloc(len);
  1128 + if (r == (char *)NULL)
  1129 + {
  1130 + Error(NULL,"Out of memory");
  1131 + return 0;
  1132 + }
  1133 +
  1134 + memset(r,0,len);
  1135 + return r;
  1136 +}
  1137 +
  1138 +/*
  1139 +void * Calloc(size_t nelem, size_t elsize)
  1140 +{
  1141 + int sz = nelem * elsize;
  1142 + char * r = malloc(sz);
  1143 +
  1144 + if(!r)
  1145 + Error(NULL,"Out of memory");
  1146 +
  1147 + memset(r, 0, sz);
  1148 + return r;
  1149 +}
  1150 +*/
  1151 +
  1152 +LIB3270_EXPORT char * lib3270_get_resource_string(const char *first_element, ...)
  1153 +{
  1154 +#ifndef ANDROID
  1155 +
  1156 + #warning Work in progress
  1157 +
  1158 + char buffer[4096];
  1159 + char * ptr = buffer;
  1160 + const char * element;
  1161 + va_list args;
  1162 + const char * res;
  1163 +
  1164 + va_start(args, first_element);
  1165 +
  1166 + for(element = first_element;element;element = va_arg(args, const char *))
  1167 + {
  1168 + if(ptr != buffer)
  1169 + *(ptr++) = '.';
  1170 +
  1171 + strncpy(ptr,element,4096-strlen(buffer));
  1172 + ptr += strlen(ptr);
  1173 + }
  1174 +
  1175 + va_end(args);
  1176 +
  1177 + *ptr = 0;
  1178 +
  1179 + trace("%s: %s",__FUNCTION__,buffer);
  1180 +
  1181 + res = get_resource(buffer);
  1182 + if(res)
  1183 + return strdup(res);
  1184 +#endif
  1185 + return NULL;
  1186 +}
... ...