import{a as d,b as f,c}from"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";var h={name:"expand",summary:"convert tabs to spaces",usage:"expand [OPTION]... [FILE]...",description:"Convert TABs in each FILE to spaces, writing to standard output. If no FILE is specified, standard input is read.",options:["-t N        Use N spaces per tab (default: 8)","-t LIST     Use comma-separated list of tab stops","-i          Only convert leading tabs on each line"],examples:["expand file.txt             # Convert all tabs to 8 spaces","expand -t 4 file.txt        # Use 4-space tabs","expand -t 4,8,12 file.txt   # Custom tab stops"]};function p(n){let i=n.split(",").map(o=>o.trim()),t=[];for(let o of i){let e=parseInt(o,10);if(Number.isNaN(e)||e<1)return null;t.push(e)}for(let o=1;o<t.length;o++)if(t[o]<=t[o-1])return null;return t}function x(n,i){if(i.length===1){let t=i[0];return t-n%t}for(let t of i)if(t>n)return t-n;if(i.length>=2){let t=i[i.length-1]-i[i.length-2],o=i[i.length-1],e=Math.floor((n-o)/t)+1;return o+e*t-n}return 1}function b(n,i){let{tabStops:t,leadingOnly:o}=i,e="",r=0,s=!0;for(let a of n)if(a==="	")if(o&&!s)e+=a,r++;else{let l=x(r,t);e+=" ".repeat(l),r+=l}else a!==" "&&a!=="	"&&(s=!1),e+=a,r++;return e}function u(n,i){if(n==="")return"";let t=n.split(`
`),o=n.endsWith(`
`)&&t[t.length-1]==="";return o&&t.pop(),t.map(r=>b(r,i)).join(`
`)+(o?`
`:"")}var m={name:"expand",execute:async(n,i)=>{if(f(n))return d(h);let t={tabStops:[8],leadingOnly:!1},o=[],e=0;for(;e<n.length;){let s=n[e];if(s==="-t"&&e+1<n.length){let a=p(n[e+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${n[e+1]}'
`};t.tabStops=a,e+=2}else if(s.startsWith("-t")&&s.length>2){let a=p(s.slice(2));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${s.slice(2)}'
`};t.tabStops=a,e++}else if(s==="--tabs"&&e+1<n.length){let a=p(n[e+1]);if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${n[e+1]}'
`};t.tabStops=a,e+=2}else if(s.startsWith("--tabs=")){let a=p(s.slice(7));if(!a)return{exitCode:1,stdout:"",stderr:`expand: invalid tab size: '${s.slice(7)}'
`};t.tabStops=a,e++}else if(s==="-i"||s==="--initial")t.leadingOnly=!0,e++;else if(s==="--"){o.push(...n.slice(e+1));break}else{if(s.startsWith("-")&&s!=="-")return c("expand",s);o.push(s),e++}}let r="";if(o.length===0){let s=i.stdin??"";r=u(s,t)}else for(let s of o){let a=i.fs.resolvePath(i.cwd,s),l=await i.fs.readFile(a);if(l===null)return{exitCode:1,stdout:r,stderr:`expand: ${s}: No such file or directory
`};r+=u(l,t)}return{exitCode:0,stdout:r,stderr:""}}};export{m as expand};
