<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.os.openbsd.tech">
    <title>gmane.os.openbsd.tech</title>
    <link>http://blog.gmane.org/gmane.os.openbsd.tech</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28866"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28864"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28861"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28859"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28858"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28857"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28856"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28855"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28848"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28841"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28840"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28839"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28837"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28832"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28831"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28829"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28828"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28826"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28824"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.os.openbsd.tech/28823"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28866">
    <title>MADEYBRAS: pisos de madera estructurada. publicidad   ma san</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28866</link>
    <description>&lt;pre&gt;
[demime 1.01d removed an attachment of type image/jpeg which had a name of abastecer.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of tfortisimo.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of palingenesica.jpg]


&lt;/pre&gt;</description>
    <dc:creator>ARTCO</dc:creator>
    <dc:date>2012-05-26T17:31:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28864">
    <title>No pierdas esta oportunidad de hacerte socio. publicidad   so gid</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28864</link>
    <description>&lt;pre&gt;Deseas hacerte socio de nuestro club y disfrutar de la ciudad, campo y playa?
La Alameda &amp;amp; Hacienda Club te espera...




La Alameda &amp;amp; Hacienda Club
T. 444-9018 / 241-3208

[demime 1.01d removed an attachment of type image/jpeg which had a name of nsubrayada.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of fcruentacion.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of ninexperto.jpg]


&lt;/pre&gt;</description>
    <dc:creator>La Alameda &amp; Hacienda Club</dc:creator>
    <dc:date>2012-05-26T08:21:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28861">
    <title>Viva una experiencia exclusiva con Diners Club. publicidad   bi bem</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28861</link>
    <description>&lt;pre&gt;
[demime 1.01d removed an attachment of type image/jpeg which had a name of fprimipara.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of dmultiflora.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of facineroso.jpg]


&lt;/pre&gt;</description>
    <dc:creator>DINERS CLUB</dc:creator>
    <dc:date>2012-05-26T03:49:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28859">
    <title>ftp synopsis</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28859</link>
    <description>&lt;pre&gt;the size of ftp's synopsis is making it very ugly. any objections to
shortening it? i.e. this diff is cosmetic.

jmc

Index: ftp.1
===================================================================
RCS file: /cvs/src/usr.bin/ftp/ftp.1,v
retrieving revision 1.82
diff -u -r1.82 ftp.1
--- ftp.130 Apr 2012 13:41:26 -00001.82
+++ ftp.125 May 2012 20:44:52 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -39,17 +39,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Sh SYNOPSIS
 .Nm ftp
 .Op Fl 46AadEegimnptVv
-.Op Fl k Ar seconds
+.Op Fl k Ar sec
 .Op Fl P Ar port
-.Op Fl r Ar seconds
-.Op Fl s Ar srcaddr
+.Op Fl r Ar sec
+.Op Fl s Ar src
 .Op Ar host Op Ar port
 .Nm ftp
 .Op Fl C
-.Op Fl o Ar output
-.Op Fl s Ar srcaddr
+.Op Fl o Ar out
+.Op Fl s Ar src
 .Sm off
-.No ftp:// Oo Ar user : password No &amp;lt; at &amp;gt;
+.No ftp:// Oo Ar user : pass No &amp;lt; at &amp;gt;
 .Oc Ar host Oo : Ar port
 .Oc No / Ar file Oo /
 .Oc
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -58,8 +58,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Nm ftp
 .Op Fl C
 .Op Fl c Ar cookie
-.Op Fl o Ar output
-.Op Fl s Ar srcaddr
+.Op Fl o Ar out
+.Op Fl s Ar src
 .Sm off
 .No http:// Ar host Oo : Ar port
 .Oc No / Ar file
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -68,8 +68,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Nm ftp
 .Op Fl C
 .Op Fl c Ar cookie
-.Op Fl o Ar output
-.Op Fl s Ar srcaddr
+.Op Fl o Ar out
+.Op Fl s Ar src
 .Sm off
 .No https:// Ar host Oo : Ar port
 .Oc No / Ar file
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -77,16 +77,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Ar ...
 .Nm ftp
 .Op Fl C
-.Op Fl o Ar output
-.Op Fl s Ar srcaddr
+.Op Fl o Ar out
+.Op Fl s Ar src
 .Sm off
 .No file: Ar file
 .Sm on
 .Ar ...
 .Nm ftp
 .Op Fl C
-.Op Fl o Ar output
-.Op Fl s Ar srcaddr
+.Op Fl o Ar out
+.Op Fl s Ar src
 .Sm off
 .Ar host : No / Ar file Oo /
 .Oc
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -167,11 +167,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .It Fl i
 Turns off interactive prompting during
 multiple file transfers.
-.It Fl k Ar seconds
+.It Fl k Ar sec
 When greater than zero,
-sends a byte after each
-.Ar seconds
-period over the control connection during long transfers,
+sends a byte after each period of
+.Ar sec
+seconds over the control connection during long transfers,
 so that incorrectly configured network equipment won't
 aggressively drop it.
 The FTP protocol supports a
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -206,14 +206,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 will prompt for the remote machine login name (default is the user
 identity on the local machine), and, if necessary, prompt for a password
 and an account with which to log in.
-.It Fl o Ar output
+.It Fl o Ar out
 When fetching a single file or URL, save the contents in
-.Ar output .
+.Ar out .
 To make the contents go to stdout,
 use
 .Sq -
 for
-.Ar output .
+.Ar out .
 .It Fl P Ar port
 Sets the port number to
 .Ar port .
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -223,12 +223,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Nm
 now tries to use passive mode by default, falling back to active mode
 if the server does not support passive connections.
-.It Fl r Ar seconds
-Retry to connect if failed, pausing for number of
-.Ar seconds .
-.It Fl s Ar srcaddr
+.It Fl r Ar sec
+Retry to connect if failed, pausing for
+.Ar sec
+seconds.
+.It Fl s Ar src
 Use
-.Ar srcaddr
+.Ar src
 on the local machine as the source address
 of the connection.
 Only useful on systems with more than one address.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -492,12 +493,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 If no argument is given,
 .Nm
 prints a list of the known commands.
-.It Ic idle Op Ar seconds
+.It Ic idle Op Ar sec
 Set the inactivity timer on the remote server to
-.Ar seconds
+.Ar sec
 seconds.
 If
-.Ar seconds
+.Ar sec
 is omitted, the current inactivity timer is printed.
 .It Ic lcd Op Ar local-directory
 Change the working directory on the local machine.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1193,12 +1194,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Ar newmask
 is omitted, the current umask is printed.
 .It Xo
-.Ic user Ar username
-.Op Ar password Op Ar account
+.Ic user Ar user
+.Op Ar pass Op Ar account
 .Xc
 Identify yourself to the remote FTP server.
-If the
-.Ar password
+If a password
+.Ar pass
 is not specified and the server requires it,
 .Nm
 will prompt the user for it (after disabling local echo).
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1264,20 +1265,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 .Dq Classic
 .Nm
 format.
-.It ftp://[user:password&amp;lt; at &amp;gt;]host[:port]/file[/]
+.It ftp://[user:pass&amp;lt; at &amp;gt;]host[:port]/file[/]
 An FTP URL, retrieved using the FTP protocol if
 .Ev ftp_proxy
 isn't defined.
 Otherwise, transfer using HTTP via the proxy defined in
 .Ev ftp_proxy .
 If
-.Ar user : Ns Ar password Ns &amp;lt; at &amp;gt;
+.Ar user : Ns Ar pass Ns &amp;lt; at &amp;gt;
 is given and
 .Ev ftp_proxy
 isn't defined, log in as
 .Ar user
 with a password of
-.Ar password .
+.Ar pass .
 .It http://host[:port]/file
 An HTTP URL, retrieved using the HTTP protocol.
 If
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1328,11 +1329,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 of
 .Ar file .
 If
-.Fl o Ar output
+.Fl o Ar out
 is specified, then
 .Ar file
 is stored as
-.Ar output .
+.Ar out .
 Otherwise, the remote name is used as the local name.
 .Sh ABORTING A FILE TRANSFER
 To abort a file transfer, use the terminal interrupt key
Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/main.c,v
retrieving revision 1.83
diff -u -r1.83 main.c
--- main.c19 May 2012 02:04:22 -00001.83
+++ main.c25 May 2012 20:44:52 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -758,47 +758,44 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 {
 (void)fprintf(stderr, "usage: %s "
 #ifndef SMALL
-    "[-46AadEegimnptVv] [-k seconds] [-P port] "
-    "[-r seconds] [-s srcaddr]\n"
-    "           [host [port]]\n"
+    "[-46AadEegimnptVv] [-k sec] [-P port] "
+    "[-r sec] [-s src] [host [port]]\n"
     "       %s [-C] "
 #endif /* !SMALL */
-    "[-o output] "
+    "[-o out] "
 #ifndef SMALL
-    "[-s srcaddr]\n"
-    "           "
+    "[-s src] "
 #endif /* !SMALL */
-    "ftp://[user:password&amp;lt; at &amp;gt;]host[:port]/file[/] ...\n"
+    "ftp://[user:pass&amp;lt; at &amp;gt;]host[:port]/file[/] ...\n"
     "       %s "
 #ifndef SMALL
     "[-C] [-c cookie] "
 #endif /* !SMALL */
-    "[-o output] "
+    "[-o out] "
 #ifndef SMALL
-    "[-s srcaddr] "
+    "[-s src] "
 #endif /* !SMALL */
     "http://host[:port]/file ...\n"
 #ifndef SMALL
-    "       %s [-C] [-c cookie] [-o output] [-s srcaddr] "
-    "https://host[:port]/file\n"
-    "           ...\n"
+    "       %s [-C] [-c cookie] [-o out] [-s src] "
+    "https://host[:port]/file ...\n"
 #endif /* !SMALL */
     "       %s "
 #ifndef SMALL
     "[-C] "
 #endif /* !SMALL */
-    "[-o output] "
+    "[-o out] "
 #ifndef SMALL
-    "[-s srcaddr] "
+    "[-s src] "
 #endif /* !SMALL */
     "file:file ...\n"
     "       %s "
 #ifndef SMALL
     "[-C] "
 #endif /* !SMALL */
-    "[-o output] "
+    "[-o out] "
 #ifndef SMALL
-    "[-s srcaddr] "
+    "[-s src] "
 #endif /* !SMALL */
     "host:/file[/] ...\n",
 #ifndef SMALL


&lt;/pre&gt;</description>
    <dc:creator>Jason McIntyre</dc:creator>
    <dc:date>2012-05-25T20:47:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28858">
    <title>mg history and window relocation</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28858</link>
    <description>&lt;pre&gt;Move the windows section in the tutorial to a more sensible place
(next to buffers) and move the mg history into the README file which
seems a more sensible place as well.

ok?

-lum

Index: README
===================================================================
RCS file: /cvs/src/usr.bin/mg/README,v
retrieving revision 1.9
diff -u -p -r1.9 README
--- README11 Apr 2012 17:51:10 -00001.9
+++ README25 May 2012 10:30:31 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -40,8 +40,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; People who have worked on previous versi
 
 rtech!daveb&amp;lt; at &amp;gt;sun.comDave Brower
 
-Currently maintained in the OpenBSD src tree, with contributions from
-many others.
+Early release history:
+
+* Nov 16, 1986: First release to mod.sources
+* Mar 3, 1987: First Release (mg1a) via comp.sources.unix
+* May 26, 1988: Second release: (mg2a) via comp.sources.misc
+* Jan 26, 1992: Linux port released by Charles Hedrick. This version
+  later makes its way onto tsx-11, Infomagic, and various other Linux
+  repositories.
+* Feb 25, 2000: First import into the OpenBSD tree, where it is
+  currently maintained.
 
 ----------------------------------------------------------------------
 
Index: tutorial
===================================================================
RCS file: /cvs/src/usr.bin/mg/tutorial,v
retrieving revision 1.9
diff -u -p -r1.9 tutorial
--- tutorial7 May 2012 13:52:58 -00001.9
+++ tutorial25 May 2012 10:30:32 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -118,20 +118,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; screen when you type C-g indicating that
 
 In general, when in doubt, use C-g to get out of trouble.
 
-Windows
--------
-
-The mg editor can support several windows at the same time, each one displaying
-different text. To split a screen into two horizontal windows use C-x 2 to do
-this. To return to one window, use C-x 1 to close the other windows and only
-keep the current window.
-
-&amp;gt;&amp;gt; Use C-x 2 to split the screen into two windows. 
-
-&amp;gt;&amp;gt; Use C-x o to move from one window to the other. You can scroll up and down
-   in each window using the cursor keys or C-n and C-p keys.
-
-&amp;gt;&amp;gt; Use C-x 1 to restore back to one window.
 
 Inserting/Deleting Text
 -----------------------
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -267,6 +253,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; in the bottom of your screen. In general
 often. When you save a file, mg saves a backup of the file with a tilde (~)
 character at the end.
 
+Windows
+-------
+
+The mg editor can support several windows at the same time, each one displaying
+different text. To split a screen into two horizontal windows use C-x 2 to do
+this. To return to one window, use C-x 1 to close the other windows and only
+keep the current window.
+
+&amp;gt;&amp;gt; Use C-x 2 to split the screen into two windows. 
+
+&amp;gt;&amp;gt; Use C-x o to move from one window to the other. You can scroll up and down
+   in each window using the cursor keys or C-n and C-p keys.
+
+&amp;gt;&amp;gt; Use C-x 1 to restore back to one window.
+
 Buffers
 -------
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -334,31 +335,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; information available via the mg(1) man 
 improvement, please don't hesitate to drop a message or (better still) submit
 a diff to tech&amp;lt; at &amp;gt;openbsd.org.
 
-History
--------
-
-mg is a public-domain text editor. It was originally based on MicroEMACS, but
-has since moved to more closely resemble GNU Emacs while still maintaining a
-small memory footprint and fast speed. 
-
-* Nov 16, 1986: First release to mod.sources
-* Mar 3, 1987: First Release (mg1a) via comp.sources.unix
-* May 26, 1988: Second release: (mg2a) via comp.sources.misc
-* Jan 26, 1992: Linux port released by Charles Hedrick. This version
-  later makes its way onto tsx-11, Infomagic, and various other Linux
-  repositories. 
-* Feb 25, 2000: First import into the OpenBSD tree, where it is
-  currently maintained
-
-The mg editor was originally named MicroGNUEmacs. The name was changed at
-the request of Richard Stallman, as this software is entirely unrelated to
-the GNU project. 
-
 Author Info
 -----------
 
 Original Author of this document: Mayukh Bose, 
-Date last updated: 2012-01-17
+Date last updated: 2012-05-25
 
 Copyright
 ---------


&lt;/pre&gt;</description>
    <dc:creator>Mark Lumsden</dc:creator>
    <dc:date>2012-05-25T10:39:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28857">
    <title>mg end of buffer page down diff</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28857</link>
    <description>&lt;pre&gt;When you page down a document and get to the last page, mg doesn't
stop, it keeps going until the last line is at the top of the window.
This diff makes mg stop paging down when the end of the text is
visible. 

Comments/ok?

-lum
ps some whitespace for readability added. 

Index: basic.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/basic.c,v
retrieving revision 1.30
diff -u -p -r1.30 basic.c
--- basic.c4 Jun 2009 02:23:37 -00001.30
+++ basic.c25 May 2012 07:40:33 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -266,16 +266,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; forwpage(int f, int n)
 n = 1;/* if tiny window. */
 } else if (n &amp;lt; 0)
 return (backpage(f | FFRAND, -n));
+
 lp = curwp-&amp;gt;w_linep;
-while (n-- &amp;amp;&amp;amp; lforw(lp) != curbp-&amp;gt;b_headp) {
-lp = lforw(lp);
-}
+while (n--)
+if ((lp = lforw(lp)) == curbp-&amp;gt;b_headp)
+return(TRUE);
+
 curwp-&amp;gt;w_linep = lp;
 curwp-&amp;gt;w_rflag |= WFFULL;
+
 /* if in current window, don't move dot */
-for (n = curwp-&amp;gt;w_ntrows; n-- &amp;amp;&amp;amp; lp != curbp-&amp;gt;b_headp; lp = lforw(lp))
+for (n = curwp-&amp;gt;w_ntrows; n--; lp = lforw(lp))
 if (lp == curwp-&amp;gt;w_dotp)
 return (TRUE);
+
 /* Advance the dot the slow way, for line nos */
 while (curwp-&amp;gt;w_dotp != curwp-&amp;gt;w_linep) {
 curwp-&amp;gt;w_dotp = lforw(curwp-&amp;gt;w_dotp);


&lt;/pre&gt;</description>
    <dc:creator>Mark Lumsden</dc:creator>
    <dc:date>2012-05-25T08:16:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28856">
    <title>Aromatizador automatico 57% OFF | Pochoclera Automatica 53% OFF | Juego de Cocina 51% OFF  | Cuchillo Deli Pro  60% OFF | Test de Alcoholemia 67% OFF | Cena Gourmet 52% OFF</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28856</link>
    <description>&lt;pre&gt;Para visualizar correctamente este newsletter ingresa a
http://news1.bonuscupon.com.ar/r.html?uid=1.j.295h.9y.2ij1azebm9


&lt;/pre&gt;</description>
    <dc:creator>Bonus Cupon</dc:creator>
    <dc:date>2012-05-24T23:57:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28855">
    <title>Bocaditos y Mini Sándwiches por Delivery. publicidad   mo son</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28855</link>
    <description>&lt;pre&gt;
[demime 1.01d removed an attachment of type image/jpeg which had a name of fcraniano.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of anhelante.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of ndesventajosa.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of tverdeceledon.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of ecuestre.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of cfrancolina.jpg]

[demime 1.01d removed an attachment of type image/jpeg which had a name of flaqueado.jpg]


&lt;/pre&gt;</description>
    <dc:creator>Montecristo Café·Restaurante  </dc:creator>
    <dc:date>2012-05-24T22:20:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28848">
    <title>Memory leak in snmpd(8)</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28848</link>
    <description>&lt;pre&gt;Hi,

with the OPENBSD-CARP-MIB a memory leak was introduced to snmpd(8):

RCS file: mib.c,v
retrieving revision 1.52
diff -u -p -r1.52 mib.c
--- mib.c       2012/03/20 03:01:26     1.52
+++ mib.c       2012/05/24 12:53:35
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2713,7 +2713,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mib_carpiftable(struct oid *oid, struct ber_oid *o,
st
         /* Get and verify the current row index */
         idx = o-&amp;gt;bo_id[OIDIDX_carpIfEntry];

-       if ((cif = mib_carpifget(cif, idx)) == NULL) {
+       if (mib_carpifget(cif, idx) == NULL) {
                 free(cif);
                 return (1);
         }


Gerhard

--
GeNUA, Gesellschaft fC&amp;lt;r Netzwerk- und Unix-Administration mbH
Domagkstrasse 7, 85551 Kirchheim bei Muenchen
tel +49 89 991950-0, fax -999, www.genua.de
Geschaeftsfuehrer: Dr. Magnus Harlander, Dr. Michaela Harlander,
Bernhard Schneck. Amtsgericht Muenchen HRB 98238


&lt;/pre&gt;</description>
    <dc:creator>Gerhard Roth</dc:creator>
    <dc:date>2012-05-24T11:54:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28841">
    <title>Campamentos Científicos para docentes y alumnos</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28841</link>
    <description>&lt;pre&gt;OBSERVATORIO ASTRONOMICO
AMPIMPA
TUCUMAN - ARGENTINA
Declarado de Interis Educativo por el Ministerio de Educacisn de la
Nacisn
  _____

tech&amp;lt; at &amp;gt;openbsd.org
At.


Campamentos Cientmficos 2012/2013
- Aqos del Maximo Solar -
  Docetes
Campamentos Cientmficos exclusivos para Docentes
"La ciencia en el Aula. Nuevos enfoques didacticos"

22 al  25 de Junio de 2012 (haga click para ver mayor informacisn)
&amp;lt;http://www.astrotuc.com.ar/Paginas/noticia.asp?id=145&amp;amp;p=1&amp;gt;

 17 al 20 de Agosto de 2012 (haga Click para ver mayor informacisn)
&amp;lt;http://www.skytuc.com.ar/Paginas/noticia.asp?id=157&amp;amp;p=1&amp;gt;

(Ver aqum imagenes de campamentos docentes anteriores)
&amp;lt;http://www.astrotuc.com.ar/Paginas/img_campdoc.htm&amp;gt;

  Presentacisn

Tambiin: talleres
&amp;lt;http://www.astrotuc.com.ar/temp/BANNER%20CAMPAMENTOS%20OBSERVATORIO%20t
allereslr.jpg&amp;gt;

Campamentos Cientmficos Educativos
para grupos de alumnos

Organice campamentos cientmficos con los alumnos de su Colegio/Escuela.
Participe con ellos de esta experiencia Cohetes
&amp;lt;http://www.astrotuc.com.ar/temp/BANNER%20CAMPAMENTOS%20OBSERVATORIO%20c
ohetes%20lr.jpg&amp;gt; educativa znica.

Ver aqum imagenes de Campamentos con Alumnos
&amp;lt;http://www.astrotuc.com.ar/Paginas/campamentos_esc.htm&amp;gt;

Ver Aqum Noticias en la Prensa:
Pagina 1 &amp;lt;http://www.skytuc.com.ar/temp/plano4lra.gif&amp;gt;
Pagina 2 &amp;lt;http://www.skytuc.com.ar/temp/plano2lra.gif&amp;gt;

Ya se pueden reservar fechas del 2012 y 2013 !!! (Fechas y cupos
limitados) Geologma
&amp;lt;http://www.astrotuc.com.ar/temp/BANNER%20CAMPAMENTOS%20OBSERVATORIO%20c
aminatas%20lr.jpg&amp;gt;

Para ver mayor informacisn y/o consultas sobre campamentos con alumnos,
haga click aqum &amp;lt;http://www.astrotuc.com.ar/Paginas/noticia.asp?id=96&amp;gt;



El Cielos de Ampimpa
&amp;lt;http://www.astrotuc.com.ar/temp/BANNER%20CAMPAMENTOS%20OBSERVATORIO%20c
ielo.jpg&amp;gt;

Actividades Especiales en los Campamentos Cientmficos durante todo el
aqo 2012 y 2013

                                           Los esperamos.....

  _____

Si no desea recibir nuevas notificaciones por favor responda este mail
solicitando ser removido de nuestra lista de contactos
Observatorio Astronsmico Ampimpa - Tucuman - Argentina
www.astrotuc.com.ar &amp;lt;http://www.astrotuc.com.ar&amp;gt;  -
institucional&amp;lt; at &amp;gt;astrotuc.com.ar &amp;lt;mailto:institucional&amp;lt; at &amp;gt;astrotuc.com.ar&amp;gt;


&lt;/pre&gt;</description>
    <dc:creator>institucional&lt; at &gt;astrotuc.com.ar</dc:creator>
    <dc:date>2012-05-24T09:21:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28840">
    <title>mg - searching a buffer stops</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28840</link>
    <description>&lt;pre&gt;Currently, in mg, if you search (C-s) for a string and that string is located
at the end of a buffer AND there is no new-line after it, your search will
halt. For example, if you copy the text below into a new buffer and remove any
new lines after the last 5, then search for 5. When you reach the last line,
any further C-s's you do will seem to be ignored.

12345
54321
12345

Similarly, if you search backwards (C-r) and look for any 1's your search will
stutter at the first character on line 1.

This diff fixes these problems by not ignoring the return values of forwchar
and backchar, both of which conveniently indicate if we have reached the
end/start of the buffer or not.

Comments/ok?

-lum

Index: search.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/search.c,v
retrieving revision 1.39
diff -u -p -r1.39 search.c
--- search.c12 Apr 2012 04:47:59 -00001.39
+++ search.c24 May 2012 07:42:51 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -245,17 +245,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; isearch(int dir)
 ewprintf("Overwrapped I-search: %s", pat);
 break;
 }
-
 is_lpush();
 pptr = strlen(pat);
-(void)forwchar(FFRAND, 1);
-if (is_find(SRCH_FORW) != FALSE)
-is_cpush(SRCH_MARK);
-else {
-(void)backchar(FFRAND, 1);
-ttbeep();
-success = FALSE;
-ewprintf("Failed I-search: %s", pat);
+if (forwchar(FFRAND, 1) == FALSE) {
+                                ttbeep();
+                                success = FALSE;
+                                ewprintf("Failed I-search: %s", pat);
+} else {
+if (is_find(SRCH_FORW) != FALSE)
+is_cpush(SRCH_MARK);
+else {
+(void)backchar(FFRAND, 1);
+ttbeep();
+success = FALSE;
+ewprintf("Failed I-search: %s", pat);
+}
 }
 is_prompt(dir, pptr &amp;lt; 0, success);
 break;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -280,13 +284,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; isearch(int dir)
 }
 is_lpush();
 pptr = strlen(pat);
-(void)backchar(FFRAND, 1);
-if (is_find(SRCH_BACK) != FALSE)
-is_cpush(SRCH_MARK);
-else {
-(void)forwchar(FFRAND, 1);
-ttbeep();
-success = FALSE;
+                        if (backchar(FFRAND, 1) == FALSE) {
+                                ttbeep();
+                                success = FALSE;
+                        } else {
+if (is_find(SRCH_BACK) != FALSE)
+is_cpush(SRCH_MARK);
+else {
+(void)forwchar(FFRAND, 1);
+ttbeep();
+success = FALSE;
+}
 }
 is_prompt(dir, pptr &amp;lt; 0, success);
 break;


&lt;/pre&gt;</description>
    <dc:creator>Mark Lumsden</dc:creator>
    <dc:date>2012-05-24T07:49:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28839">
    <title>Çok Uygun fiyata ÇOK Özel İngilizce</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28839</link>
    <description>&lt;pre&gt;Merhaba

]ngilizceyi gok uygun fiyatlarda VZEL DERS alarak vprenmek igin benimle
ileti~ime geginiz.(Kampanyal} Ders Saati Fiyat}m}z 35 TL dir)

Sayg}lar}mla

Ceren GAKIR
KANADA K\LT\R MERKEZ]
0212 252 90 35 pbx


&lt;/pre&gt;</description>
    <dc:creator>Ceren ÇAKIR</dc:creator>
    <dc:date>2012-05-24T04:46:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28837">
    <title>Intel Atom E600 watchdog(4) support</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28837</link>
    <description>&lt;pre&gt;Attached are some patches that add support for the watchdog device on
boards based on the Intel Atom E600 series such as the Soekris net6501.

Based on existing drivers such as amdpcib(4), ichpcib(4) and ichwdt(4)
I've created an e600pcib(4) to override the standard pcib(4) which can
then access the watchdog device.

Here's the original dmesg:

---8&amp;lt;---
pcib0 at pci0 dev 31 function 0 "Intel E600 LPC" rev 0x00
isa0 at pcib0
---8&amp;lt;---

Here's with my changes:

---8&amp;lt;---
e600pcib0 at pci0 dev 31 function 0 "Intel E600 LPC" rev 0x00: watchdog
isa0 at e600pcib0
---8&amp;lt;---

I tested the watchdog by setting kern.watchdog.period to 60 and then
breaking into ddb and starting a stopwatch and timing until my net6501
resets, it take near enough to 60 seconds that I'm happy it's working.

On a watchdog-triggered reboot, I've done similar to ichwdt(4):

---8&amp;lt;---
e600pcib0 at pci0 dev 31 function 0 "Intel E600 LPC" rev 0x00: watchdog, reboot on timeout
isa0 at e600pcib0
---8&amp;lt;---

I've included the driver itself, man pages, changes to GENERIC and the
various infrastructure files.

I'm using it with GENERIC.MP on amd64 and I compile tested it on i386.

Any comments?

Matt

--- /dev/nullWed May 23 21:01:50 2012
+++ sys/dev/pci/e600pcib.cWed May 23 21:00:44 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,220 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+/*$OpenBSD$*/
+
+/*
+ * Copyright (c) 2012 Matt Dainty &amp;lt;matt&amp;lt; at &amp;gt;bodgit-n-scarper.com&amp;gt;
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * Intel Atom E600 series LPC bridge also containing watchdog
+ */
+
+#include &amp;lt;sys/param.h&amp;gt;
+#include &amp;lt;sys/systm.h&amp;gt;
+#include &amp;lt;sys/device.h&amp;gt;
+
+#include &amp;lt;machine/bus.h&amp;gt;
+
+#include &amp;lt;dev/pci/pcireg.h&amp;gt;
+#include &amp;lt;dev/pci/pcivar.h&amp;gt;
+#include &amp;lt;dev/pci/pcidevs.h&amp;gt;
+
+#defineE600_LPC_SMBA0x40/* SMBus Base Address */
+#defineE600_LPC_GBA0x44/* GPIO Base Address */
+#defineE600_LPC_WDTBA0x84/* WDT Base Address */
+
+#defineE600_WDT_SIZE64/* I/O region size */
+#defineE600_WDT_PV10x00/* Preload Value 1 Register */
+#defineE600_WDT_PV20x04/* Preload Value 2 Register */
+#defineE600_WDT_RR00x0c/* Reload Register 0 */
+#defineE600_WDT_RR10x0d/* Reload Register 1 */
+#defineE600_WDT_RR1_RELOAD(1 &amp;lt;&amp;lt; 0)/* WDT Reload Flag */
+#defineE600_WDT_RR1_TIMEOUT(1 &amp;lt;&amp;lt; 1)/* WDT Timeout Flag */
+#defineE600_WDT_WDTCR0x10/* WDT Configuration Register */
+#defineE600_WDT_WDTCR_TIMEOUT(1 &amp;lt;&amp;lt; 5)/* WDT Timeout Output Enable */
+#defineE600_WDT_WDTCR_ENABLE(1 &amp;lt;&amp;lt; 4)/* WDT Reset Enable */
+#defineE600_WDT_WDTCR_RESET(1 &amp;lt;&amp;lt; 3)/* WDT Reset Select */
+#defineE600_WDT_WDTCR_PRE(1 &amp;lt;&amp;lt; 2)/* WDT Prescalar Select */
+#defineE600_WDT_DCR0x14/* Down Counter Register */
+#defineE600_WDT_WDTLR0x18/* WDT Lock Register */
+#defineE600_WDT_WDTLR_LOCK(1 &amp;lt;&amp;lt; 0)/* Watchdog Timer Lock */
+#defineE600_WDT_WDTLR_ENABLE(1 &amp;lt;&amp;lt; 1)/* Watchdog Timer Enable */
+#defineE600_WDT_WDTLR_TIMEOUT(1 &amp;lt;&amp;lt; 2)/* WDT Timeout Configuration */
+
+struct e600pcib_softc {
+struct device sc_dev;
+
+/* Watchdog interface */
+bus_space_tag_t sc_wdt_iot;
+bus_space_handle_t sc_wdt_ioh;
+
+int sc_wdt_period;
+};
+
+struct cfdriver e600pcib_cd = {
+NULL, "e600pcib", DV_DULL
+};
+
+int e600pcib_match(struct device *, void *, void *);
+void e600pcib_attach(struct device *, struct device *, void *);
+
+int e600pcib_wdt_cb(void *, int);
+
+struct cfattach e600pcib_ca = {
+sizeof(struct e600pcib_softc), e600pcib_match, e600pcib_attach
+};
+
+/* from arch/&amp;lt;*&amp;gt;/pci/pcib.c */
+voidpcibattach(struct device *parent, struct device *self, void *aux);
+
+const struct pci_matchid e600pcib_devices[] = {
+{ PCI_VENDOR_INTEL,PCI_PRODUCT_INTEL_E600_LPC }
+};
+
+#ifndef SMALL_KERNEL
+static __inline void
+e600pcib_wdt_unlock(struct e600pcib_softc *sc)
+{
+/* Register unlocking sequence */
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh, E600_WDT_RR0, 0x80);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh, E600_WDT_RR0, 0x86);
+}
+#endif/* !SMALL_KERNEL */
+
+int
+e600pcib_match(struct device *parent, void *match, void *aux)
+{
+if (pci_matchbyid((struct pci_attach_args *)aux, e600pcib_devices,
+    sizeof(e600pcib_devices) / sizeof(e600pcib_devices[0])))
+return (2);
+
+return (0);
+}
+
+void
+e600pcib_attach(struct device *parent, struct device *self, void *aux)
+{
+#ifndef SMALL_KERNEL
+struct e600pcib_softc *sc = (struct e600pcib_softc *)self;
+struct pci_attach_args *pa = aux;
+u_int32_t reg, wdtbase;
+
+/* Map Watchdog I/O space */
+reg = pci_conf_read(pa-&amp;gt;pa_pc, pa-&amp;gt;pa_tag, E600_LPC_WDTBA);
+wdtbase = reg &amp;amp; 0xffff;
+sc-&amp;gt;sc_wdt_iot = pa-&amp;gt;pa_iot;
+if (reg &amp;amp; (1 &amp;lt;&amp;lt; 31) &amp;amp;&amp;amp; wdtbase) {
+if (PCI_MAPREG_IO_ADDR(wdtbase) == 0 ||
+    bus_space_map(sc-&amp;gt;sc_wdt_iot, PCI_MAPREG_IO_ADDR(wdtbase),
+    E600_WDT_SIZE, 0, &amp;amp;sc-&amp;gt;sc_wdt_ioh)) {
+printf(": can't map watchdog I/O space");
+goto corepcib;
+}
+printf(": watchdog", wdtbase);
+
+/* Check for reboot on timeout */
+reg = bus_space_read_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_RR1);
+if (reg &amp;amp; E600_WDT_RR1_TIMEOUT) {
+printf(", reboot on timeout");
+
+/* Clear timeout bit */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_RR1, E600_WDT_RR1_TIMEOUT);
+}
+
+/* Check it's not locked already */
+reg = bus_space_read_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_WDTLR);
+if (reg &amp;amp; E600_WDT_WDTLR_LOCK) {
+printf(", locked");
+goto corepcib;
+}
+
+/* Disable watchdog */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_WDTLR, 0);
+sc-&amp;gt;sc_wdt_period = 0;
+
+/* Register new watchdog */
+wdog_register(sc, e600pcib_wdt_cb);
+}
+
+corepcib:
+#endif/* !SMALL_KERNEL */
+/* Provide core pcib(4) functionality */
+pcibattach(parent, self, aux);
+}
+
+#ifndef SMALL_KERNEL
+int
+e600pcib_wdt_cb(void *arg, int period)
+{
+struct e600pcib_softc *sc = arg;
+u_int32_t preload;
+
+if (period == 0) {
+if (sc-&amp;gt;sc_wdt_period != 0) {
+/* Disable watchdog, with a reload before for safety */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_RR1, E600_WDT_RR1_RELOAD);
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_WDTLR, 0);
+}
+} else {
+/* 600 seconds is the maximum supported timeout value */
+if (period &amp;gt; 600)
+period = 600;
+if (sc-&amp;gt;sc_wdt_period != period) {
+/* Set new timeout */
+preload = (period * 33000000) &amp;gt;&amp;gt; 15;
+preload--;
+
+/* Set watchdog to perform a cold reset toggling the
+ * GPIO pin and the timer set to 1ms-10m resolution
+ */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_WDTCR, E600_WDT_WDTCR_ENABLE);
+e600pcib_wdt_unlock(sc);
+bus_space_write_4(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_PV1, 0);
+e600pcib_wdt_unlock(sc);
+bus_space_write_4(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_PV2, preload);
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_RR1, E600_WDT_RR1_RELOAD);
+}
+if (sc-&amp;gt;sc_wdt_period == 0) {
+/* Enable watchdog */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_WDTLR, E600_WDT_WDTLR_ENABLE);
+} else {
+/* Reset timer */
+e600pcib_wdt_unlock(sc);
+bus_space_write_1(sc-&amp;gt;sc_wdt_iot, sc-&amp;gt;sc_wdt_ioh,
+    E600_WDT_RR1, E600_WDT_RR1_RELOAD);
+}
+}
+sc-&amp;gt;sc_wdt_period = period;
+
+return (period);
+}
+#endif/* !SMALL_KERNEL */
--- /dev/nullWed May 23 21:02:08 2012
+++ share/man/man4/man4.i386/e600pcib.4Wed May 23 20:37:44 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,55 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+.\"     $OpenBSD$
+.\"
+.\" Copyright (c) 2012 Matt Dainty &amp;lt;matt&amp;lt; at &amp;gt;bodgit-n-scarper.com&amp;gt;
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate$
+.Dt E600PCIB 4 i386
+.Os
+.Sh NAME
+.Nm e600pcib
+.Nd Intel Atom E600 series LPC bridge and watchdog
+.Sh SYNOPSIS
+.Cd "e600pcib* at pci?"
+.Cd "isa* at e600pcib?"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for the Intel Atom E600 series LPC bridge and
+provides the standard
+.Xr watchdog 4
+interface to the watchdog timer and may be used with
+.Xr watchdogd 8 .
+The watchdog timer can be configured via
+.Xr sysctl 8 .
+.Pp
+Once the watchdog timer resets the CPU, the driver reports it on the
+next boot displaying the ``reboot on timeout'' message in the dmesg.
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr isa 4 ,
+.Xr pci 4 ,
+.Xr watchdog 4
+.Xr sysctl 8
+.Xr watchdogd 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Ox 5.2 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Matt Dainty Aq matt&amp;lt; at &amp;gt;bodgit-n-scarper.com .
--- /dev/nullWed May 23 21:02:17 2012
+++ share/man/man4/man4.amd64/e600pcib.4Wed May 23 20:53:39 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,55 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+.\"     $OpenBSD$
+.\"
+.\" Copyright (c) 2012 Matt Dainty &amp;lt;matt&amp;lt; at &amp;gt;bodgit-n-scarper.com&amp;gt;
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate$
+.Dt E600PCIB 4 amd64
+.Os
+.Sh NAME
+.Nm e600pcib
+.Nd Intel Atom E600 series LPC bridge and watchdog
+.Sh SYNOPSIS
+.Cd "e600pcib* at pci?"
+.Cd "isa* at e600pcib?"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for the Intel Atom E600 series LPC bridge and
+provides the standard
+.Xr watchdog 4
+interface to the watchdog timer and may be used with
+.Xr watchdogd 8 .
+The watchdog timer can be configured via
+.Xr sysctl 8 .
+.Pp
+Once the watchdog timer resets the CPU, the driver reports it on the
+next boot displaying the ``reboot on timeout'' message in the dmesg.
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr isa 4 ,
+.Xr pci 4 ,
+.Xr watchdog 4
+.Xr sysctl 8
+.Xr watchdogd 8
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Ox 5.2 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Matt Dainty Aq matt&amp;lt; at &amp;gt;bodgit-n-scarper.com .
--- share/man/man4/man4.i386/Makefile.origWed May 23 21:03:38 2012
+++ share/man/man4/man4.i386/MakefileWed May 23 21:04:33 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2,9 +2,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #from: &amp;lt; at &amp;gt;(#)Makefile5.1 (Berkeley) 2/12/91
 #Id: Makefile,v 1.4 1995/12/14 05:41:38 deraadt Exp $
 
-MAN=amdpcib.4 amdmsr.4 apm.4 autoconf.4 bios.4 cpu.4 elansc.4 \
-esm.4 geodesc.4 glxpcib.4 glxsb.4 gscpcib.4 gscpm.4 gus.4 ie.4 \
-ichpcib.4 intro.4 ioapic.4 \
+MAN=amdpcib.4 amdmsr.4 apm.4 autoconf.4 bios.4 cpu.4 e600pcib.4 \
+elansc.4 esm.4 geodesc.4 glxpcib.4 glxsb.4 gscpcib.4 gscpm.4 \
+gus.4 ie.4 ichpcib.4 intro.4 ioapic.4 \
 joy.4 le.4 lms.4 mem.4 mms.4 mpbios.4 mtrr.4 npx.4 nvram.4 \
 pas.4 pcibios.4 pctr.4 piixpcib.4 sb.4 \
 sea.4 uha.4 wds.4 wdt.4 wss.4
--- share/man/man4/man4.amd64/Makefile.origWed May 23 21:04:42 2012
+++ share/man/man4/man4.amd64/MakefileWed May 23 21:05:12 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #$OpenBSD: Makefile,v 1.14 2011/03/18 12:40:29 deraadt Exp $
 
-MAN=amdpcib.4 apm.4 autoconf.4 bios.4 cpu.4 intro.4 ioapic.4 \
-mem.4 mpbios.4 nvram.4 mtrr.4 pctr.4
+MAN=amdpcib.4 apm.4 autoconf.4 bios.4 cpu.4 e600pcib.4 intro.4 \
+ioapic.4 mem.4 mpbios.4 nvram.4 mtrr.4 pctr.4
 
 MLINKS+= mem.4 kmem.4
 MANSUBDIR=amd64
--- sys/arch/i386/conf/files.i386.origWed May 23 18:18:01 2012
+++ sys/arch/i386/conf/files.i386Wed May 23 18:20:09 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -147,7 +147,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # PCI-ISA bridge chipsets
 devicepcib: isabus
 attachpcib at pci
-filearch/i386/pci/pcib.cpcib | ichpcib | gscpcib | glxpcib | piixpcib | amdpcib
+filearch/i386/pci/pcib.cpcib | ichpcib | gscpcib | glxpcib | piixpcib | amdpcib | e600pcib
 
 # Intel ICHx/ICHx-M LPC bridges
 deviceichpcib: isabus
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -168,6 +168,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 deviceamdpcib: isabus
 attachamdpcib at pci
 filedev/pci/amdpcib.camdpcib
+
+# Intel Atom E600 LPC bridge
+devicee600pcib: isabus
+attache600pcib at pci
+filedev/pci/e600pcib.ce600pcib
 
 devicehme: ether, ifnet, mii, ifmedia
 filedev/ic/hme.chme
--- sys/arch/i386/conf/GENERIC.origWed May 23 18:17:57 2012
+++ sys/arch/i386/conf/GENERICWed May 23 18:19:26 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -72,6 +72,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 isa0at mainbus0
 isa0at pcib?
 isa0at amdpcib?
+isa0at e600pcib?
 isa0at ichpcib?
 isa0at piixpcib?
 isa0at gscpcib?
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -85,6 +86,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 pci*at pchb?
 pcib*at pci?# PCI-ISA bridge
 amdpcib* at pci?# AMD 8111 LPC bridge 
+e600pcib* at pci?# Intel Atom E600 LPC bridge
 ichpcib* at pci?# Intel ICHx/ICHx-M LPC bridges
 piixpcib* at pci?# Intel PIIX4 PCI-ISA bridge
 gscpcib* at pci?# NS Geode SC1100 PCI-ISA bridge
--- sys/arch/amd64/conf/files.amd64.origWed May 23 14:16:11 2012
+++ sys/arch/amd64/conf/files.amd64Wed May 23 14:17:00 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -147,12 +147,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # PCI-ISA bridges
 devicepcib: isabus
 attachpcib at pci
-filearch/amd64/pci/pcib.cpcib | amdpcib
+filearch/amd64/pci/pcib.cpcib | amdpcib | e600pcib
 
 # AMD 8111 LPC bridge
 deviceamdpcib: isabus
 attachamdpcib at pci
 filedev/pci/amdpcib.camdpcib
+
+# Intel Atom E600 LPC bridge
+devicee600pcib: isabus
+attache600pcib at pci
+filedev/pci/e600pcib.ce600pcib
 
 deviceaapic
 attachaapic at pci
--- sys/arch/amd64/conf/GENERIC.origWed May 23 12:29:16 2012
+++ sys/arch/amd64/conf/GENERICWed May 23 14:17:18 2012
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -34,6 +34,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 isa0at mainbus0
 isa0at pcib?
 isa0at amdpcib?
+isa0at e600pcib?
 pci*at mainbus0
 
 acpi0at bios0
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -73,6 +74,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 pci*at pchb?
 pcib*at pci?# PCI-ISA bridge
 amdpcib* at pci?# AMD 8111 LPC bridge
+e600pcib* at pci?# Intel Atom E600 LPC bridge
 kate*at pci?# AMD K8 temperature sensor
 km*at pci?# AMD K10 temperature sensor
 amas*at pci? disable# AMD memory configuration


&lt;/pre&gt;</description>
    <dc:creator>Matt Dainty</dc:creator>
    <dc:date>2012-05-23T20:52:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28832">
    <title>fstatfs64 for compat/linux</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28832</link>
    <description>&lt;pre&gt;Okay?


Index: linux_misc.c
===================================================================
RCS file: /cvs/src/sys/compat/linux/linux_misc.c,v
retrieving revision 1.77
diff -u -p -r1.77 linux_misc.c
--- linux_misc.c23 May 2012 11:08:57 -00001.77
+++ linux_misc.c23 May 2012 13:32:39 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -554,6 +554,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; linux_sys_fstatfs(p, v, retval)
 return copyout((caddr_t) &amp;amp;ltmp, (caddr_t) SCARG(uap, sp), sizeof ltmp);
 }
 
+int
+linux_sys_fstatfs64(struct proc *p, void *v, register_t *retval)
+{
+struct linux_sys_fstatfs64_args /* {
+syscallarg(int) fd;
+syscallarg(struct linux_statfs64 *) sp;
+} */ *uap = v;
+struct statfs btmp, *bsp;
+struct linux_statfs64 ltmp;
+struct sys_fstatfs_args bsa;
+caddr_t sg;
+int error;
+
+sg = stackgap_init(p-&amp;gt;p_emul);
+bsp = (struct statfs *) stackgap_alloc(&amp;amp;sg, sizeof (struct statfs));
+
+SCARG(&amp;amp;bsa, fd) = SCARG(uap, fd);
+SCARG(&amp;amp;bsa, buf) = bsp;
+
+if ((error = sys_fstatfs(p, &amp;amp;bsa, retval)))
+return error;
+
+if ((error = copyin((caddr_t) bsp, (caddr_t) &amp;amp;btmp, sizeof btmp)))
+return error;
+
+bsd_to_linux_statfs64(&amp;amp;btmp, &amp;amp;ltmp);
+
+return copyout((caddr_t) &amp;amp;ltmp, (caddr_t) SCARG(uap, sp), sizeof ltmp);
+}
 /*
  * uname(). Just copy the info from the various strings stored in the
  * kernel, and put it in the Linux utsname structure. That structure
Index: syscalls.master
===================================================================
RCS file: /cvs/src/sys/compat/linux/syscalls.master,v
retrieving revision 1.67
diff -u -p -r1.67 syscalls.master
--- syscalls.master23 May 2012 11:08:57 -00001.67
+++ syscalls.master23 May 2012 13:32:39 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -418,7 +418,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 267UNIMPLlinux_sys_clock_nanosleep
 268STD{ int linux_sys_statfs64(char *path, \
     struct linux_statfs64 *sp); }
-269UNIMPLlinux_sys_fstatfs64
+269STD{ int linux_sys_fstatfs64(int fd, \
+    struct linux_statfs64 *sp); }
 270UNIMPLlinux_sys_tgkill
 271UNIMPLlinux_sys_utimes
 272UNIMPLlinux_sys_fadvise64_64


&lt;/pre&gt;</description>
    <dc:creator>Paul Irofti</dc:creator>
    <dc:date>2012-05-23T13:33:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28831">
    <title>Ms clientes en su ciudad o localidad</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28831</link>
    <description>&lt;pre&gt;Mas clientes en su ciudad o localidad


&lt;/pre&gt;</description>
    <dc:creator>Mercosur.com</dc:creator>
    <dc:date>2012-05-23T12:10:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28829">
    <title>mg - start up file diffs (2 of 2)</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28829</link>
    <description>&lt;pre&gt;Further to my previous email, I noticed if I tried to use any of the *file*
commands in the startup ~/.mg file, nothing happened. By looking at main.c,
I realised that the order of starup function calls was the problem. This diff
moves the creation of the startup buffers before parsing the startup file.

Now an ~/.mg file such as:

find-file main.c
insert-file lines.c

Will work as expected. Commands that are usually located in the startup file
(global-set-key, set-default-mode etc...) are unaffected since they are not
reliant on the buffers being created or not. However, wider testing would be
appreciated.

Comments/ok?

-lum

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/main.c,v
retrieving revision 1.64
diff -u -p -r1.64 main.c
--- main.c12 Apr 2012 04:47:59 -00001.64
+++ main.c20 May 2012 17:11:24 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -98,19 +98,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; main(int argc, char **argv)
  */
 update();
 
-/* user startup file */
-if ((cp = startupfile(NULL)) != NULL)
-(void)load(cp);
-
 /*
  * Create scratch buffer now, killing old *init* buffer.
  * This causes *scratch* to be created and made curbp,
  * ensuring default modes are inherited from the startup
  * file correctly
  */
-
 if ((bp = bfind("*init*", FALSE)) != NULL)
 killbuffer(bp);
+
+/* user startup file */
+if ((cp = startupfile(NULL)) != NULL)
+(void)load(cp);
 
 /* Force FFOTHARG=1 so that this mode is enabled, not simply toggled */
 if (init_fcn)


&lt;/pre&gt;</description>
    <dc:creator>Mark Lumsden</dc:creator>
    <dc:date>2012-05-23T07:27:06</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28828">
    <title>mg - start up file diffs (1 of 2)</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28828</link>
    <description>&lt;pre&gt;If you want to open up a file using the mg startup file (~/.mg) using the
find-file command, e.g:

find-file main.c

mg will give an odd message of "File read error", but the file opens anyway.
However, if by accident you try to open a non-existant file mg will segv. 

After investigating I found mg uses a static FILE pointer that is reused
in fileio.c, and in this case the dual opening of the ~/.mg file and
main.c was screwing things up.

This diff removes the static variable and passes the file pointer amongst
function calls. Now an ~/.mg file such as:

find-file main.c
find-file file.c
find-file README

works as expected. Opening three buffers with the files contents in each one.
Also, if a non-existant file is attemped to be opened mg doesn't crash.

comments/ok?

-lum

Index: def.h
===================================================================
RCS file: /cvs/src/usr.bin/mg/def.h,v
retrieving revision 1.120
diff -u -p -r1.120 def.h
--- def.h12 Apr 2012 04:47:59 -00001.120
+++ def.h23 May 2012 07:19:13 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -349,7 +349,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int filewrite(int, int);
 int filesave(int, int);
 int buffsave(struct buffer *);
 int makebkfile(int, int);
-int writeout(struct buffer *, char *);
+int writeout(FILE **, struct buffer *, char *);
 void upmodes(struct buffer *);
 size_t xbasename(char *, const char *, size_t);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -430,12 +430,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int getxtra(struct list *, struct list
 void free_file_list(struct list *);
 
 /* fileio.c */
-int ffropen(const char *, struct buffer *);
-void ffstat(struct buffer *);
-int ffwopen(const char *, struct buffer *);
-int ffclose(struct buffer *);
-int ffputbuf(struct buffer *);
-int ffgetline(char *, int, int *);
+int ffropen(FILE **, const char *, struct buffer *);
+void ffstat(FILE *, struct buffer *);
+int ffwopen(FILE **, const char *, struct buffer *);
+int ffclose(FILE *, struct buffer *);
+int ffputbuf(FILE *, struct buffer *);
+int ffgetline(FILE *, char *, int, int *);
 int fbackupfile(const char *);
 char*adjustname(const char *, int);
 char*startupfile(char *);
Index: extend.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/extend.c,v
retrieving revision 1.52
diff -u -p -r1.52 extend.c
--- extend.c12 Apr 2012 04:47:59 -00001.52
+++ extend.c23 May 2012 07:19:13 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -652,16 +652,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; load(const char *fname)
 int s = TRUE, line;
 int nbytes = 0;
 char excbuf[128];
+FILE    *ffp;
 
 if ((fname = adjustname(fname, TRUE)) == NULL)
 /* just to be careful */
 return (FALSE);
 
-if (ffropen(fname, NULL) != FIOSUC)
+if (ffropen(&amp;amp;ffp, fname, NULL) != FIOSUC)
 return (FALSE);
 
 line = 0;
-while ((s = ffgetline(excbuf, sizeof(excbuf) - 1, &amp;amp;nbytes)) == FIOSUC) {
+while ((s = ffgetline(ffp, excbuf, sizeof(excbuf) - 1, &amp;amp;nbytes))
+    == FIOSUC) {
 line++;
 excbuf[nbytes] = '\0';
 if (excline(excbuf) != TRUE) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -670,7 +672,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; load(const char *fname)
 break;
 }
 }
-(void)ffclose(NULL);
+(void)ffclose(ffp, NULL);
 excbuf[nbytes] = '\0';
 if (s != FIOEOF || (nbytes &amp;amp;&amp;amp; excline(excbuf) != TRUE))
 return (FALSE);
Index: file.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/file.c,v
retrieving revision 1.79
diff -u -p -r1.79 file.c
--- file.c10 May 2012 16:07:46 -00001.79
+++ file.c23 May 2012 07:19:13 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -294,6 +294,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; insertfile(char *fname, char *newname, i
 int nbytes, s, nline = 0, siz, x, x2;
 int opos;/* offset we started at */
 int oline;/* original line number */
+        FILE    *ffp;
 
 if (replacebuf == TRUE)
 x = undo_enable(FFRAND, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -317,7 +318,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; insertfile(char *fname, char *newname, i
 }
 
 /* hard file open */
-if ((s = ffropen(fname, (replacebuf == TRUE) ? bp : NULL)) == FIOERR)
+if ((s = ffropen(&amp;amp;ffp, fname, (replacebuf == TRUE) ? bp : NULL))
+    == FIOERR)
 goto out;
 if (s == FIOFNF) {
 /* file not found */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -358,7 +360,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; insertfile(char *fname, char *newname, i
 
 nline = 0;
 siz = 0;
-while ((s = ffgetline(line, linesize, &amp;amp;nbytes)) != FIOERR) {
+while ((s = ffgetline(ffp, line, linesize, &amp;amp;nbytes)) != FIOERR) {
 retry:
 siz += nbytes + 1;
 switch (s) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -400,7 +402,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; retry:
 bcopy(line, cp, linesize);
 free(line);
 line = cp;
-s = ffgetline(line + linesize, linesize,
+s = ffgetline(ffp, line + linesize, linesize,
     &amp;amp;nbytes);
 nbytes += linesize;
 linesize = newsize;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -416,7 +418,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; retry:
 }
 endoffile:
 /* ignore errors */
-(void)ffclose(NULL);
+(void)ffclose(ffp, NULL);
 /* don't zap an error */
 if (s == FIOEOF) {
 if (nline == 1)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -497,6 +499,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; filewrite(int f, int n)
 int s;
 char fname[NFILEN], bn[NBUFN], tmp[NFILEN + 25];
 char*adjfname, *bufp;
+        FILE    *ffp;
 
 if (getbufcwd(fname, sizeof(fname)) != TRUE)
 fname[0] = '\0';
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -520,7 +523,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; filewrite(int f, int n)
 
 /* old attributes are no longer current */
 bzero(&amp;amp;curbp-&amp;gt;b_fi, sizeof(curbp-&amp;gt;b_fi));
-if ((s = writeout(curbp, adjfname)) == TRUE) {
+if ((s = writeout(&amp;amp;ffp, curbp, adjfname)) == TRUE) {
 (void)strlcpy(curbp-&amp;gt;b_fname, adjfname, sizeof(curbp-&amp;gt;b_fname));
 if (getbufcwd(curbp-&amp;gt;b_cwd, sizeof(curbp-&amp;gt;b_cwd)) != TRUE)
 (void)strlcpy(curbp-&amp;gt;b_cwd, "/", sizeof(curbp-&amp;gt;b_cwd));
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -567,6 +570,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int
 buffsave(struct buffer *bp)
 {
 int s;
+        FILE    *ffp;
 
 /* return, no changes */
 if ((bp-&amp;gt;b_flag &amp;amp; BFCHG) == 0) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -598,7 +602,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; buffsave(struct buffer *bp)
     (s = eyesno("Backup error, save anyway")) != TRUE)
 return (s);
 }
-if ((s = writeout(bp, bp-&amp;gt;b_fname)) == TRUE) {
+if ((s = writeout(&amp;amp;ffp, bp, bp-&amp;gt;b_fname)) == TRUE) {
 (void)fupdstat(bp);
 bp-&amp;gt;b_flag &amp;amp;= ~(BFCHG | BFBAK);
 upmodes(bp);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -640,22 +644,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; makebkfile(int f, int n)
  * You may want to call fupdstat() after using this function.
  */
 int
-writeout(struct buffer *bp, char *fn)
+writeout(FILE ** ffp, struct buffer *bp, char *fn)
 {
 int s;
 
 /* open writes message */
-if ((s = ffwopen(fn, bp)) != FIOSUC)
+if ((s = ffwopen(ffp, fn, bp)) != FIOSUC)
 return (FALSE);
-s = ffputbuf(bp);
+s = ffputbuf(*ffp, bp);
 if (s == FIOSUC) {
 /* no write error */
-s = ffclose(bp);
+s = ffclose(*ffp, bp);
 if (s == FIOSUC)
 ewprintf("Wrote %s", fn);
 } else {
 /* print a message indicating write error */
-(void)ffclose(bp);
+(void)ffclose(*ffp, bp);
 ewprintf("Unable to write %s", fn);
 }
 return (s == FIOSUC);
Index: fileio.c
===================================================================
RCS file: /cvs/src/usr.bin/mg/fileio.c,v
retrieving revision 1.88
diff -u -p -r1.88 fileio.c
--- fileio.c23 May 2012 05:29:22 -00001.88
+++ fileio.c23 May 2012 07:19:13 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -22,15 +22,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 #include "kbd.h"
 
-static FILE*ffp;
-
 /*
  * Open a file for reading.
  */
 int
-ffropen(const char *fn, struct buffer *bp)
+ffropen(FILE ** ffp, const char *fn, struct buffer *bp)
 {
-if ((ffp = fopen(fn, "r")) == NULL) {
+if ((*ffp = fopen(fn, "r")) == NULL) {
 if (errno == ENOENT)
 return (FIOFNF);
 return (FIOERR);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -40,7 +38,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffropen(const char *fn, struct buffer *b
 if (fisdir(fn) == TRUE)
 return (FIODIR);
 
-ffstat(bp);
+ffstat(*ffp, bp);
 
 return (FIOSUC);
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -49,7 +47,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffropen(const char *fn, struct buffer *b
  * Update stat/dirty info
  */
 void
-ffstat(struct buffer *bp)
+ffstat(FILE *ffp, struct buffer *bp)
 {
 struct statsb;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -71,13 +69,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffstat(struct buffer *bp)
 int
 fupdstat(struct buffer *bp)
 {
+FILE *ffp;
+
 if ((ffp = fopen(bp-&amp;gt;b_fname, "r")) == NULL) {
 if (errno == ENOENT)
 return (FIOFNF);
 return (FIOERR);
 }
-ffstat(bp);
-(void)ffclose(bp);
+ffstat(ffp, bp);
+(void)ffclose(ffp, bp);
 return (FIOSUC);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -85,7 +85,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fupdstat(struct buffer *bp)
  * Open a file for writing.
  */
 int
-ffwopen(const char *fn, struct buffer *bp)
+ffwopen(FILE ** ffp, const char *fn, struct buffer *bp)
 {
 intfd;
 mode_tfmode = DEFFILEMODE;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -100,7 +100,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffwopen(const char *fn, struct buffer *b
 return (FIOERR);
 }
 
-if ((ffp = fdopen(fd, "w")) == NULL) {
+if ((*ffp = fdopen(fd, "w")) == NULL) {
 ewprintf("Cannot open file for writing : %s", strerror(errno));
 close(fd);
 return (FIOERR);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -125,7 +125,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffwopen(const char *fn, struct buffer *b
  */
 /* ARGSUSED */
 int
-ffclose(struct buffer *bp)
+ffclose(FILE *ffp, struct buffer *bp)
 {
 if (fclose(ffp) == 0)
 return (FIOSUC);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -137,7 +137,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffclose(struct buffer *bp)
  * buffer. Return the status.
  */
 int
-ffputbuf(struct buffer *bp)
+ffputbuf(FILE *ffp, struct buffer *bp)
 {
 struct line   *lp, *lpend;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -170,7 +170,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ffputbuf(struct buffer *bp)
  * If the line length exceeds nbuf, FIOLONG is returned.
  */
 int
-ffgetline(char *buf, int nbuf, int *nbytes)
+ffgetline(FILE *ffp, char *buf, int nbuf, int *nbytes)
 {
 intc, i;


&lt;/pre&gt;</description>
    <dc:creator>Mark Lumsden</dc:creator>
    <dc:date>2012-05-23T07:25:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28826">
    <title>Cena Gourmet en BRANDS 52% OFF | Paseo en Velero 64% OFF | Peninsula Valdez 75% OFF  | Tandil 67% OFF | Kingston de 8 GB 50% OFF | Cafetera de Filtro 51% OFF</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28826</link>
    <description>&lt;pre&gt;Para visualizar correctamente este newsletter ingresa a
http://news1.bonuscupon.com.ar/r.html?uid=1.i.295h.9f.rfwk1ki6bg


&lt;/pre&gt;</description>
    <dc:creator>Bonus Cupon</dc:creator>
    <dc:date>2012-05-23T03:49:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28824">
    <title>wpi: add sensor for rfkill</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28824</link>
    <description>&lt;pre&gt;Hi people,

the attached patch adds an indicator sensor to wpi devices that describes the
current RFKill status.  If the RF killswitch is engaged, the sensor reads "Off",
if it is not engaged and the device can operate, it reads "On".

If this is okay, I plan on adding similar sensors to other wireless devices,
but in that case I'd need help testing those because I only have access to wpi
devices.

&lt;/pre&gt;</description>
    <dc:creator>Gregor Best</dc:creator>
    <dc:date>2012-05-22T18:20:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28823">
    <title>Un Club d'achats réservé aux Professionnels</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28823</link>
    <description>&lt;pre&gt;Programme R&amp;amp;eacute;gional Bonjour,

Contrairement &amp;amp;agrave; nombre de vos confr&amp;amp;egrave;res et
coll&amp;amp;egrave;gues, vous ne semblez pas encore en profiter. C'est
pourquoi il me paraissait utile de vous rappeler que toutes les
personnes exer&amp;amp;ccedil;ant dans votre secteur d'activit&amp;amp;eacute; peuvent
d&amp;amp;eacute;sormais b&amp;amp;eacute;n&amp;amp;eacute;ficier gratuitement d'avantages
importants pour leur consommation familiale.

Une id&amp;amp;eacute;e simple&amp;amp;nbsp;: la force &amp;amp;eacute;conomique que nous
repr&amp;amp;eacute;sentons ne peut pas laisser indiff&amp;amp;eacute;rents les grands
acteurs de la distribution.

Nous avons donc n&amp;amp;eacute;goci&amp;amp;eacute; en direct avec toutes les grandes
Enseignes et avons d&amp;amp;eacute;j&amp;amp;agrave; obtenu un accord avec plus de 700
d'entre elles&amp;amp;nbsp;: Fnac.com, PIXmania, Thomas Cook, Monoprix, Leroy
Merlin et bien d'autres...

Nous vous remboursons automatiquement une partie de chacun de vos
achats personnels&amp;amp;nbsp;: 7% en moyenne. En plus, vous profitez en
permanence de r&amp;amp;eacute;ductions sp&amp;amp;eacute;ciales et debons plans
exclusifs.

Vous pouvez vous aussi b&amp;amp;eacute;n&amp;amp;eacute;ficier, d&amp;amp;egrave;s maintenant,
des avantages auxquels vous avez droit.

L'inscription et l'utilisation des services sont enti&amp;amp;egrave;rement
gratuites.

Si vous travaillez dans le secteur de la Sant&amp;amp;eacute;&amp;amp;nbsp;: en savoir
plus sur Coop&amp;amp;nbsp;Sant&amp;amp;eacute; Si vous &amp;amp;ecirc;tes Profession
Lib&amp;amp;eacute;rale : en savoir plus sur PL-Avantages Si vous travaillez
dans le secteur H&amp;amp;ocirc;tellerie Restauration : en savoir plus sur
HR-Club Si vous travaillez dans le secteur Agricole&amp;amp;nbsp;: en savoir
plus sur Club&amp;amp;nbsp;Agri Si vous travaillez dans le secteur Commerce
Artisanat&amp;amp;nbsp;: en savoir plus sur Coop&amp;amp;nbsp;Artisans Si vous
travaillez dans le secteur Immobilier&amp;amp;nbsp;: en savoir plus sur
Cercle&amp;amp;nbsp;IMMO  Si vous travaillez dans un autre secteur
d'activit&amp;amp;eacute;&amp;amp;nbsp;: en savoir plus sur PROCOPAM

Jacques Monet D&amp;amp;eacute;l&amp;amp;eacute;gu&amp;amp;eacute; G&amp;amp;eacute;n&amp;amp;eacute;ral


&lt;/pre&gt;</description>
    <dc:creator>Jacques Monet [PROCOPAM]</dc:creator>
    <dc:date>2012-05-22T17:59:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.os.openbsd.tech/28816">
    <title>add statfs64 to compat/linux</title>
    <link>http://comments.gmane.org/gmane.os.openbsd.tech/28816</link>
    <description>&lt;pre&gt;Okay?

Index: linux_misc.c
===================================================================
RCS file: /cvs/src/sys/compat/linux/linux_misc.c,v
retrieving revision 1.76
diff -u -p -r1.76 linux_misc.c
--- linux_misc.c22 Apr 2012 05:43:14 -00001.76
+++ linux_misc.c22 May 2012 14:58:00 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -441,6 +441,76 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; linux_sys_statfs(p, v, retval)
 return copyout((caddr_t) &amp;amp;ltmp, (caddr_t) SCARG(uap, sp), sizeof ltmp);
 }
 
+static void
+bsd_to_linux_statfs64(struct statfs *bsp, struct linux_statfs64 *lsp)
+{
+
+/*
+ * Convert BSD filesystem names to Linux filesystem type numbers
+ * where possible.  Linux statfs uses a value of -1 to indicate
+ * an unsupported field.
+ */
+if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_FFS) ||
+    !strcmp(bsp-&amp;gt;f_fstypename, MOUNT_MFS))
+lsp-&amp;gt;l_ftype = 0x11954;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_NFS))
+lsp-&amp;gt;l_ftype = 0x6969;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_MSDOS))
+lsp-&amp;gt;l_ftype = 0x4d44;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_PROCFS))
+lsp-&amp;gt;l_ftype = 0x9fa0;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_EXT2FS))
+lsp-&amp;gt;l_ftype = 0xef53;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_CD9660))
+lsp-&amp;gt;l_ftype = 0x9660;
+else if (!strcmp(bsp-&amp;gt;f_fstypename, MOUNT_NCPFS))
+lsp-&amp;gt;l_ftype = 0x6969;
+else
+lsp-&amp;gt;l_ftype = -1;
+
+lsp-&amp;gt;l_fbsize = bsp-&amp;gt;f_bsize;
+lsp-&amp;gt;l_fblocks = bsp-&amp;gt;f_blocks;
+lsp-&amp;gt;l_fbfree = bsp-&amp;gt;f_bfree;
+lsp-&amp;gt;l_fbavail = bsp-&amp;gt;f_bavail;
+lsp-&amp;gt;l_ffiles = bsp-&amp;gt;f_files;
+lsp-&amp;gt;l_fffree = bsp-&amp;gt;f_ffree;
+lsp-&amp;gt;l_ffsid.val[0] = bsp-&amp;gt;f_fsid.val[0];
+lsp-&amp;gt;l_ffsid.val[1] = bsp-&amp;gt;f_fsid.val[1];
+lsp-&amp;gt;l_fnamelen = MAXNAMLEN;/* XXX */
+}
+
+int
+linux_sys_statfs64(struct proc *p, void *v, register_t *retval)
+{
+struct linux_sys_statfs64_args /* {
+syscallarg(char *) path;
+syscallarg(struct linux_statfs *) sp;
+} */ *uap = v;
+struct statfs btmp, *bsp;
+struct linux_statfs64 ltmp;
+struct sys_statfs_args bsa;
+caddr_t sg;
+int error;
+
+sg = stackgap_init(p-&amp;gt;p_emul);
+bsp = (struct statfs *) stackgap_alloc(&amp;amp;sg, sizeof (struct statfs));
+
+LINUX_CHECK_ALT_EXIST(p, &amp;amp;sg, SCARG(uap, path));
+
+SCARG(&amp;amp;bsa, path) = SCARG(uap, path);
+SCARG(&amp;amp;bsa, buf) = bsp;
+
+if ((error = sys_statfs(p, &amp;amp;bsa, retval)))
+return error;
+
+if ((error = copyin((caddr_t) bsp, (caddr_t) &amp;amp;btmp, sizeof btmp)))
+return error;
+
+bsd_to_linux_statfs64(&amp;amp;btmp, &amp;amp;ltmp);
+
+return copyout((caddr_t) &amp;amp;ltmp, (caddr_t) SCARG(uap, sp), sizeof ltmp);
+}
+
 int
 linux_sys_fstatfs(p, v, retval)
 struct proc *p;
Index: syscalls.master
===================================================================
RCS file: /cvs/src/sys/compat/linux/syscalls.master,v
retrieving revision 1.66
diff -u -p -r1.66 syscalls.master
--- syscalls.master14 Dec 2011 08:33:18 -00001.66
+++ syscalls.master22 May 2012 14:58:00 -0000
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -416,7 +416,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 266STD{ int linux_sys_clock_getres(clockid_t which, \
     struct l_timespec *tp); }
 267UNIMPLlinux_sys_clock_nanosleep
-268UNIMPLlinux_sys_statfs64
+268STD{ int linux_sys_statfs64(char *path, \
+    struct linux_statfs64 *sp); }
 269UNIMPLlinux_sys_fstatfs64
 270UNIMPLlinux_sys_tgkill
 271UNIMPLlinux_sys_utimes


&lt;/pre&gt;</description>
    <dc:creator>Paul Irofti</dc:creator>
    <dc:date>2012-05-22T15:00:02</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.os.openbsd.tech">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.os.openbsd.tech</link>
  </textinput>
</rdf:RDF>

