tGScanner from files bug workaround for Win32 - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 208b0fef94da2cc898ae5eb89b5af27558e08f29
 (DIR) parent 8f548a99c170fe2832460898159bf6bbcbd899f1
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Sat, 28 Apr 2001 17:42:19 +0000
       
       GScanner from files bug workaround for Win32
       
       
       Diffstat:
         M src/dopewars.c                      |      13 +++++++++++++
       
       1 file changed, 13 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/src/dopewars.c b/src/dopewars.c
       t@@ -1234,19 +1234,32 @@ void CopyDrugs(struct DRUGS *dest,struct DRUGS *src) {
        }
        
        void ReadConfigFile(char *FileName) {
       +/* Read a configuration file given by "FileName"; GScanner under Win32 */
       +/* doesn't work properly with files, so we use a nasty workaround      */
           FILE *fp;
       +#ifdef CYGWIN
       +   char *buf;
       +#endif
           GScanner *scanner;
           fp=fopen(FileName,"r");
           if (fp) {
              scanner=g_scanner_new(&ScannerConfig);
              scanner->input_name=FileName;
       +#ifdef CYGWIN
       +      read_string(fp,&buf); if (!buf) { fclose(fp); return; }
       +      g_scanner_input_text(scanner,buf,strlen(buf));
       +#else
              g_scanner_input_file(scanner,fileno(fp));
       +#endif
              while (!g_scanner_eof(scanner)) if (!ParseNextConfig(scanner)) {
                 g_scanner_error(scanner,
                                 _("Unable to process configuration file line"));
              }
              g_scanner_destroy(scanner);
              fclose(fp);
       +#ifdef CYGWIN
       +      g_free(buf);
       +#endif
           }
        }