<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=m4%281p%29</id>
	<title>m4(1p) - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=m4%281p%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=m4(1p)&amp;action=history"/>
	<updated>2026-05-28T11:28:53Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=m4(1p)&amp;diff=9618&amp;oldid=prev</id>
		<title>Admin: /* COPYRIGHT */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=m4(1p)&amp;diff=9618&amp;oldid=prev"/>
		<updated>2026-05-28T06:57:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;COPYRIGHT&lt;/span&gt;&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;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 28 maj 2026 kl. 06.57&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l370&quot;&gt;Rad 370:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rad 370:&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;Eventuella typografiska fel eller formateringsfel som förekommer på denna sida har sannolikt införts vid konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html.&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;Eventuella typografiska fel eller formateringsfel som förekommer på denna sida har sannolikt införts vid konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html.&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; 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;&amp;lt;pre&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;IEEE/The Open Group                2017                            M4(1P)&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;IEEE/The Open Group                2017                            M4(1P)&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;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&amp;gt;&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; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Sidslut =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/m4.1p.html&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://www.linux.se/kontaka-linux-se/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;BR&amp;gt;&amp;lt;BR&amp;gt;Tack till [https://datorhjalp.se/web/datorhjalp-hemma&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/ Datorhjälp hemma] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:Linuxmanual grupp 1]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:Linuxmanual]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.linux.se/index.php?title=m4(1p)&amp;diff=9617&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;= m4(1p) – POSIX-manualsida =  == PROLOG ==  Denna manualsida är en del av POSIX Programmer&#039;s Manual. Linux-implementationen av detta gränssnitt kan skilja sig åt. Se motsvarande Linux-manualsida för detaljer om Linux-beteende, eller notera att gränssnittet kanske inte är implementerat på Linux.  == NAMN ==  &#039;&#039;&#039;m4&#039;&#039;&#039; — makroprocessor  == SYNOPSIS ==  &lt;pre&gt; m4 [-s] [-D namn[=värde]]... [-U namn]... fil... &lt;/pre&gt;  == BESKRIVNING ==  Verktyget &#039;&#039;&#039;m4&#039;&#039;&#039; är en ma...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=m4(1p)&amp;diff=9617&amp;oldid=prev"/>
		<updated>2026-05-28T06:57:01Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;= m4(1p) – POSIX-manualsida =  == PROLOG ==  Denna manualsida är en del av POSIX Programmer&amp;#039;s Manual. Linux-implementationen av detta gränssnitt kan skilja sig åt. Se motsvarande Linux-manualsida för detaljer om Linux-beteende, eller notera att gränssnittet kanske inte är implementerat på Linux.  == NAMN ==  &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; — makroprocessor  == SYNOPSIS ==  &amp;lt;pre&amp;gt; m4 [-s] [-D namn[=värde]]... [-U namn]... fil... &amp;lt;/pre&amp;gt;  == BESKRIVNING ==  Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; är en ma...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= m4(1p) – POSIX-manualsida =&lt;br /&gt;
&lt;br /&gt;
== PROLOG ==&lt;br /&gt;
&lt;br /&gt;
Denna manualsida är en del av POSIX Programmer&amp;#039;s Manual. Linux-implementationen av detta gränssnitt kan skilja sig åt. Se motsvarande Linux-manualsida för detaljer om Linux-beteende, eller notera att gränssnittet kanske inte är implementerat på Linux.&lt;br /&gt;
&lt;br /&gt;
== NAMN ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; — makroprocessor&lt;br /&gt;
&lt;br /&gt;
== SYNOPSIS ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 [-s] [-D namn[=värde]]... [-U namn]... fil...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BESKRIVNING ==&lt;br /&gt;
&lt;br /&gt;
Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; är en makroprocessor som läser en eller flera textfiler, bearbetar dem enligt de makrosatser som finns i filerna och skriver resultatet till standard ut.&lt;br /&gt;
&lt;br /&gt;
== FLAGGOR ==&lt;br /&gt;
&lt;br /&gt;
Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; ska följa Base Definitions-volymen av POSIX.1-2017, avsnitt 12.2, Utility Syntax Guidelines, med undantaget att ordningen för flaggorna &amp;#039;&amp;#039;&amp;#039;-D&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;-U&amp;#039;&amp;#039;&amp;#039; är betydelsefull, och att flaggor kan blandas med operander.&lt;br /&gt;
&lt;br /&gt;
Följande flaggor ska stödjas:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-s&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Aktivera radsynkroniseringsutdata för förprocessningsfasen i &amp;#039;&amp;#039;&amp;#039;c99&amp;#039;&amp;#039;&amp;#039;, det vill säga direktiv av typen &amp;#039;&amp;#039;&amp;#039;#line&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-D&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;namn&amp;#039;&amp;#039;[&amp;#039;&amp;#039;&amp;#039;=&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;värde&amp;#039;&amp;#039;]&lt;br /&gt;
: Definiera &amp;#039;&amp;#039;namn&amp;#039;&amp;#039; till &amp;#039;&amp;#039;värde&amp;#039;&amp;#039;, eller till tomt värde om &amp;#039;&amp;#039;&amp;#039;=&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;värde&amp;#039;&amp;#039; utelämnas.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;-U&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;namn&amp;#039;&amp;#039;&lt;br /&gt;
: Avdefiniera &amp;#039;&amp;#039;namn&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== OPERANDER ==&lt;br /&gt;
&lt;br /&gt;
Följande operand ska stödjas:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;fil&amp;#039;&amp;#039;&lt;br /&gt;
: Sökvägen till en textfil som ska bearbetas. Om ingen &amp;#039;&amp;#039;fil&amp;#039;&amp;#039; anges, eller om filen är &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039;, ska standard in läsas.&lt;br /&gt;
&lt;br /&gt;
== STANDARD IN ==&lt;br /&gt;
&lt;br /&gt;
Standard in ska vara en textfil som används om ingen &amp;#039;&amp;#039;fil&amp;#039;&amp;#039;-operand anges, eller om operanden är &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== INDATAFILER ==&lt;br /&gt;
&lt;br /&gt;
Indatafilen som anges av operanden &amp;#039;&amp;#039;fil&amp;#039;&amp;#039; ska vara en textfil.&lt;br /&gt;
&lt;br /&gt;
== MILJÖVARIABLER ==&lt;br /&gt;
&lt;br /&gt;
Följande miljövariabler ska påverka körningen av &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LANG&amp;#039;&amp;#039;&lt;br /&gt;
: Anger ett standardvärde för internationaliseringsvariabler som är odefinierade eller tomma. Se Base Definitions-volymen av POSIX.1-2017, avsnitt 8.2, Internationalization Variables, för företrädesordningen mellan internationaliseringsvariabler som används för att bestämma värdena för lokalkategorier.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LC_ALL&amp;#039;&amp;#039;&lt;br /&gt;
: Om denna är satt till ett icke-tomt strängvärde åsidosätts värdena för alla andra internationaliseringsvariabler.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LC_CTYPE&amp;#039;&amp;#039;&lt;br /&gt;
: Bestämmer lokalen för tolkning av byteföljder i textdata som tecken, till exempel skillnaden mellan enkelbyte- och multibytetecken i argument och indatafiler.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;LC_MESSAGES&amp;#039;&amp;#039;&lt;br /&gt;
: Bestämmer vilken lokal som ska användas för formatet och innehållet i diagnostiska meddelanden som skrivs till standard fel.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;NLSPATH&amp;#039;&amp;#039;&lt;br /&gt;
: Bestämmer platsen för meddelandekataloger för hantering av &amp;#039;&amp;#039;LC_MESSAGES&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== ASYNKRONA HÄNDELSER ==&lt;br /&gt;
&lt;br /&gt;
Standard.&lt;br /&gt;
&lt;br /&gt;
== STANDARD UT ==&lt;br /&gt;
&lt;br /&gt;
Standard ut ska vara samma som indatafilerna efter bearbetning för makroexpansion.&lt;br /&gt;
&lt;br /&gt;
== STANDARD FEL ==&lt;br /&gt;
&lt;br /&gt;
Standard fel ska användas för att visa strängar med makrot &amp;#039;&amp;#039;&amp;#039;errprint&amp;#039;&amp;#039;&amp;#039;, makrospårning aktiverad med makrot &amp;#039;&amp;#039;&amp;#039;traceon&amp;#039;&amp;#039;&amp;#039;, den definierade texten för makron som skrivs av makrot &amp;#039;&amp;#039;&amp;#039;dumpdef&amp;#039;&amp;#039;&amp;#039;, eller diagnostiska meddelanden.&lt;br /&gt;
&lt;br /&gt;
== UTDATAFILER ==&lt;br /&gt;
&lt;br /&gt;
Inga.&lt;br /&gt;
&lt;br /&gt;
== UTVIDGAD BESKRIVNING ==&lt;br /&gt;
&lt;br /&gt;
Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; ska jämföra varje token från indata med uppsättningen inbyggda och användardefinierade makron. Om en token matchar namnet på ett makro ska token ersättas med makrots definierande text, om någon sådan finns, och därefter genomsökas igen efter matchande makronamn. När ingen del av token längre matchar namnet på ett makro ska den skrivas till standard ut. Makron kan ha argument. I sådana fall ska argumenten ersättas in i den definierande texten innan den genomsöks på nytt.&lt;br /&gt;
&lt;br /&gt;
Makroanrop har formen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
namn(arg1, arg2, ..., argn)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Makronamn ska bestå av bokstäver, siffror och understreck, där det första tecknet inte är en siffra. Token som inte har denna form ska inte behandlas som makron.&lt;br /&gt;
&lt;br /&gt;
Programmet som använder &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; ska säkerställa att vänsterparentesen omedelbart följer makronamnet. Om en token som matchar namnet på ett makro inte följs av en vänsterparentes, behandlas den som en användning av makrot utan argument.&lt;br /&gt;
&lt;br /&gt;
Om ett makronamn följs av en vänsterparentes består dess argument av de kommaseparerade token som finns mellan vänsterparentesen och den matchande högerparentesen. Oskyddade blanktecken före varje argument ska ignoreras. Alla andra tecken, inklusive avslutande blanktecken, behålls. Kommatecken som är inneslutna mellan vänster- och högerparentestecken avgränsar inte argument.&lt;br /&gt;
&lt;br /&gt;
Argument definieras och refereras positionsmässigt. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;$1&amp;quot;&amp;#039;&amp;#039;&amp;#039; i den definierande texten ska ersättas med det första argumentet. System ska stödja minst nio argument; endast de första nio kan refereras med strängarna &amp;#039;&amp;#039;&amp;#039;&amp;quot;$1&amp;quot;&amp;#039;&amp;#039;&amp;#039; till &amp;#039;&amp;#039;&amp;#039;&amp;quot;$9&amp;quot;&amp;#039;&amp;#039;&amp;#039;, inklusive. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;$0&amp;quot;&amp;#039;&amp;#039;&amp;#039; ersätts med makrots namn. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;$#&amp;quot;&amp;#039;&amp;#039;&amp;#039; ersätts med antalet argument som en sträng. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;$*&amp;quot;&amp;#039;&amp;#039;&amp;#039; ersätts av en lista över alla argument, separerade med kommatecken. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;$@&amp;quot;&amp;#039;&amp;#039;&amp;#039; ersätts av en lista över alla argument separerade med kommatecken, och varje argument citeras med de aktuella vänster- och högerciteringssträngarna. Strängen &amp;#039;&amp;#039;&amp;#039;&amp;quot;${&amp;quot;&amp;#039;&amp;#039;&amp;#039; ger ospecificerat beteende.&lt;br /&gt;
&lt;br /&gt;
Om färre argument anges än vad som finns i makrodefinitionen antas de utelämnade argumenten vara tomma. Det är inte ett fel om fler argument anges än vad som finns i makrodefinitionen.&lt;br /&gt;
&lt;br /&gt;
Inga tecken som är inneslutna mellan matchande vänster- och högerciteringssträngar får någon särskild betydelse, men citeringssträngarna själva tas bort. Som standard består vänsterciteringssträngen av grav accent, backquote, och högerciteringssträngen av akut accent, single quote. Se även makrot &amp;#039;&amp;#039;&amp;#039;changequote&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Kommentarer skrivs ut men genomsöks inte efter matchande makronamn. Som standard består kommentarens startsträng av tecknet nummertecken, och kommentarens slutsträng av en nyrad. Se även makrona &amp;#039;&amp;#039;&amp;#039;changecom&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;dnl&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; ska tillhandahålla följande inbyggda makron. De kan omdefinieras, men när detta görs går den ursprungliga betydelsen förlorad. Deras värden ska vara tomma om inte annat anges. I beskrivningarna nedan syftar termen &amp;#039;&amp;#039;definierande text&amp;#039;&amp;#039; på makrots värde: bland annat det andra argumentet till makrot &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039;. Förutom det första argumentet till makrot &amp;#039;&amp;#039;&amp;#039;eval&amp;#039;&amp;#039;&amp;#039; ska alla numeriska argument till inbyggda makron tolkas som decimala värden. Strängvärdena som produceras som definierande text av de inbyggda makrona &amp;#039;&amp;#039;&amp;#039;decr&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;divnum&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;incr&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;index&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;sysval&amp;#039;&amp;#039;&amp;#039; ska vara i formen av en decimalkonstant enligt C-språket.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;changecom&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;changecom&amp;#039;&amp;#039;&amp;#039; ska ange start- och slutsträngarna för kommentarer. Utan argument ska kommentarsmekanismen avaktiveras. Med ett enda icke-tomt argument blir det argumentet startsträng för kommentarer och nyrad blir slutsträng. Med två icke-tomma argument blir det första argumentet startsträng och det andra argumentet slutsträng. Beteendet är ospecificerat om något av argumenten anges men är tomt. System ska stödja kommentarsträngar på minst fem tecken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;changequote&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;changequote&amp;#039;&amp;#039;&amp;#039; ska ange start- och slutsträngarna för citering. Utan argument ska citeringssträngarna sättas till standardvärdena, det vill säga grav accent och akut accent. Beteendet är ospecificerat om ett enda argument anges eller om något argument är tomt. Med två icke-tomma argument blir det första argumentet startsträng för citering och det andra argumentet slutsträng. System ska stödja citeringssträngar på minst fem tecken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;decr&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;decr&amp;#039;&amp;#039;&amp;#039; ska vara dess första argument minskat med 1. Det ska vara ett fel att ange ett argument som innehåller icke-numeriska tecken. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;decr&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Det andra argumentet ska bli den definierande texten för makrot vars namn är det första argumentet. Det är ospecificerat om makrot &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039; tar bort alla tidigare definitioner av makrot som anges av det första argumentet eller bevarar alla utom den aktuella definitionen. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;defn&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;defn&amp;#039;&amp;#039;&amp;#039; ska vara den citerade definitionen, med aktuella citeringssträngar, av dess argument. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;defn&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;divert&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; upprätthåller nio temporära buffertar, numrerade 1 till 9 inklusive. När all indata har bearbetats ska all utdata som har placerats i dessa buffertar skrivas till standard ut i buffertarnas numeriska ordning. Makrot &amp;#039;&amp;#039;&amp;#039;divert&amp;#039;&amp;#039;&amp;#039; ska styra framtida utdata till den buffert som anges av argumentet. Om inget argument anges, eller om argumentet är 0, återupptas normal utdata. Utdata som omdirigeras till en ström med negativt nummer ska kastas bort. Beteendet är implementationsdefinierat om ett strömnummer större än 9 anges. Det ska vara ett fel att ange ett argument som innehåller icke-numeriska tecken.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;divnum&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;divnum&amp;#039;&amp;#039;&amp;#039; ska vara numret på den aktuella utdataströmmen som en sträng.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;dnl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;dnl&amp;#039;&amp;#039;&amp;#039; ska få &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; att kasta bort alla indatatecken fram till och med nästa nyrad.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;dumpdef&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;dumpdef&amp;#039;&amp;#039;&amp;#039; ska skriva den definierade texten till standard fel för vart och ett av de makron som anges som argument, eller, om inga argument anges, för alla makron.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;errprint&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;errprint&amp;#039;&amp;#039;&amp;#039; ska skriva sina argument till standard fel. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;errprint&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;eval&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;eval&amp;#039;&amp;#039;&amp;#039; ska utvärdera sitt första argument som ett aritmetiskt uttryck, med signerad heltalsaritmetik med minst 32-bitars precision. Minst följande C-språksoperatorer ska stödjas, med företräde, associativitet och beteende enligt avsnitt 1.1.2.1, Arithmetic Precision and Operations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
()&lt;br /&gt;
unärt +&lt;br /&gt;
unärt -&lt;br /&gt;
~&lt;br /&gt;
&lt;br /&gt;
!&lt;br /&gt;
binärt *&lt;br /&gt;
/&lt;br /&gt;
%&lt;br /&gt;
binärt +&lt;br /&gt;
binärt -&lt;br /&gt;
&amp;lt;&amp;lt;&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;lt;&lt;br /&gt;
&amp;lt;=&lt;br /&gt;
&amp;gt;&lt;br /&gt;
&amp;gt;=&lt;br /&gt;
==&lt;br /&gt;
!=&lt;br /&gt;
binärt &amp;amp;&lt;br /&gt;
^&lt;br /&gt;
|&lt;br /&gt;
&amp;amp;&amp;amp;&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: System ska stödja oktala och hexadecimala tal enligt ISO C-standarden. Det andra argumentet, om det anges, ska ange basen för resultatet. Om argumentet är tomt eller utelämnat är standardvärdet 10. Beteendet är ospecificerat om basen ligger utanför intervallet 2 till 36, inklusive. Det tredje argumentet, om det anges, anger minsta antal siffror i resultatet. Beteendet är ospecificerat om det tredje argumentet är mindre än noll. Det ska vara ett fel att ange ett andra eller tredje argument som innehåller icke-numeriska tecken. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;eval&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ifdef&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Om det första argumentet till makrot &amp;#039;&amp;#039;&amp;#039;ifdef&amp;#039;&amp;#039;&amp;#039; är definierat ska den definierande texten vara det andra argumentet. Annars ska den definierande texten vara det tredje argumentet, om det anges, eller den tomma strängen om det inte anges. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;ifdef&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ifelse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;ifelse&amp;#039;&amp;#039;&amp;#039; tar tre eller fler argument. Om de två första argumenten jämför lika som strängar, efter makroexpansion av båda argumenten, ska den definierande texten vara det tredje argumentet. Om de två första argumenten inte jämför lika och det finns tre argument ska den definierande texten vara tom. Om de två första argumenten inte jämför lika och det finns fyra eller fem argument ska den definierande texten vara det fjärde argumentet. Om de två första argumenten inte jämför lika och det finns sex eller fler argument ska de tre första argumenten kastas bort och bearbetningen starta om med de återstående argumenten. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;ifelse&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;include&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;include&amp;#039;&amp;#039;&amp;#039; ska vara innehållet i filen som namnges av det första argumentet. Det ska vara ett fel om filen inte kan läsas. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;include&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;incr&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;incr&amp;#039;&amp;#039;&amp;#039; ska vara dess första argument ökat med 1. Det ska vara ett fel att ange ett argument som innehåller icke-numeriska tecken. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;incr&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;index&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;index&amp;#039;&amp;#039;&amp;#039; ska vara den första teckenpositionen, som en sträng, i det första argumentet där en sträng som matchar det andra argumentet börjar, med noll som första position, eller -1 om det andra argumentet inte förekommer. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;index&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039; ska vara längden, som en sträng, på det första argumentet. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;len&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;m4exit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Avsluta verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039;. Om det första argumentet anges ska det vara slutkoden. Om inget argument anges ska slutkoden vara noll. Det ska vara ett fel att ange ett argument som innehåller icke-numeriska tecken. Om det första argumentet är noll eller inget argument anges, och ett fel tidigare har inträffat, till exempel att en &amp;#039;&amp;#039;fil&amp;#039;&amp;#039;-operand inte kunde öppnas, är det ospecificerat om slutstatusen är noll eller icke-noll.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;m4wrap&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Det första argumentet ska bearbetas när EOF nås. Om makrot &amp;#039;&amp;#039;&amp;#039;m4wrap&amp;#039;&amp;#039;&amp;#039; används flera gånger ska de angivna argumenten bearbetas i den ordning som &amp;#039;&amp;#039;&amp;#039;m4wrap&amp;#039;&amp;#039;&amp;#039;-makrona bearbetades. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;m4wrap&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;maketemp&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten ska vara det första argumentet, med eventuella avslutande &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;-tecken ersatta med det aktuella process-ID:t som en sträng. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;maketemp&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mkstemp&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten ska vara som om den vore den resulterande sökvägen efter ett lyckat anrop till funktionen &amp;#039;&amp;#039;mkstemp&amp;#039;&amp;#039;() definierad i System Interfaces-volymen av POSIX.1-2017, anropad med det första argumentet till makroanropet. Om en fil skapas ska den filen stängas. Om en fil inte kunde skapas ska verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039; skriva ett diagnostiskt meddelande till standard fel och fortsätta bearbeta indata, men dess slutliga slutstatus ska vara icke-noll. Makrots definierande text ska vara den tomma strängen. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;mkstemp&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;popdef&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;popdef&amp;#039;&amp;#039;&amp;#039; ska ta bort den aktuella definitionen av sina argument och ersätta den med föregående definition. Om det inte finns någon föregående definition blir makrot odefinierat. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;popdef&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039; ska vara likvärdigt med makrot &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039;, med undantaget att det ska bevara eventuell aktuell definition för senare återhämtning med makrot &amp;#039;&amp;#039;&amp;#039;popdef&amp;#039;&amp;#039;&amp;#039;. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;shift&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;shift&amp;#039;&amp;#039;&amp;#039; ska vara en kommaseparerad lista över dess argument utom det första. Varje argument ska citeras med aktuella citeringssträngar. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;shift&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;sinclude&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;sinclude&amp;#039;&amp;#039;&amp;#039; ska vara likvärdigt med makrot &amp;#039;&amp;#039;&amp;#039;include&amp;#039;&amp;#039;&amp;#039;, förutom att det inte ska vara ett fel om filen inte är åtkomlig. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;sinclude&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;substr&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;substr&amp;#039;&amp;#039;&amp;#039; ska vara delsträngen av det första argumentet som börjar vid den nollbaserade teckenposition som anges av det andra argumentet. Det tredje argumentet, om det anges, ska vara antalet tecken att välja. Om det inte anges ska tecknen från startpunkten till slutet av det första argumentet bli den definierande texten. Det ska inte vara ett fel att ange en startpunkt bortom slutet av det första argumentet, och den definierande texten ska då vara tom. Det ska vara ett fel att ange ett argument som innehåller icke-numeriska tecken. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;substr&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;syscmd&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;syscmd&amp;#039;&amp;#039;&amp;#039; ska tolka sitt första argument som en skalkommandorad. Den definierande texten ska vara strängresultatet från det kommandot. Strängresultatet ska inte genomsökas på nytt efter makron när den definierande texten sätts. Ingen utdatariktning ska utföras av verktyget &amp;#039;&amp;#039;&amp;#039;m4&amp;#039;&amp;#039;&amp;#039;. Slutstatusvärdet från kommandot kan hämtas med makrot &amp;#039;&amp;#039;&amp;#039;sysval&amp;#039;&amp;#039;&amp;#039;. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;syscmd&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;sysval&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;sysval&amp;#039;&amp;#039;&amp;#039; ska vara slutvärdet för det verktyg som senast anropades av makrot &amp;#039;&amp;#039;&amp;#039;syscmd&amp;#039;&amp;#039;&amp;#039;, som en sträng.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;traceon&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;traceon&amp;#039;&amp;#039;&amp;#039; ska aktivera spårning för de makron som anges som argument, eller, om inga argument anges, för alla makron. Spårningsutdata ska skrivas till standard fel i ett ospecificerat format.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;traceoff&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;traceoff&amp;#039;&amp;#039;&amp;#039; ska avaktivera spårning för de makron som anges som argument, eller, om inga argument anges, för alla makron.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;translit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Den definierande texten för makrot &amp;#039;&amp;#039;&amp;#039;translit&amp;#039;&amp;#039;&amp;#039; ska vara det första argumentet där varje tecken som förekommer i det andra argumentet ersätts med motsvarande tecken från det tredje argumentet. Om inget ersättningstecken anges för något källtecken därför att det andra argumentet är längre än det tredje argumentet, ska det tecknet tas bort från det första argumentet i &amp;#039;&amp;#039;&amp;#039;translit&amp;#039;&amp;#039;&amp;#039;s definierande text. Beteendet är ospecificerat om tecknet &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039; förekommer i det andra eller tredje argumentet någon annanstans än som första eller sista tecken. Beteendet är ospecificerat om samma tecken förekommer mer än en gång i det andra argumentet. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;translit&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;undefine&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;undefine&amp;#039;&amp;#039;&amp;#039; ska ta bort alla definitioner, inklusive sådana som bevarats med makrot &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039;, av de makron som namnges av dess argument. Beteendet är ospecificerat om &amp;#039;&amp;#039;&amp;#039;undefine&amp;#039;&amp;#039;&amp;#039; inte omedelbart följs av en vänsterparentes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;undivert&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Makrot &amp;#039;&amp;#039;&amp;#039;undivert&amp;#039;&amp;#039;&amp;#039; ska orsaka omedelbar utmatning av all text i de temporära buffertar som namnges som argument, eller alla temporära buffertar om inga argument anges. Buffertar kan återföras in i andra temporära buffertar. Återföring ska kasta bort innehållet i den temporära bufferten. Beteendet är ospecificerat om ett argument innehåller icke-numeriska tecken.&lt;br /&gt;
&lt;br /&gt;
== SLUTSTATUS ==&lt;br /&gt;
&lt;br /&gt;
Följande slutvärden ska returneras:&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
: Lyckad avslutning.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;0&lt;br /&gt;
: Ett fel inträffade.&lt;br /&gt;
&lt;br /&gt;
Om makrot &amp;#039;&amp;#039;&amp;#039;m4exit&amp;#039;&amp;#039;&amp;#039; används kan slutvärdet anges av indatafilen.&lt;br /&gt;
&lt;br /&gt;
== KONSEKVENSER AV FEL ==&lt;br /&gt;
&lt;br /&gt;
Standard.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Följande avsnitt är informativa.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== ANVÄNDNING I PROGRAM ==&lt;br /&gt;
&lt;br /&gt;
Makrot &amp;#039;&amp;#039;&amp;#039;defn&amp;#039;&amp;#039;&amp;#039; är användbart för att byta namn på makron, särskilt inbyggda makron.&lt;br /&gt;
&lt;br /&gt;
Eftersom &amp;#039;&amp;#039;&amp;#039;eval&amp;#039;&amp;#039;&amp;#039; hänvisar till ISO C-standarden har vissa operationer odefinierat beteende. I vissa implementationer kan division eller restdivision med noll orsaka en fatal signal, även om divisionen sker på den kortslutna grenen av &amp;#039;&amp;#039;&amp;#039;&amp;quot;&amp;amp;&amp;amp;&amp;quot;&amp;#039;&amp;#039;&amp;#039; eller &amp;#039;&amp;#039;&amp;#039;&amp;quot;||&amp;quot;&amp;#039;&amp;#039;&amp;#039;. Varje operation som ger spill i signerad aritmetik ger odefinierat beteende. På samma sätt är användning av skiftoperatorer med ett skiftantal som inte är positivt och mindre än precisionen odefinierat, liksom högerskift av ett negativt tal. Historiskt följde inte alla implementationer C-språkets prioritetsregler: &amp;#039;&amp;#039;&amp;#039;~&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;!&amp;#039;&amp;#039;&amp;#039; hade lägre prioritet än &amp;#039;&amp;#039;&amp;#039;==&amp;#039;&amp;#039;&amp;#039;; &amp;#039;&amp;#039;&amp;#039;==&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;!=&amp;#039;&amp;#039;&amp;#039; var inte lägre än &amp;#039;&amp;#039;&amp;#039;&amp;lt;&amp;#039;&amp;#039;&amp;#039;; och &amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;&amp;#039; var inte lägre än &amp;#039;&amp;#039;&amp;#039;^&amp;#039;&amp;#039;&amp;#039;. Generös användning av &amp;#039;&amp;#039;&amp;#039;()&amp;#039;&amp;#039;&amp;#039; kan tvinga önskad prioritet även i sådana icke-kompatibla implementationer. Dessutom behandlade vissa traditionella implementationer &amp;#039;&amp;#039;&amp;#039;^&amp;#039;&amp;#039;&amp;#039; som en exponentoperator, även om de flesta implementationer numera använder &amp;#039;&amp;#039;&amp;#039;**&amp;#039;&amp;#039;&amp;#039; som en utökning för detta ändamål.&lt;br /&gt;
&lt;br /&gt;
När ett makro har definierats flera gånger via makrot &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039; är det ospecificerat om makrot &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039; endast ändrar den senaste definitionen, som om med &amp;#039;&amp;#039;&amp;#039;popdef&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039;, eller ersätter hela definitionsstacken med en enda definition, som om med &amp;#039;&amp;#039;&amp;#039;undefine&amp;#039;&amp;#039;&amp;#039; och &amp;#039;&amp;#039;&amp;#039;pushdef&amp;#039;&amp;#039;&amp;#039;. Ett program som önskar ett särskilt beteende för makrot &amp;#039;&amp;#039;&amp;#039;define&amp;#039;&amp;#039;&amp;#039; i detta fall kan omdefiniera det därefter.&lt;br /&gt;
&lt;br /&gt;
Program bör använda makrot &amp;#039;&amp;#039;&amp;#039;mkstemp&amp;#039;&amp;#039;&amp;#039; i stället för det föråldrade makrot &amp;#039;&amp;#039;&amp;#039;maketemp&amp;#039;&amp;#039;&amp;#039; för att skapa temporära filer.&lt;br /&gt;
&lt;br /&gt;
== EXEMPEL ==&lt;br /&gt;
&lt;br /&gt;
Om filen &amp;#039;&amp;#039;&amp;#039;m4src&amp;#039;&amp;#039;&amp;#039; innehåller raderna:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The value of `VER&amp;#039; is &amp;quot;VER&amp;quot;.&lt;br /&gt;
ifdef(`VER&amp;#039;, ``VER&amp;#039;&amp;#039; is defined to be VER., VER is not defined.)&lt;br /&gt;
ifelse(VER, 1, ``VER&amp;#039;&amp;#039; is `VER&amp;#039;.)&lt;br /&gt;
ifelse(VER, 2, ``VER&amp;#039;&amp;#039; is `VER&amp;#039;., ``VER&amp;#039;&amp;#039; is not 2.)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ger kommandot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 m4src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
eller kommandot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 -U VER m4src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
följande utdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The value of VER is &amp;quot;VER&amp;quot;.&lt;br /&gt;
VER is not defined.&lt;br /&gt;
&lt;br /&gt;
VER is not 2.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kommandot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 -D VER m4src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ger följande utdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The value of VER is &amp;quot;&amp;quot;.&lt;br /&gt;
VER is defined to be .&lt;br /&gt;
&lt;br /&gt;
VER is not 2.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kommandot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 -D VER=1 m4src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ger följande utdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The value of VER is &amp;quot;1&amp;quot;.&lt;br /&gt;
VER is defined to be 1.&lt;br /&gt;
VER is 1.&lt;br /&gt;
VER is not 2.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kommandot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m4 -D VER=2 m4src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ger följande utdata:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The value of VER is &amp;quot;2&amp;quot;.&lt;br /&gt;
VER is defined to be 2.&lt;br /&gt;
&lt;br /&gt;
VER is 2.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAKGRUND OCH MOTIVERING ==&lt;br /&gt;
&lt;br /&gt;
Historiskt System V-baserat beteende behandlade &amp;#039;&amp;#039;&amp;#039;&amp;quot;${&amp;quot;&amp;#039;&amp;#039;&amp;#039; i en makrodefinition som två bokstavliga tecken. Denna sekvens lämnas dock ospecificerad så att implementationer kan erbjuda utökningar, till exempel &amp;#039;&amp;#039;&amp;#039;&amp;quot;${11}&amp;quot;&amp;#039;&amp;#039;&amp;#039; för den elfte positionsparametern. Makron kan fortfarande definieras med lämplig användning av nästlad citering för att resultera i en bokstavlig &amp;#039;&amp;#039;&amp;#039;&amp;quot;${&amp;quot;&amp;#039;&amp;#039;&amp;#039; i utdatan efter att den förnyade genomsökningen har tagit bort de nästlade citattecknen.&lt;br /&gt;
&lt;br /&gt;
I den inbyggda funktionen &amp;#039;&amp;#039;&amp;#039;translit&amp;#039;&amp;#039;&amp;#039; behandlade historiskt System V-baserat beteende &amp;#039;&amp;#039;&amp;#039;-&amp;#039;&amp;#039;&amp;#039; som ett bokstavligt tecken. GNU-beteende behandlar det som ett intervall. Denna version av standarden tillåter båda beteendena.&lt;br /&gt;
&lt;br /&gt;
== FRAMTIDA RIKTNINGAR ==&lt;br /&gt;
&lt;br /&gt;
Inga.&lt;br /&gt;
&lt;br /&gt;
== SE ÄVEN ==&lt;br /&gt;
&lt;br /&gt;
[[c99(1p)]]&lt;br /&gt;
&lt;br /&gt;
Base Definitions-volymen av POSIX.1-2017, &amp;#039;&amp;#039;Chapter 8, Environment Variables&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Section 12.2, Utility Syntax Guidelines&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== COPYRIGHT ==&lt;br /&gt;
&lt;br /&gt;
Delar av denna text är återgivna och reproducerade i elektronisk form från IEEE Std 1003.1-2017, &amp;#039;&amp;#039;Standard for Information Technology -- Portable Operating System Interface (POSIX)&amp;#039;&amp;#039;, The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. Vid eventuella skillnader mellan denna version och den ursprungliga IEEE- och The Open Group-standarden är den ursprungliga standarden det avgörande dokumentet. Den ursprungliga standarden kan erhållas online på http://www.opengroup.org/unix/online.html.&lt;br /&gt;
&lt;br /&gt;
Eventuella typografiska fel eller formateringsfel som förekommer på denna sida har sannolikt införts vid konverteringen av källfilerna till manualsidesformat. För att rapportera sådana fel, se https://www.kernel.org/doc/man-pages/reporting_bugs.html.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IEEE/The Open Group                2017                            M4(1P)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>