From 2cb58c5c5cdf8221f057a79402acb2fe9268179a Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Mon, 19 Dec 2022 23:05:09 +0100 Subject: [PATCH] added generators/ dir, removed redundant variable in load_schematic() --- XSchemWin/XSchemWix/xschemrc | 6 ++++- src/save.c | 36 ++++++++++++++--------------- src/xinit.c | 2 +- xschem_library/generators/gen1.awk | 18 +++++++++++++++ xschem_library/generators/gmon.out | Bin 0 -> 514217 bytes 5 files changed, 41 insertions(+), 21 deletions(-) create mode 100755 xschem_library/generators/gen1.awk create mode 100644 xschem_library/generators/gmon.out diff --git a/XSchemWin/XSchemWix/xschemrc b/XSchemWin/XSchemWix/xschemrc index f2977006..9558eb28 100644 --- a/XSchemWin/XSchemWix/xschemrc +++ b/XSchemWin/XSchemWix/xschemrc @@ -59,7 +59,6 @@ # append XSCHEM_LIBRARY_PATH :${xschem_doc_dir}/gschem_import/sym #### For Windows, use ; instead of :, and enclosed pathname with "" -# append XSCHEM_LIBRARY_PATH ";//192.168.1.1/Projects/mysch" # append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library" # append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/devices" # append XSCHEM_LIBRARY_PATH ";${XSCHEM_SHAREDIR}/../xschem_library/examples" @@ -110,6 +109,11 @@ #### variable controls hierarchical print #### default value: empty # set noprint_libs {} +#### nolist_libs is a list with same rules as for xschem_libs. This +#### variable controls cell listing in procedure list_hierarchy. +#### default value: empty +# set nolist_libs {} + ########################################################################### #### CHANGE DEFAULT [] WITH SOME OTHER CHARACTERS FOR BUSSED SIGNALS diff --git a/src/save.c b/src/save.c index d0d285c3..0c8f0880 100644 --- a/src/save.c +++ b/src/save.c @@ -2141,12 +2141,11 @@ void link_symbols_to_instances(int from) /* from >= 0 : linking symbols from pas } } -/* ALWAYS use absolute pathname for filename!!! */ +/* ALWAYS use absolute pathname for fname!!! */ void load_schematic(int load_symbols, const char *fname, int reset_undo) /* 20150327 added reset_undo */ { FILE *fd; char name[PATH_MAX]; - char filename[PATH_MAX]; char msg[PATH_MAX+100]; struct stat buf; int i; @@ -2159,17 +2158,16 @@ void load_schematic(int load_symbols, const char *fname, int reset_undo) /* 2015 if(reset_undo) xctx->prev_set_modify = -1; /* will force set_modify(0) to set window title */ else xctx->prev_set_modify = 0; /* will prevent set_modify(0) from setting window title */ if(fname && fname[0]) { - my_strncpy(filename, fname, S(filename)); - my_strncpy(name, filename, S(name)); + my_strncpy(name, fname, S(name)); /* remote web object specified */ - if(strstr(filename , "http://") == filename || - strstr(filename , "https://") == filename) { + if(strstr(fname , "http://") == fname || + strstr(fname , "https://") == fname) { /* download into ${XSCHEM_TMP_DIR}/xschem_web */ - tclvareval("download_url {", filename, "}", NULL); + tclvareval("download_url {", fname, "}", NULL); /* build local file name of downloaded object */ - my_snprintf(name, S(name), "%s/xschem_web/%s", tclgetvar("XSCHEM_TMP_DIR"), get_cell_w_ext(filename, 0)); + my_snprintf(name, S(name), "%s/xschem_web/%s", tclgetvar("XSCHEM_TMP_DIR"), get_cell_w_ext(fname, 0)); /* build current_dirname by stripping off last filename from url */ - my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", filename); + my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", fname); my_strncpy(xctx->current_dirname, tcleval(msg), S(xctx->current_dirname)); /* local file name */ my_strncpy(xctx->sch[xctx->currsch], name, S(xctx->sch[xctx->currsch])); @@ -2182,25 +2180,25 @@ void load_schematic(int load_symbols, const char *fname, int reset_undo) /* 2015 /* ... but not local file from web download --> reset current_dirname */ char sympath[PATH_MAX]; my_snprintf(sympath, S(sympath), "%s/xschem_web", tclgetvar("XSCHEM_TMP_DIR")); - if(strstr(filename, sympath) != filename) { - my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", filename); + if(strstr(fname, sympath) != fname) { + my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", fname); my_strncpy(xctx->current_dirname, tcleval(msg), S(xctx->current_dirname)); } /* local file name */ - my_strncpy(xctx->sch[xctx->currsch], filename, S(xctx->sch[xctx->currsch])); + my_strncpy(xctx->sch[xctx->currsch], fname, S(xctx->sch[xctx->currsch])); /* local relative reference */ - my_strncpy(xctx->current_name, rel_sym_path(filename), S(xctx->current_name)); + my_strncpy(xctx->current_name, rel_sym_path(fname), S(xctx->current_name)); /* local file specified and not coming from web url */ } else { /* if name is /some/path/. remove /. at end */ - my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", filename); + my_snprintf(msg, S(msg), "regsub {/\\.$} [get_directory {%s}] {}", fname); my_strncpy(xctx->current_dirname, tcleval(msg), S(xctx->current_dirname)); /* local file name */ - my_strncpy(xctx->sch[xctx->currsch], filename, S(xctx->sch[xctx->currsch])); + my_strncpy(xctx->sch[xctx->currsch], fname, S(xctx->sch[xctx->currsch])); /* local relative reference */ - my_strncpy(xctx->current_name, rel_sym_path(filename), S(xctx->current_name)); + my_strncpy(xctx->current_name, rel_sym_path(fname), S(xctx->current_name)); } - dbg(1, "load_schematic(): opening file for loading:%s, filename=%s\n", name, filename); + dbg(1, "load_schematic(): opening file for loading:%s, fname=%s\n", name, fname); dbg(1, "load_schematic(): sch[currsch]=%s\n", xctx->sch[xctx->currsch]); if(!name[0]) return; if(reset_undo) { @@ -2212,8 +2210,8 @@ void load_schematic(int load_symbols, const char *fname, int reset_undo) /* 2015 } } if( (fd=fopen(name,fopen_read_mode))== NULL) { - fprintf(errfp, "load_schematic(): unable to open file: %s, filename=%s\n", name, filename ); - my_snprintf(msg, S(msg), "update; alert_ {Unable to open file: %s}", filename); + fprintf(errfp, "load_schematic(): unable to open file: %s, fname=%s\n", name, fname ); + my_snprintf(msg, S(msg), "update; alert_ {Unable to open file: %s}", fname); tcleval(msg); clear_drawing(); if(reset_undo) set_modify(0); diff --git a/src/xinit.c b/src/xinit.c index 19334608..f087a2a5 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -1994,7 +1994,7 @@ int Tcl_AppInit(Tcl_Interp *inter) } #else char *up_hier=NULL, *win_xschem_library_path=NULL; - #define WIN_XSCHEM_LIBRARY_PATH_NUM 9 + #define WIN_XSCHEM_LIBRARY_PATH_NUM 10 const char *WIN_XSCHEM_LIBRARY_PATH[WIN_XSCHEM_LIBRARY_PATH_NUM] = { /*1*/ "xschem_library", /*2*/ "xschem_library/devices", diff --git a/xschem_library/generators/gen1.awk b/xschem_library/generators/gen1.awk new file mode 100755 index 00000000..ff215735 --- /dev/null +++ b/xschem_library/generators/gen1.awk @@ -0,0 +1,18 @@ +#!/usr/bin/awk -f + +BEGIN{ + header() + print "L 6 0 0 100 100 {" ARGV[1] " " ARGV[2] "}" +} + + +function header() +{ + print "v {xschem version=3.1.0 file_version=1.2}" + print "G {}" + print "K {}" + print "V {}" + print "S {}" + print "E {}" +} + diff --git a/xschem_library/generators/gmon.out b/xschem_library/generators/gmon.out new file mode 100644 index 0000000000000000000000000000000000000000..9a52b7e6a8bef50817e3c8e0feb0df2075b057a6 GIT binary patch literal 514217 zcmeI&|Fis6UBL18^5L6EwWTqAv)M@;!l+r9X~r6`)hwX0*=qWsDQX>ci1@Y+YKn=Q zO=B}iEGCA7(kcU^6tY@Vfqi7Pn6xHmhp=fHgas_((-&6Fh$QRoIj>WD?wtMs=HU$9 z&wbwWKIgn2`@Z}2UUb`0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkL{86(ge+?CJe!=sbZKTbIK|K6w-XRWwu#o66?&Kv&X7X-kuPa;(oN;u9a(t$Q%v?!U=u_s_1ox~xs6yY)c-_2yo$q!U;c-^IY$xScUSN8^hV?QjMA3I5zjdLYtyBe;v!;^KW%sJ%ZTrdU&9nf^E_vX zXQkUH;;(#VH(S@GxVb)$+`Ru;DW=38OHPnXR$;^kl1i~UU=dFhAt;^Nf&%_&FsuBGLq`Rm08KkIEESujg+Z(n6BgX>#!zB9+CZr+=-e`AhU z-(`{~ zG{tE=+?I#k6lW1Dy|nG%$@mb|BT&L7x%?ad?d%ov4c2>-=A_vofcYs zGLJaA|0pxOH^*{UnKnQDRE}l!6c-Vzk?Rxkv!80@=)@c!yyny-pAIka1F`uOCo!@* zd=>G+7v=lpd>fsT=PY;BDbC}$S2?4sbU_|j9-vd~M=W>LDGno+)l*ztm=FJiFEW`mfjV8`DC! z<@onU_MSwIBbG<5e8Zic@1SqFB!5kD9#4fo^VfOv&q)itG>^F8b2&bL7iSU6xu>`| zH1hj*BR7Xernq`pp0ivw>G1K7=lJ!Hy!hu1GeXr4>_;r}Y2>gK$E`SN#c3bSNhINh?lUao&oHR$R5>x)ryr z*uA;leA?%r6^E@jZpCRU&RTKPii5W_wlr$RNh?lUad9Z73v7KTrgPu6Vs~|8OM_M% zw&J)Ir>(eb#qqD^)jzYzca>?M%ZTOSEXBp!8zVQZxV<)yEO#vF@abZ}aodWc>l<@U55?@+imO)Kw&L=g^+IXRO)GZ4)fhQw z#o3{luH;oK_TN>{nMO`pad9Z7eXd$@(~8{<^+M_JQ7cYbao&oXh}Bz3{oigZG;GC5 zE6!SR)rzAV^FmMFxAz-2X~kK@>UVSao_u(D(9a+dANkq6ImZz{8Be0q$P(}QroHEN zlNfp79ea=O(}>3|*c}+p1WNp|c($JAT*S!g?Y?Eim&Q9iX=I5Xo#m5AaTO!ad0Bq% zBE@yY+2wn26Y+_7l9EPtznkYO&zDl{NBs6UA}wHFK!~f=)}FajX1ky@8;;=(Yh2P7P`0YE}cnhhp!6G)!ph~@AUrw`_l z!-&=4%U0aB4ll7nyTtuwSeHF2KFKF8u*?%gpUX2_?tj=iEisM$Cl^CzR(&pz8t7m}gLowaYcmJ8U zRE-=)tnWi2-W6}rrG+M~xQJNE&%crvI_vfMYdU-pv3fjON34)H5vx0a{?mD`Do(zd zW3~B3#HWw$J<;8?Ms{5uQT@scT5;5h^Hy9%y!Yz8b1$)4Xx%z|8*v&>6B1p&*VyMU zV)cxA9I;l4SRQ)PoYU5vt5)2!;x^({@u7E`vpX*D^Y>r4`!-$<3?f$NK8pB<`=5Z1 zBUXdGYyn+UGLjW$}S(imQm#>YIqw<=q{h=d3Q;)d`K* zKQYJZ1x|?-$S_8J$5;2BJWnFl_aP_cIjg4!n^SVEHoty$BX&QRV_E%eyW44eQI6%4 z(B;ANnBMy09Loo(X=L|HIhGGnQyfJsho?A?Sd>y+Myyt!zN=n6e~kN{9Lr6dUL#Cz z&+*u``D+@vxjTPT_L)WwK9*zIXNu#9WuGbbKb}WcH}NQ9^7hG;$rWI?WQR7xjZb z%X3!uw43-0vV4Z}y}N5^@acN>6o>H{PZ@dKZsas#*=LIV`|E|$r$U2>SA0JIFvUrH z=v8ixH}B@0#pgz4&I@;O8?mgO9u0>N*85Cx7O{M0nm#I89~znB=b3 zPpdytkNlQ{*BHI=qjmh?!H0ak>7n@GZqD_gct$$Scps#^f=-uWf12+*syo$Xyc(}Y zjvmP)i&FaQlvTt_UXdTUQtUsLN8a*<{58dK#PSAFirZFP{bRjQx``)`*K?-0h*;)K zaUHST#3^ngmd&R)KGv9X+KTg5T(#n+6}J&z5L#Jjn^!;YefjIX2Yc$xB9=2cx{KRz zESF*$*?lP=R?aBJe#G*WIK^>my&lGo8wOy@;>8}+Okl7