From: ben Date: Mon, 6 Jan 2003 21:46:56 +0000 (+0000) Subject: It looks like Visual C (or whatever the Windows snapshots are built with) X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/commitdiff_plain/cc36797c021e07fa3d46956c82cf8f5db1d13f18?hp=fb3d9ab5132ccf45a45b6789fe6fd8718963650f It looks like Visual C (or whatever the Windows snapshots are built with) objects to incomplete static array declarations, which I introduced to work around a bug in SC/MrC. Use #ifdefs to decide whether to enable the workaround or not. git-svn-id: svn://svn.tartarus.org/sgt/putty@2488 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/sshaes.c b/sshaes.c index 9eed7423..6bb1d60d 100644 --- a/sshaes.c +++ b/sshaes.c @@ -61,9 +61,23 @@ struct AESContext { int Nb, Nr; }; +/* + * Apple's SC 8.8.4f1 and MrC 4.1.0f1c1 refuse to handle these if + * they've got dimensions (they claim "already defined" when the + * arrays are actually defined). Microsoft Visual C refuses to handle + * them without ("unknown size"). Bah. + * + * K&R2 A10.2 says both are OK, of course. + */ +#if defined __SC__ || defined __MRC__ static const unsigned char Sbox[], Sboxinv[]; static const word32 E0[], E1[], E2[], E3[]; static const word32 D0[], D1[], D2[], D3[]; +#else +static const unsigned char Sbox[256], Sboxinv[256]; +static const word32 E0[256], E1[256], E2[256], E3[256]; +static const word32 D0[256], D1[256], D2[256], D3[256]; +#endif /* * Common macros in both the encryption and decryption routines.