Subject: Re: bug#720: Patch to fix CVS Emacs compilation error on Windows XP SP2.

From: Eli Zaretskii <[email-masked]>
Date: Fri, 15 Aug 2008 11:22:07 +0300

> Cc: [email-masked], [email-masked],
>         Stefan Monnier <[email-masked]>
> Date: Thu, 14 Aug 2008 16:15:04 -0400
> From: Francis Litterio <[email-masked]>
> 
> 	w32.c(3820) : error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64

"Not implemented"?  I'm not sure we want to support such a deficient
compiler.  How about this:

  DWORD tot_hi = memstex.ullTotalPhys >> 32;
  DWORD tot_md = (memstex.ullTotalPhys & 0x00000000ffffffffLL) >> 10;
  DWORD tot_lo = memstex.ullTotalPhys % 1024LL;
  totphys = tot_hi * 4194304.0 + tot_md + tot_lo / 1024.0;

Does this work?