M4BASIC - netmask.m4
Not logged in
divert(-1)
#--------------------------------------------------------------
#
# Implementation to display netask as quadruple.
#
# October 2017, PvE. GPL License.
#
#--------------------------------------------------------------

# Recursive function for 255
define(net,`ifelse(eval($1>=8),1,`net(eval($1-8))'255.,)')

# Bit pattern calculation
define(bit,`eval(256-2**(8-$1%8))')

# Recursive function for 0
define(zero,`ifelse(eval($1<24),1,`zero(eval($1+8))'.0,)')

# Create result
define(result,`net($1)bit($1)zero($1)')

divert(0)dnl
ifdef(`mask',`result(mask)',``Usage: m4 -Dmask=<number> netmask.m4'')

Return to M4BASIC