<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yobi.be/index.php?action=history&amp;feed=atom&amp;title=Cygwin-multitee</id>
	<title>Cygwin-multitee - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yobi.be/index.php?action=history&amp;feed=atom&amp;title=Cygwin-multitee"/>
	<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;action=history"/>
	<updated>2026-05-23T13:01:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5319&amp;oldid=prev</id>
		<title>PhilippeTeuwen: /* The patch */</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5319&amp;oldid=prev"/>
		<updated>2008-11-25T20:36:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;The patch&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:36, 25 November 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The patch ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The patch ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The patch ports calls to BSD &#039;&#039;signal.h&#039;&#039; API (&amp;lt;tt&amp;gt;struct sigvec&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigvec()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigblock()&amp;lt;/tt&amp;gt;...) to the POSIX API (&amp;lt;tt&amp;gt;struct sigaction&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigaction()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigprocmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigfillset()&amp;lt;/tt&amp;gt;...). &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Here the [{{#file: multitee-3.0-cygwin.patch}} patch]:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The patch ports calls to BSD &#039;&#039;signal.h&#039;&#039; API (&amp;lt;tt&amp;gt;struct sigvec&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigvec()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigblock()&amp;lt;/tt&amp;gt;...) to the POSIX API (&amp;lt;tt&amp;gt;struct sigaction&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigaction()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigprocmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigfillset()&amp;lt;/tt&amp;gt;...). &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Here the [{{#file: multitee-3.0-cygwin.patch}} patch (you can download it here)]:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=diff&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=diff&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/Makefile	1970-01-01 01:00:00.000000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/Makefile	1970-01-01 01:00:00.000000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-cygwin&lt;/del&gt;/Makefile	2008-11-24 03:35:43.875000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0/Makefile	2008-11-24 03:35:43.875000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -0,0 +1,9 @@&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -0,0 +1,9 @@&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 37:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/multitee.c	1998-02-17 03:25:43.000000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/multitee.c	1998-02-17 03:25:43.000000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-cygwin&lt;/del&gt;/multitee.c	2008-11-24 03:38:51.296875000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0/multitee.c	2008-11-24 03:38:51.296875000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -180,7 +180,7 @@&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -180,7 +180,7 @@&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  int in;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  int in;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 49:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  if (ioscp-&amp;gt;dead)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  if (ioscp-&amp;gt;dead)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/ralloc.c	1998-02-17 03:25:43.000000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/ralloc.c	1998-02-17 03:25:43.000000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-cygwin&lt;/del&gt;/ralloc.c	2008-11-24 03:41:24.093750000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0/ralloc.c	2008-11-24 03:41:24.093750000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -40,7 +40,7 @@&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -40,7 +40,7 @@&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; typedef int (*foo)();&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; typedef int (*foo)();&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/sigdfl.c	1998-02-17 03:25:44.000000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/sigdfl.c	1998-02-17 03:25:44.000000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-cygwin&lt;/del&gt;/sigdfl.c	2008-11-24 03:39:57.734375000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0/sigdfl.c	2008-11-24 03:39:57.734375000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -2,6 +2,7 @@&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -2,6 +2,7 @@&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; Daniel J. Bernstein, brnstnd@nyu.edu.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; Daniel J. Bernstein, brnstnd@nyu.edu.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 152:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 153:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/sigsched.c	1998-02-17 03:25:44.000000000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--- multitee-3.0/sigsched.c	1998-02-17 03:25:44.000000000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-cygwin&lt;/del&gt;/sigsched.c	2008-11-24 03:35:43.906250000 +0100&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;+++ multitee-3.0/sigsched.c	2008-11-24 03:35:43.906250000 +0100&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -2,6 +2,7 @@&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;@@ -2,6 +2,7 @@&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; Daniel J. Bernstein, brnstnd@nyu.edu.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; Daniel J. Bernstein, brnstnd@nyu.edu.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-mw_:diff:1.41:old-5318:rev-5319:wikidiff2=table:1.14.1:bc2a06be --&gt;
&lt;/table&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5318&amp;oldid=prev</id>
		<title>PhilippeTeuwen at 20:31, 25 November 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5318&amp;oldid=prev"/>
		<updated>2008-11-25T20:31:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:31, 25 November 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;multitee&#039;&#039;&#039; sends multiple inputs to multiple outputs. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Check this [http://code.dogmap.org/fdtools/multitee/ page].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;multitee&#039;&#039;&#039; sends multiple inputs to multiple outputs. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Check this [http://code.dogmap.org/fdtools/multitee/ page].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Original is [http://cr.yp.to/software/multitee-3.0.shar.gz here], or can also be found here on [http://ftp.de.debian.org/debian/pool/main/m/multitee/multitee_3.0.orig.tar.gz Debian].&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;Original is [http://cr.yp.to/software/multitee-3.0.shar.gz here], or can also be found here on [http://ftp.de.debian.org/debian/pool/main/m/multitee/multitee_3.0.orig.tar.gz Debian].&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Below you&#039;ll find a patch to build &#039;&#039;multitee&#039;&#039; on cygwin (and possibly any other POSIX distribution). To build, just untar the &#039;&#039;multitee&#039;&#039; archive, and then in a shell:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Below you&#039;ll find a patch to build &#039;&#039;multitee&#039;&#039; on cygwin (and possibly any other POSIX distribution). To build, just untar the &#039;&#039;multitee&#039;&#039; archive, and then in a shell:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>PhilippeTeuwen</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5316&amp;oldid=prev</id>
		<title>Fuujuhi: /* The patch */</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5316&amp;oldid=prev"/>
		<updated>2008-11-25T02:33:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;The patch&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:33, 25 November 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The patch ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The patch ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Here the [{{#file: multitee-3.0-cygwin.patch}} patch] to build &#039;&#039;multitee&#039;&#039; on &#039;&#039;Cygwin&#039;&#039;. &lt;/del&gt;The patch ports calls to BSD &#039;&#039;signal.h&#039;&#039; API (&amp;lt;tt&amp;gt;struct sigvec&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigvec()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigblock()&amp;lt;/tt&amp;gt;...) to the POSIX API (&amp;lt;tt&amp;gt;struct sigaction&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigaction()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigprocmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigfillset()&amp;lt;/tt&amp;gt;...).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The patch ports calls to BSD &#039;&#039;signal.h&#039;&#039; API (&amp;lt;tt&amp;gt;struct sigvec&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigvec()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigblock()&amp;lt;/tt&amp;gt;...) to the POSIX API (&amp;lt;tt&amp;gt;struct sigaction&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigaction()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigprocmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigfillset()&amp;lt;/tt&amp;gt;...).&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; Here the [{{#file: multitee-3.0-cygwin.patch}} patch]:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=diff&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=diff&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Fuujuhi</name></author>
	</entry>
	<entry>
		<id>https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5315&amp;oldid=prev</id>
		<title>Fuujuhi: New page: &#039;&#039;&#039;multitee&#039;&#039;&#039; sends multiple inputs to multiple outputs. Check this [http://code.dogmap.org/fdtools/multitee/ page]. Original is [http://cr.yp.to/software/multitee-3.0.shar.gz here], or c...</title>
		<link rel="alternate" type="text/html" href="https://wiki.yobi.be/index.php?title=Cygwin-multitee&amp;diff=5315&amp;oldid=prev"/>
		<updated>2008-11-25T02:30:11Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;&amp;#039;multitee&amp;#039;&amp;#039;&amp;#039; sends multiple inputs to multiple outputs. Check this [http://code.dogmap.org/fdtools/multitee/ page]. Original is [http://cr.yp.to/software/multitee-3.0.shar.gz here], or c...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;multitee&amp;#039;&amp;#039;&amp;#039; sends multiple inputs to multiple outputs. Check this [http://code.dogmap.org/fdtools/multitee/ page].&lt;br /&gt;
Original is [http://cr.yp.to/software/multitee-3.0.shar.gz here], or can also be found here on [http://ftp.de.debian.org/debian/pool/main/m/multitee/multitee_3.0.orig.tar.gz Debian].&lt;br /&gt;
&lt;br /&gt;
Below you&amp;#039;ll find a patch to build &amp;#039;&amp;#039;multitee&amp;#039;&amp;#039; on cygwin (and possibly any other POSIX distribution). To build, just untar the &amp;#039;&amp;#039;multitee&amp;#039;&amp;#039; archive, and then in a shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ patch -Np1 &amp;lt;../multitee-3.0-cygwin.patch&lt;br /&gt;
$ make&lt;br /&gt;
$ cp multitee.1 /usr/local/man/man1&lt;br /&gt;
$ cp multitee.exe /usr/local/bin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of use:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ multitee 0-1,4,5 4&amp;gt; foo 5&amp;gt; bar             # same as tee foo bar with better blocking behavior&lt;br /&gt;
$ multitee 0:1 3:1 4:1,2 6:7                 # various merge and copy&lt;br /&gt;
$ tcpclient server smtp multitee 0:7 6:1e0   # e0 tell multitee to quit as soon connection close&lt;br /&gt;
$ multitee 0:3 3:1                           # same as &amp;#039;socat - FD:3&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The patch ==&lt;br /&gt;
Here the [{{#file: multitee-3.0-cygwin.patch}} patch] to build &amp;#039;&amp;#039;multitee&amp;#039;&amp;#039; on &amp;#039;&amp;#039;Cygwin&amp;#039;&amp;#039;. The patch ports calls to BSD &amp;#039;&amp;#039;signal.h&amp;#039;&amp;#039; API (&amp;lt;tt&amp;gt;struct sigvec&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigvec()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigblock()&amp;lt;/tt&amp;gt;...) to the POSIX API (&amp;lt;tt&amp;gt;struct sigaction&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigaction()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigprocmask()&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sigfillset()&amp;lt;/tt&amp;gt;...).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=diff&amp;gt;&lt;br /&gt;
--- multitee-3.0/Makefile	1970-01-01 01:00:00.000000000 +0100&lt;br /&gt;
+++ multitee-3.0-cygwin/Makefile	2008-11-24 03:35:43.875000000 +0100&lt;br /&gt;
@@ -0,0 +1,9 @@&lt;br /&gt;
+&lt;br /&gt;
+all:		multitee tee&lt;br /&gt;
+&lt;br /&gt;
+multitee:       multitee.o sigdfl.o sigsched.o ralloc.o getopt.o fmt.o scan.o&lt;br /&gt;
+tee:            tee.o getopt.o ralloc.o fmt.o&lt;br /&gt;
+&lt;br /&gt;
+clean:&lt;br /&gt;
+	rm -f tee multitee *.o *.a *.0 *~ core&lt;br /&gt;
+&lt;br /&gt;
--- multitee-3.0/multitee.c	1998-02-17 03:25:43.000000000 +0100&lt;br /&gt;
+++ multitee-3.0-cygwin/multitee.c	2008-11-24 03:38:51.296875000 +0100&lt;br /&gt;
@@ -180,7 +180,7 @@&lt;br /&gt;
  int in;&lt;br /&gt;
  int w;&lt;br /&gt;
 &lt;br /&gt;
- ioscp = (ioscstack) p;&lt;br /&gt;
+ ioscp = (struct iosc *) p;&lt;br /&gt;
  in = ioscp-&amp;gt;in;&lt;br /&gt;
 &lt;br /&gt;
  if (ioscp-&amp;gt;dead)&lt;br /&gt;
--- multitee-3.0/ralloc.c	1998-02-17 03:25:43.000000000 +0100&lt;br /&gt;
+++ multitee-3.0-cygwin/ralloc.c	2008-11-24 03:41:24.093750000 +0100&lt;br /&gt;
@@ -40,7 +40,7 @@&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;quot;ralloc.h&amp;quot;&lt;br /&gt;
 #include &amp;quot;sod.h&amp;quot;&lt;br /&gt;
-extern char *malloc(); /*XXXX*/&lt;br /&gt;
+extern void *malloc(); /*XXXX*/&lt;br /&gt;
 extern void free();&lt;br /&gt;
 &lt;br /&gt;
 typedef int (*foo)();&lt;br /&gt;
--- multitee-3.0/sigdfl.c	1998-02-17 03:25:44.000000000 +0100&lt;br /&gt;
+++ multitee-3.0-cygwin/sigdfl.c	2008-11-24 03:39:57.734375000 +0100&lt;br /&gt;
@@ -2,6 +2,7 @@&lt;br /&gt;
 Daniel J. Bernstein, brnstnd@nyu.edu.&lt;br /&gt;
 No dependencies.&lt;br /&gt;
 Requires BSD signal syscalls.&lt;br /&gt;
+24/11/08: Michael Peeters - Ported to POSIX signal.h (tested under Cygwin)&lt;br /&gt;
 7/18/91: Baseline. sigdfl 1.0, public domain.&lt;br /&gt;
 No known patent problems.&lt;br /&gt;
 &lt;br /&gt;
@@ -18,18 +19,20 @@&lt;br /&gt;
 &lt;br /&gt;
 static int cont = 0;&lt;br /&gt;
 &lt;br /&gt;
-static sigcont() /* XXX: should declare with right signal type */&lt;br /&gt;
+static void sigcont(int sig) /* XXX: should declare with right signal type */&lt;br /&gt;
 {&lt;br /&gt;
+ (void)sig;&lt;br /&gt;
  cont = 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int sigdfl(sig)&lt;br /&gt;
 int sig;&lt;br /&gt;
 {&lt;br /&gt;
- int oldmask;&lt;br /&gt;
- struct sigvec oldvec;&lt;br /&gt;
- struct sigvec vec;&lt;br /&gt;
- struct sigvec contvec;&lt;br /&gt;
+ sigset_t oldmask;&lt;br /&gt;
+ sigset_t workmask;&lt;br /&gt;
+ struct sigaction oldvec;&lt;br /&gt;
+ struct sigaction vec;&lt;br /&gt;
+ struct sigaction contvec;&lt;br /&gt;
 &lt;br /&gt;
  if (sig == SIGCONT)&lt;br /&gt;
    return 0; /* strategy below simply cannot work for CONT */&lt;br /&gt;
@@ -43,19 +46,20 @@&lt;br /&gt;
  /* killing the process and without stopping the process so that it&amp;#039;ll */&lt;br /&gt;
  /* receive CONT later, then we will enter an infinite loop. [sigh] */&lt;br /&gt;
  /* XXX: put maximum time wastage on this? */&lt;br /&gt;
- oldmask = sigblock(0);&lt;br /&gt;
- sigblock(~0);&lt;br /&gt;
+ sigprocmask(SIG_BLOCK,NULL,&amp;amp;oldmask);&lt;br /&gt;
+ sigfillset(&amp;amp;workmask);&lt;br /&gt;
+ sigprocmask(SIG_BLOCK,&amp;amp;workmask,NULL);&lt;br /&gt;
  /* now we won&amp;#039;t receive any signals */&lt;br /&gt;
- vec.sv_handler = SIG_DFL;&lt;br /&gt;
- vec.sv_mask = ~0;&lt;br /&gt;
- vec.sv_flags = 0;&lt;br /&gt;
- if (sigvec(sig,&amp;amp;vec,&amp;amp;oldvec) == -1)&lt;br /&gt;
+ vec.sa_handler = SIG_DFL;&lt;br /&gt;
+ vec.sa_mask = ~0;&lt;br /&gt;
+ vec.sa_flags = 0;&lt;br /&gt;
+ if (sigaction(sig,&amp;amp;vec,&amp;amp;oldvec) == -1)&lt;br /&gt;
    if ((sig != SIGSTOP) &amp;amp;&amp;amp; (sig != SIGKILL))&lt;br /&gt;
      return -1;&lt;br /&gt;
- vec.sv_handler = sigcont;&lt;br /&gt;
- vec.sv_mask = ~0;&lt;br /&gt;
- vec.sv_flags = 0;&lt;br /&gt;
- if (sigvec(SIGCONT,&amp;amp;vec,&amp;amp;contvec) == -1)&lt;br /&gt;
+ vec.sa_handler = sigcont;&lt;br /&gt;
+ vec.sa_mask = ~0;&lt;br /&gt;
+ vec.sa_flags = 0;&lt;br /&gt;
+ if (sigaction(SIGCONT,&amp;amp;vec,&amp;amp;contvec) == -1)&lt;br /&gt;
    return -1;&lt;br /&gt;
  cont = 0;&lt;br /&gt;
  if (kill(getpid(),sig) == -1)&lt;br /&gt;
@@ -66,16 +70,20 @@&lt;br /&gt;
     reached this point, sigcont() might already have been run. that&amp;#039;s&lt;br /&gt;
     why cont must be set to 0 before the kill(). */&lt;br /&gt;
  /* after this next bit we may receive sig and/or CONT */&lt;br /&gt;
- sigsetmask(~(sigmask(sig) | sigmask(SIGCONT)));&lt;br /&gt;
+ sigfillset(&amp;amp;workmask);&lt;br /&gt;
+ sigdelset(&amp;amp;workmask,sig);&lt;br /&gt;
+ sigdelset(&amp;amp;workmask,SIGCONT);&lt;br /&gt;
+ sigprocmask(SIG_SETMASK,&amp;amp;workmask,NULL);&lt;br /&gt;
  /* in the near future, sig will in fact be received */&lt;br /&gt;
  while (!cont) /* dead loop until we receive CONT */&lt;br /&gt;
    ; /* XXX: there should be a syscall so we don&amp;#039;t have to loop here */&lt;br /&gt;
- sigblock(~0);&lt;br /&gt;
+ sigfillset(&amp;amp;workmask);&lt;br /&gt;
+ sigprocmask(SIG_BLOCK,&amp;amp;workmask,NULL);&lt;br /&gt;
  /* now we won&amp;#039;t receive any signals */&lt;br /&gt;
- (void) sigvec(sig,&amp;amp;oldvec,&amp;amp;vec); /* we don&amp;#039;t care if it fails */&lt;br /&gt;
- (void) sigvec(SIGCONT,&amp;amp;contvec,&amp;amp;vec);&lt;br /&gt;
+ (void) sigaction(sig,&amp;amp;oldvec,&amp;amp;vec); /* we don&amp;#039;t care if it fails */&lt;br /&gt;
+ (void) sigaction(SIGCONT,&amp;amp;contvec,&amp;amp;vec);&lt;br /&gt;
  /* now signal handlers are back to normal */&lt;br /&gt;
- (void) sigsetmask(oldmask);&lt;br /&gt;
+ (void) sigprocmask(SIG_SETMASK,&amp;amp;oldmask,NULL);&lt;br /&gt;
  return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
--- multitee-3.0/sigsched.c	1998-02-17 03:25:44.000000000 +0100&lt;br /&gt;
+++ multitee-3.0-cygwin/sigsched.c	2008-11-24 03:35:43.906250000 +0100&lt;br /&gt;
@@ -2,6 +2,7 @@&lt;br /&gt;
 Daniel J. Bernstein, brnstnd@nyu.edu.&lt;br /&gt;
 Depends on ralloc.h, sod.h, config/fdsettrouble.h.&lt;br /&gt;
 Requires BSDish environment: reliable signals, sig{vec,block,setmask}, select.&lt;br /&gt;
+24/11/08: Michael Peeters - Ported to POSIX signal.h (tested under Cygwin)&lt;br /&gt;
 9/1/91: Added worst-case fdset, FD_ZERO, etc. definitions.&lt;br /&gt;
 8/25/91: sigsched 1.1, public domain.&lt;br /&gt;
 8/25/91: Fixed bug that sigs[sched-&amp;gt;blah].r didn&amp;#039;t force instant timeout.&lt;br /&gt;
@@ -31,17 +32,6 @@&lt;br /&gt;
 &lt;br /&gt;
 /* XXX: should restore signal set exactly after ss_exec returns */&lt;br /&gt;
 &lt;br /&gt;
-typedef int sigc_set; /*XXX */&lt;br /&gt;
-&lt;br /&gt;
-#define sigc_ismember(x,i) (*(x) &amp;amp; (1 &amp;lt;&amp;lt; ((i) - 1)))&lt;br /&gt;
-#define sigc_addset(x,i) (*(x) |= (1 &amp;lt;&amp;lt; ((i) - 1)))&lt;br /&gt;
-#define sigc_emptyset(x) (*(x) = 0)&lt;br /&gt;
-&lt;br /&gt;
-/*       sigprocmask(SIG_UNBLOCK,xxxx,(sigc_set *) 0); */&lt;br /&gt;
-#define sigc_unblock(x) (sigsetmask(sigblock(0) &amp;amp; ~*(x)))&lt;br /&gt;
-/*       sigprocmask(SIG_BLOCK,xxxx,(sigc_set *) 0); */&lt;br /&gt;
-#define sigc_block(x) (sigblock(*(x)))&lt;br /&gt;
-&lt;br /&gt;
 #ifndef NSIG&lt;br /&gt;
 #define NSIG 64 /* it&amp;#039;s not as if any sane system has more than 32 */&lt;br /&gt;
 #endif&lt;br /&gt;
@@ -333,8 +323,8 @@&lt;br /&gt;
  sigs[i].r = 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
-static sigc_set sigstorage;&lt;br /&gt;
-static sigc_set *xxxx = 0;&lt;br /&gt;
+static sigset_t sigstorage;&lt;br /&gt;
+static sigset_t *xxxx = 0;&lt;br /&gt;
 &lt;br /&gt;
 int ss_addsig(i)&lt;br /&gt;
 int i;&lt;br /&gt;
@@ -344,9 +334,9 @@&lt;br /&gt;
  if (!xxxx)&lt;br /&gt;
   {&lt;br /&gt;
    xxxx = &amp;amp;sigstorage;&lt;br /&gt;
-   sigc_emptyset(xxxx);&lt;br /&gt;
+   sigemptyset(xxxx);&lt;br /&gt;
   }&lt;br /&gt;
- sigc_addset(xxxx,i);&lt;br /&gt;
+ sigaddset(xxxx,i);&lt;br /&gt;
  return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
@@ -362,7 +352,7 @@&lt;br /&gt;
 int ss_exec()&lt;br /&gt;
 {&lt;br /&gt;
  int i;&lt;br /&gt;
- struct sigvec sv;&lt;br /&gt;
+ struct sigaction sv;&lt;br /&gt;
  recvlist recvhead;&lt;br /&gt;
  recvlist temp;&lt;br /&gt;
  schedlist sch;&lt;br /&gt;
@@ -371,18 +361,18 @@&lt;br /&gt;
 &lt;br /&gt;
  if (xxxx)&lt;br /&gt;
   {&lt;br /&gt;
-   sigc_block(xxxx);&lt;br /&gt;
+   sigprocmask(SIG_BLOCK,xxxx,NULL);&lt;br /&gt;
 &lt;br /&gt;
-   sv.sv_handler = handle;&lt;br /&gt;
-   sv.sv_mask = *xxxx; /* so handle won&amp;#039;t interrupt itself */&lt;br /&gt;
-   sv.sv_flags = 0;&lt;br /&gt;
+   sv.sa_handler = handle;&lt;br /&gt;
+   sv.sa_mask = *xxxx; /* so handle won&amp;#039;t interrupt itself */&lt;br /&gt;
+   sv.sa_flags = 0;&lt;br /&gt;
 &lt;br /&gt;
    /* XXX: Does anyone but me find it absolutely idiotic that POSIX&lt;br /&gt;
       doesn&amp;#039;t provide a way to get each member of a signal set in turn? */&lt;br /&gt;
    for (i = 0;i &amp;lt; NUMSIGS;i++)&lt;br /&gt;
     {&lt;br /&gt;
-     if (sigc_ismember(xxxx,i))&lt;br /&gt;
-       if (sigvec(i,&amp;amp;sv,(struct sigvec *) 0) == -1) /*XXX: really trash orig? */&lt;br /&gt;
+     if (sigismember(xxxx,i))&lt;br /&gt;
+       if (sigaction(i,&amp;amp;sv,(struct sigaction *) 0) == -1) /*XXX: really trash orig? */&lt;br /&gt;
 	 ; /* not our problem */&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
@@ -498,7 +488,7 @@&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
      if (xxxx)&lt;br /&gt;
-       sigc_unblock(xxxx);&lt;br /&gt;
+       sigprocmask(SIG_UNBLOCK,xxxx,NULL);&lt;br /&gt;
      /* This is the only section where handle() can be called. */&lt;br /&gt;
      /* XXX: If maxfd == -1, this select functions as a pause. */&lt;br /&gt;
      /* XXX: If maxfd == -1 and timeout is instant, should skip select. */&lt;br /&gt;
@@ -510,7 +500,7 @@&lt;br /&gt;
      r = select(maxfd + 1,&amp;amp;rfds,&amp;amp;wfds,&amp;amp;efds,&amp;amp;timeout);&lt;br /&gt;
        /* XXX: does this necessarily prevent timeout race conditions? */&lt;br /&gt;
      if (xxxx)&lt;br /&gt;
-       sigc_block(xxxx);&lt;br /&gt;
+       sigprocmask(SIG_BLOCK,xxxx,NULL);&lt;br /&gt;
 &lt;br /&gt;
      if (r == -1)&lt;br /&gt;
       {&lt;br /&gt;
@@ -529,7 +519,7 @@&lt;br /&gt;
 &lt;br /&gt;
      for (sp = schedhead;sp;sp = SODnext(sp))&lt;br /&gt;
       {&lt;br /&gt;
-       switch(SODdata(sp).sig-&amp;gt;type) &lt;br /&gt;
+       switch(SODdata(sp).sig-&amp;gt;type)&lt;br /&gt;
 	{&lt;br /&gt;
 	 case JUNK:&lt;br /&gt;
 	   break;&lt;br /&gt;
@@ -595,7 +585,7 @@&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
  if (xxxx)&lt;br /&gt;
-   sigc_unblock(xxxx);&lt;br /&gt;
+   sigprocmask(SIG_UNBLOCK,xxxx,NULL);&lt;br /&gt;
    /* XXX: should put this at other returns as well */&lt;br /&gt;
  return 0;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fuujuhi</name></author>
	</entry>
</feed>