opt_ldi.c revision 1.2
11.2Srillig/* $NetBSD: opt_ldi.c,v 1.2 2021/10/24 20:43:28 rillig Exp $ */
21.1Srillig/* $FreeBSD$ */
31.1Srillig
41.1Srillig/*
51.1Srillig * Tests for the option '-ldi', which specifies where the variable names of
61.1Srillig * locally declared variables are placed.
71.1Srillig */
81.1Srillig
91.1Srillig#indent input
101.1Srilligint global;
111.1Srillig
121.1Srilligvoid
131.1Srilligfunction(void)
141.1Srillig{
151.1Srillig	int local;
161.1Srillig}
171.1Srillig#indent end
181.1Srillig
191.1Srillig#indent run -ldi8
201.1Srilligint		global;
211.1Srillig
221.1Srilligvoid
231.1Srilligfunction(void)
241.1Srillig{
251.1Srillig	int	local;
261.1Srillig}
271.1Srillig#indent end
281.1Srillig
291.1Srillig#indent run -ldi24
301.1Srilligint		global;
311.1Srillig
321.1Srilligvoid
331.1Srilligfunction(void)
341.1Srillig{
351.1Srillig	int			local;
361.1Srillig}
371.1Srillig#indent end
381.2Srillig
391.2Srillig
401.2Srillig/*
411.2Srillig * A variable that has an ad-hoc struct/union/enum type does not need to be
421.2Srillig * indented to the right of the keyword 'struct', it only needs a single space
431.2Srillig * of indentation.
441.2Srillig *
451.2Srillig * Before NetBSD indent.c 1.151 from 2021-10-24, the indentation depended on
461.2Srillig * the length of the keyword 'struct', 'union' or 'enum', together with type
471.2Srillig * qualifiers like 'const' or the storage class like 'static'.
481.2Srillig */
491.2Srillig#indent input
501.2Srillig{
511.2Srillig	struct {
521.2Srillig		int member;
531.2Srillig	} var = {
541.2Srillig		3,
551.2Srillig	};
561.2Srillig}
571.2Srillig#indent end
581.2Srillig
591.2Srillig/*
601.2Srillig * Struct members use -di for indentation, no matter whether they are
611.2Srillig * declared globally or locally.
621.2Srillig */
631.2Srillig#indent run -ldi0
641.2Srillig{
651.2Srillig	struct {
661.2Srillig		int		member;
671.2Srillig	} var = {
681.2Srillig		3,
691.2Srillig	};
701.2Srillig}
711.2Srillig#indent end
721.2Srillig
731.2Srillig#indent run -ldi16
741.2Srillig{
751.2Srillig	struct {
761.2Srillig		int		member;
771.2Srillig	}		var = {
781.2Srillig		3,
791.2Srillig	};
801.2Srillig}
811.2Srillig#indent end
82