-dwTotalSize))
me wonders if
if (loc-dwNetworkVolTableOfs (loc-dwNetworkVolTableOfs +
sizeof(NETWORK_VOLUME_INFO)loc-dwTotalSize))
wouldn't be better
(same also would apply for test in old code above for dwVolTableOfs
--
--
Eric Pouech
be able to get input from it
the solutions
- let A run until all of its children have died (tricky it we want to
hide A from the windows process list)
- have another program be the parent of all processes started from
command line (and wineconsole could do the trick)
A+
--
Eric Pouech
convert properly the
unix events to the windows one.
I'd rather favor ScII, but the differences are not that big, so your
comments are welcome.
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
(except if gcc really optimizes
things out, but wine now behaves as gcc, so you should be way less
hindered by debugging with -O2 as you were)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
);
this is wrong: dwarf_parse family set makes the pointer in the cxt
advance by the size of the object which is being parse
and actually, the correct fix would be to make use of those variables
(like checking if the version is a known one), instead of throwing
things away
A+
--
Eric Pouech
The problem
() would be to check the gcc version before
trying to use __attribute__().
does the attached patch works better ? (I tried your suggestion starting
at gcc 3.0)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot
winegcc for linking either 32bit or
64bit execs (with the --sysroot switch)
not use what you propose will help... it'll prevent an error later on in
gcc (or ld), but if winegcc is passed directories with wrong libraries,
it should, IMO, fail and not try to find the right lib
A+
--
Eric Pouech
dbg_vprintf which doesn't exist)
does the attached patch work in your configuration ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
diff --git a/programs/winedbg/db_disasm64.c b/programs/winedbg
joerg-cyril.hoe...@t-systems.com a écrit :
Hi,
Eric Pouech wrote:
did you test the 16 = 32 bit conversion for the MCI_ALL_DEVICE ?
Which ones do you have in mind? There are tests involving MCI_ALL_DEVICE_ID
that pass on both win9x and later (also in patch #5). I wrote a few
more MCI
joerg-cyril.hoe...@t-systems.com a écrit :
Hi,
Eric Pouech wrote:
did you test the 16 = 32 bit conversion for the MCI_ALL_DEVICE ?
It's good you asked. Upon closer inspection, MCI_Sysinfo appears to
behave differently. I'd say it's even a bug in MS that setting
joerg-cyril.hoe...@t-systems.com a écrit :
Hi,
Eric Pouech wrote:
this patch is ugly as hell...
Please qualify. To me,
- data[3] = (DWORD_PTR)dev;
+ parms.open.lpstrElementName = dev;
looks more robust than before:
- no magic offsets,
- no casts that may silence
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
on the Sysinfo patch from earlier today.
Regards,
Jörg Höhle
this patch is ugly as hell... and it still believe we can do the MCI
parser without knowing about MCI structures internals
A+
--
Eric Pouech
The problem
Dmitry Timoshkov a écrit :
Eric Pouech eric.pou...@orange.fr wrote:
hmm sounds like most of the code we have in not in sync
[eric:~/work/wine-git debug64|(none)]$ grep TRACE dlls/*/*.c | grep
%[0-9]*d | wc -l
8767
[eric:~/work/wine-git debug64|(none)]$ grep TRACE dlls/*/*.c | grep
%[0-9
Dmitry Timoshkov a écrit :
Eric Pouech eric.pou...@orange.fr wrote:
Can I ask again, why to jump through the hoops if all required information
is already there in appropriate and ready to use/easy to understand format?
because others users want information in decimal, as any
values
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
/dd743409%28VS.85%29.aspx
yet I refuse to believe it. I believe that all the MCI_XYZ_PARMS
structures are consistent, so that a generic MCI string command parser
is possible. That requires regular types.
Eric Pouech wrote:
http://www.winehq.org/pipermail/wine-devel/2010-February/081660.html
Dmitry Timoshkov a écrit :
Eric Pouech eric.pou...@orange.fr wrote:
bt /x will do what you want.
How will it help with all those backtraces generated and sent by users
to bugzilla? Or those intermittent crashes which are very hard to reproduce?
Is there any reason to spend
Alexandre Julliard a écrit :
Eric Pouech eric.pou...@orange.fr writes:
- now exporting the file mapping facility to the debug info loader which need it
- allow to mark a section as to be kept (after debug info loading has been done)
This breaks the non-ELF builds.
where does
and ready to use/easy to understand format?
if it's information sent by user (in any form), you can always write a
small script to do the job
(and also extend, message number, styles...)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity
on NtQueryProcessInformation anyway.
There's ProcessDebugObjectHandle, but it's not clear to me what kind
of handle that actually returns. It's not a process handle at least.
ProcessDebugPort would be preferred (any non zero value would do)
A+
--
Eric Pouech
The problem with designing something completely
pointers as DWORD_PTR
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
in some cases) to disassembly the first
bytes of the functions to guess the prolog size
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
ensure that the difference in behavior does come from the OS
version, not the driver (or soundcards) from different boxes
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
André Hentschel a écrit :
Eric Pouech schrieb:
André Hentschel a écrit :
Hi,
I made a patch to merge code from ntdll/signal_x86_64.c to
dbghelp/dwarf.c
The operator DW_OP_deref_size needs to read different sizes of
variables from memory into a fixed size variable.
Now i am not sure
: stack[++stk] = *(DWORD64*)deref; break;
}
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
André Hentschel a écrit :
Eric Pouech schrieb:
André Hentschel a écrit :
thanks Eric Pouech for the reviews
---
dlls/dbghelp/dwarf.c | 229
+-
dlls/dbghelp/dwarf.h | 15
2 files changed, 204 insertions(+), 40 deletions(-)
diff
André Hentschel a écrit :
thanks Eric Pouech for the reviews
---
dlls/dbghelp/dwarf.c | 229 +-
dlls/dbghelp/dwarf.h | 15
2 files changed, 204 insertions(+), 40 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index
for most of the cases no, as it'll mean you won't get any debug
information for the built-in modules
so I don't think it's useful (except for testing dbghelp itself, but you
don't need to add it to winetricks for that)
A+
--
Eric Pouech
The problem with designing something completely foolproof
decide, command by command,
which input strings you send to cmd and how to interpret the final
result out of the shell. the file approach you're currently using could
be of course implemented on top of this first layer
A+
--
Eric Pouech
The problem with designing something completely foolproof
André Hentschel a écrit :
Eric Pouech schrieb:
André Hentschel a écrit :
-
+if (*sym-current == 'A') sym-current++;
I don't understand how this would be necessary?
Are you sure it's needed ?
A+
There is also the possibility P for multidimensional arrays
André Hentschel a écrit :
-
+if (*sym-current == 'A') sym-current++;
I don't understand how this would be necessary?
Are you sure it's needed ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot
(as a way to split in small patches)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
Dan Kegel a écrit :
On Fri, Dec 18, 2009 at 11:50 PM, Eric Pouech eric.pou...@orange.fr wrote:
If you want to control more closely commands vs output you can toy with
http://github.com/ericZp/wdtp/blob/master/test_cl.h
I would have thought that overkill for a batch mode program like
What about redirecting io pipes and use CreateProcess ?
msdn has some examples :
http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx
that's what test_cl.h does...
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
, using autohotkey pretty easily.
If you want to control more closely commands vs output you can toy with
http://github.com/ericZp/wdtp/blob/master/test_cl.h
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot
is unmaintainable as it is
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
Alexandre Julliard a écrit :
Eric Pouech eric.pou...@orange.fr writes:
Alexandre Julliard a écrit :
Module: wine
Branch: master
Commit: dcec342b50524562844f64d43d423ed2c83c1f97
URL:
http://source.winehq.org/git/wine.git/?a=commit;h=dcec342b50524562844f64d43d423ed2c83c1f97
Author
Jason Green a écrit :
I don't think it's a good idea to change the exception structure passed
by the caller to the minidump creation
it's better to hard wire the optimization in dump_exception_info
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
user32: Add a thunking mechanism for 16-bit edit word break procedures.
Alexandre,
shouldn't the thunk be released in EDIT_WM_NCDestroy upon EDITSTATE
destruction ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete
Alexandre Julliard a écrit :
Eric Pouech eric.pou...@orange.fr writes:
diff --git a/programs/winedbg/dbg.y b/programs/winedbg/dbg.y
index 855407f..7ed6307 100644
--- a/programs/winedbg/dbg.y
+++ b/programs/winedbg/dbg.y
@@ -281,9 +281,9 @@ info_command:
| tINFO tCLASS
Alexandre Julliard a écrit :
Eric Pouech eric.pou...@orange.fr writes:
diff --git a/server/debugger.c b/server/debugger.c
index 795a24a..4458a3b 100644
--- a/server/debugger.c
+++ b/server/debugger.c
@@ -677,6 +677,8 @@ DECL_HANDLER(get_exception_status)
if ((event = (struct
is N, whereas you should repaint GN into ZG (zero of
size(N), Guard)
which may also explain lots of errors when running the tool
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
Paul Vriens a écrit :
On 11/15/2009 10:07 PM, Eric Pouech wrote:
(fix for #20681)
Hi Eric,
This new test fails on all 32bit systems:
http://test.winehq.org/data/tests/msvcrt:cpp.html
The only box where there are no failures is a 64bit one, but no tests
are actually run there ;)
Could
(which means you must force MCI_NOTIFY flag with this
window handle when sending a MCI command down to a driver)
I wonder how native does when no message loop exists in the application
(should be tested) (maybe peek for the notif message upon entrance of
some of the MCI funcs ?)
A+
--
Eric Pouech
so, finding another solution might be preferable
what are the thread's missing information you were thinking of ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
pointer)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
on the fly the needed file)
we already test some .exe this way in winetest
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
bugs).
What do you think?
BTW, please don't change mciwave now as I still have many patches in the queue.
I'm lagging answering my email
yes, actually, only one thread should be running in background, so what
you suggest sounds fine
A+
--
Eric Pouech
The problem with designing something
Alexandre Julliard a écrit :
Eric Pouech eric.pou...@orange.fr writes:
@@ -1566,7 +1554,41 @@ UINT WINAPI mciLoadCommandResource(HINSTANCE hInst,
LPCWSTR resNameW, UINT type)
if (!(hRsrc = FindResourceW(hInst, resNameW, (LPWSTR)RT_RCDATA))) {
WARN(No command table found
/ how are the msacm/gsm711/gsm722/gsm602 tested?
Does anybody know whether ULAW works in Wine? (Any app that uses it outside of
MCI?)
Thanks,
Jörg Höhle
IIRC, I never tested µ-law wave file, so it may well be that the ACM
converter is broken
A+
--
Eric Pouech
The problem with designing
requires some testing
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
of it)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
André Hentschel a écrit :
Eric Pouech schrieb:
Hi André
a couple of comments to your patch
always welcome!
IMO, we should also test that cbReserved2 is = sizeof(unsigned)
otherwise we'd be in trouble
maybe you had something like that patch in mind:
http://www.winehq.org
. instead of doing this
+while (MsgWaitForMultipleObjects( 1, proc.hProcess, FALSE, INFINITE,
QS_ALLINPUT ) != 0)
+{
+while (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) DispatchMessageA(msg);
+}
you could simply wait for the child process to terminate
A+
--
Eric Pouech
The problem
You can't simply use long here, you need to handle the difference in the
size of long between Win32 and Unix.
but that's what we currently do !
A+
--
Eric Pouech
+static BOOL HaveDefaultMailClient()
this should be
+static BOOL HaveDefaultMailClient(void)
A+
--
Eric Pouech
to stop for tonight, more on this tomorrow
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
Juan Lang a écrit :
Uses %u rather than %d, based on Henri's feedback.
--Juan
Hi Juan
don't you miss a break statement (or a more likely a return 0) at the
end of the block ?
A+
--
Eric Pouech
The problem
break your_func_in_dri_driver
Wine-dbg cont
TIA
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
;
-mwi.sr_color = mwi.sr_color = 0xFF;
+mwi.sr_color = 0xFF;
}
return mwi;
}
fix is wrong
the second should be nr_color instead of sr_color (hence the double
assignment)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
to filter out some exceptions and some other ones
however, this may work: try the following commands (before run)
set $BreakOnFirstChance=0
run
and see what gives
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot
.
this is not necessary to pass the information to winedbg, everything's
needed is accessible from winedbg
see tgt_active.c / dbg_handle_exception
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete idiot. (Douglas Adams)
while updating my git tree, I ran (actually not finished downloading)
this pack:
Resuming fetch of pack 119463f192a563f17ac18ff9b717fbe57199eed7 at
byte 95266539
which size looks quite enormous to me...
any idea of what's going on ?
A+
--
Eric Pouech
The problem with designing something
case in
dwarf2_parse_variable (for the DW_AT_location case) by simply doing nothing
the correct long term fix is to implement TLS based variable addressing
in the parser
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate the
ingenuity of a complete
2009/1/15 Francois Gouget fgou...@free.fr
On Wed, 14 Jan 2009, Eric Pouech wrote:
Francois Gouget a écrit :
Hi,
I have noticed that expr_alloc_uconstant() is unused in winedbg.
Is that normal?
the main point is that the lexer only returns signed integers, while it
should
unsigned:s from
0x8000 up to 0xf (which current code doesn't)
the proper fix would be to fix the lexer to return both signed and
unsigned integers
for example:
WineDbg p 0x8000
-2147483648
while it should be
2147483648
A+
--
Eric Pouech
The problem with designing something completely
234 in year: 2008
of course, this doesn't take into account the different names used by
the same person (ie there is for example a frangois gouget in the
committers' list...)
but this gives a good idea of the variation
A+
--
Eric Pouech
The problem with designing something completely foolproof
Francois Gouget a écrit :
On Sat, 13 Dec 2008, Eric Pouech wrote:
[...]
1) #ifdef-out regexp support if regex.h is missing? Maybe with an
autoconf check for regcomp()?
2) Add some reg*() stubs that do nothing if regex.h co are missing?
[...]
1,2) most of the dbghelp
http://sourceforge.net/project/showfiles.php?group_id=2435package_id=73286release_id=140957
we could be a bit more verbose in mingw configuration for this case
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot
, but it's not their main use, as demonstrated by
the number of failures and todos we currently have. So I'll continue to
call them regression tests, if you don't mind ;-)
actually, *non* regression tests would be more appropriate... g
A+
--
Eric Pouech
The problem with designing something completely
fnWCUSER_GenerateMouseInputRecord/fn
dirprograms/wineconsole/dir
fileuser.c/file
line1066/line
/frame
/stack
/origin
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
, and the
full-disk search provides a nicer user experience if they're upgrading
from an ancient copy of the software. Under Wine, I need to either
skip the full-disk search, or warn the user that it may take several
hours.
--
Mark
--
--
Eric Pouech
Dmitry Timoshkov a écrit :
From: Eric Pouech [EMAIL PROTECTED] wrote:
+#include ctype.h
...
+if (!ch || !isalpha(ch)) break;
Since that's apparently a Windows encoding shouldn't this be
GetStringType() instead of isalpha()?
no, the issue (here
through the
_NT_SYMBOL_PATH environment variable
- under gdb: no, unless you use the winedbg's gdb remote stub (and the
_NT_SYMBOL_PATH must also be correctly set)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot
lines)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
://www.winehq.org/site/docs/winedev-guide/dbg-others
isn't fully uptodate
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
ID_REGISTRY_DISCONNECTNETWORKREGISTRY:
break;
case ID_REGISTRY_PRINT:
-PrintRegistryHive(hWnd, _T());
+{
+const WCHAR empty = 0;
+PrintRegistryHive(hWnd, empty);
break;
+}
this looks very wrong to me
--
Eric Pouech
The problem with designing
);
+}
+CryptMsgClose(msg);
}
static void test_decode_msg(void)
-- 1.5.2.2
-- 1.5.2.2
--
Eric Pouech
The problem with designing something
Alexander Nicolaysen Sørnes a écrit :
På Onsdag 20 august 2008 , 19:30:44 skrev Eric Pouech:
Alexandre Julliard a écrit :
Module: wine
Branch: master
Commit: 5cb8bccf462790338677dac3bfb394df8f4da020
URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5cb8bccf462790338677dac
several
opening including the mixing of the two streams
if the driver doesn't provide this flexibility, I don't see a point of
implementing it in Wine
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas
should be moved to unicode first
then your patch will be relatively straightforward
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
that you get a null typename here
can you send me the DLL/.so file on which you get the seg fault
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
Andrew Talbot a écrit :
Eric Pouech wrote:
looks like a bit strange to me that you get a null typename here
can you send me the DLL/.so file on which you get the seg fault
A+
No known segfaults; I'm just doing static analysis. But
stabs_pts_read_type_def() is called several
ptr ptr)
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
of
code), or do you plan to handle yourself the task of retrofit ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
Jon Griffiths a écrit :
Hi,
Subject says it all.
+dbg_printf(%s, val_int ? true : false);
what about the simpler:
+dbg_printf(val_int ? true : false);
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity
better to have two backtraces than none.
can you reproduce those cases ? it may be even better to fix those cases
instead of having two backtraces g
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas
30minutes...
now I barely wait... 6mn26s
make -j5, Q6600 @ 2.4GHz
gcc version also matters (4.2.3 for me)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
I'm using same version.
What graphics card, btw?
ATI Radeon HD 2600 XT
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
Vitaliy Margolen a écrit :
Eric Pouech wrote:
@@ -1437,7 +1437,7 @@ static void WCMD_output_asis_len(const WCHAR *message,
int len, HANDLE device) {
}
/* Convert to OEM, then output */
-convertedChars = WideCharToMultiByte(GetConsoleOutputCP(), 0,
message
, '/');
+if (spath) spath = strchr(spath, '/');
if (!spath) break;
spath++;
found = SearchPathA(dbg_curr_process-search_path, spath, NULL,
MAX_PATH, path, NULL);
actually no
the code intends to find the first occurence of / or \
A+
--
Eric
in return from server calls
- where do the 2 (resp 3) factors come from ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
and threads in the system
as of today, you cannot switch to another thread
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
send a corrected test
however, the second seems ok (except some space difference)
can you post the failing test information ?
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
.hlp files
The new rendering is turned on by setting the env variable
WINHELP_RICHEDIT to 1
A+
--
Eric Pouech
The problem with designing something completely foolproof is to underestimate
the ingenuity of a complete idiot. (Douglas Adams)
Alexandre Julliard a écrit :
Eric Pouech [EMAIL PROTECTED] writes:
programs/winhelp/winhelp.c | 257
1 files changed, 116 insertions(+), 141 deletions(-)
This breaks window repaints for me, when switching pages the window
]
--
--
Eric Pouech
101 - 200 of 787 matches
Mail list logo