Git - Merging from a template project - no subdirectory
http://stackoverflow.com/questions/9106387/git-merging-from-a-template-project-no-subdirectory
Generate C# project using CMakeI might be missing something there but keeping changing source code in sync with that doesn't sound easy. Can you elaborate ?
http://stackoverflow.com/a/15418074
`Git-fu' lol (that's made me laugh) it's just one command git remote add.... I googled the csproject merge conflict but I have zero context (I don't have any reliance on the VS IDE) as to what it is about. Is this something you can live with? This option fits your criteria the best and offers you the ability to update or not (Very flexible).Git - Merging from a template project - no subdirectory
http://stackoverflow.com/questions/9106387/git-merging-from-a-template-project-no-subdirectory
This has potential but requires good Git-fu. Also, Google "csproj merge conflict"Generate C# project using CMakeI might be missing something there but keeping changing source code in sync with that doesn't sound easy. Can you elaborate ?
http://stackoverflow.com/a/15418074
<ItemGroup>
<Compile Include="${DOS_STYLE_SOURCE_DIR}\**\*.cs" />
</ItemGroup>
I'm sorry CADbloke but I am this close to giving up on you.
Git, just tracks your files. It has nothing to do with your code compiling or not (or Intellisense; that is a feature of your editor/IDE not your code).
Code: [Select]<ItemGroup>
<Compile Include="${DOS_STYLE_SOURCE_DIR}\**\*.cs" />
</ItemGroup>
Code - XML: [Select]
<Compile Include="..\Path\To\ParentFolder\*.*" Exclude="..\Path\To\ParentFolder\NotThisOne.cs;..\Path\To\ParentFolder\NotThisOneEither.cs"> <Link>ParentFolder\%(RecursiveDir)%(Filename)%(Extension)</Link> </Compile> <!-- Visual Studio loves to refactor these things so I always add it as a comment too so I can restore it. Source Code repo check-ins are an easy way to spot this when it happens. <Compile Include="..\Path\To\ParentFolder\*.*" Exclude="..\Path\To\ParentFolder\NotThisOne.cs;..\Path\To\ParentFolder\NotThisOneEither.cs"> <Link>ParentFolder\%(RecursiveDir)%(Filename)%(Extension)</Link> </Compile> --> <!-- This sort of abomination is also possible, if not advisable --> <Compile Include="..\zSourceCode\**\*.*" Exclude="..\zSourceCode\Properties\AssemblyInfo.cs;..\zSourceCode\bin\**\*.*;..\zSourceCode\obj\**\*.*;..\zSourceCode\**\*.csproj;..\zSourceCode\**\*.user;..\zSourceCode\**\*.vstemplate;..\zSourceCode\readme.txt;..\zSourceCode\**\*.lsp;..\zSourceCode\**\*.scr;..\zSourceCode\**\*.ico;..\zSourceCode\**\*.txt"> <!-- This has an absolute path with a variable previously declared in this or another .csproj file --> <Compile Include="$CadExtensionClassesRootFolder$\Common\*.*" > <Link>Common\%(RecursiveDir)%(Filename)%(Extension)</Link> </Compile>
At the end of the day I am trying to find the best way that works for me, I posted it here and at Github in case it helps someone else along the way, or at least helps to clarify why they like their way by showing an alternative they don't like.
I do this type of stuff everyday using VIM
Sounds to me like you are making this far too complicated and you should step back and work on not only your read me but your criteria as well.<TLDR>
...you could use a preprocessor to generate code files for you (and update them before you compile)...
...unless you want to customize the source code of a compiler...Hey, there's an idea...what could possibly go wrong?
:2funny:I do this type of stuff everyday using VIM
Does Vim have a script to remove my foot from your a55?
Sounds to me like you are making this far too complicated and you should step back and work on not only your read me but your criteria as well.<TLDR>
Um, yeah. I think you got me there. This one is less complicated than my previous efforts but it's still not a "click...next..Yay!" solution. By the time I'm 80 I'll have this nailed. Maybe. The readme definitely needs an edit, it's a midnight braindump.
If all you have in your source project is *.cs files then importing the files with a wildcard into your new project is the easiest solution. Job Done. Ditto if the source project is quite static, nothing much changes. I want a solution that can automatically keep the projects in sync, even if the original source changes radically. I want it to be Visual Studio friendly. I want more coffee.
</TLDR>
Code Cloner is definitely half-baked. Here's the proof (I wrote the following first)......you could use a preprocessor to generate code files for you (and update them before you compile)...
That's basically what I want Code Cloner to do, sort of. I want to work with the original files, not proliferate copies all over the place that need to be kept track of and in sync with the original. If I have a bright idea and add it to a target project (because I'm tired and forgot to switch to the original source project) then I want the changes to propagate to all projects - linked files solves that. One version of the Truth. I also want it to work as an easy drop-in on an existing project. You make a call to CodeCloner.exe whenever you want to refresh the target projects. You can check the projects against each other in a text-diff to see what is missing, as a confidence test. As an example, diff the 2x csproj files in the Github project (https://github.com/CADbloke/CodeCloner) after you build them a couple of times, you will see the added lines in the XML and how they compare to the original.
a use case is ...Well, that was crap. Next!
- I have a project (or a few, let's stick to one here) in Visual Studio I have written for AutoCAD 2015
- I decide I want to build a version for, say, BrisCAD with the same code (more or less)
- I create a new Solution folder in the solution root called "_Builds". I just pulled that name from the same place John just put his foot. Call it anything you like
- oh, thank you (for nothing!) Visual Studio, now I got to the actual physical folder tree on disk and create the folder in real life. I give it the same name for consistency's sake.
- In this folder I add / copy / whatever new csproj Project. Hmm, this sounds a little like "magic just happened, you got that right?". ok, you can
- copy the existing csproj and hand-delete all the compile stuff then add it as an existing project
- or you can create a new project of the same type. You will need to make sure the namespaces etc match.
- Physically copying the csproj may be easier. Actually, something that automagically clones the guts of the project would be easier
- the new project is the target project. Delete all the code, add the "Clone Zone" placeholders.
- Add a call to CodeCloner.exe as a post-build process. Or pre-build. I made it post-build in the original project because it actually has to build before it can use itself, it was a chicken/egg thing.
- Most of your editing is done in the original source project, you're really only tweaking the target(s) to make them compatible with their target platform.
- ok, I'm bored now, somebody should automate all this crap and get back to me when it works
- time passes...
- I have a project (or a few, let's stick to one here) in Visual Studio I have written for AutoCAD 2016 (time passed, for those of you who noticed)
- I decide I want to build a version for, say, BrisCAD with the same code (more or less)
- I drop CodeCloner.exe in the Solution root (optional, the .exe can live anywhere, that's up to you)
- I call CodeCloner.exe init "_Builds", "_Builds" being the folder name I want to use for the new builds
- New project(s) magically appear under a new Solution Folder. At this stage they are basically clones of the existing project(s).
- In the target project(s) change the AutoCAD References for BricsCAD references and the .NET framework, if required. I will probably want to add/remove/change some conditional compilation symbols. Or not, whatever is your preference
- Fix what broke
- Ship it. Tests? Meh.
I still think that, for a Visual Studio addict like me, linked source code is still the most usable way of using the same code multiple times. I, personally, want to look through the code and see what is going on.
I have (more) work to do....after the day job ...after the kids go to bed. Sleep? Meh....unless you want to customize the source code of a compiler...Hey, there's an idea...what could possibly go wrong?
Okay.Yeah, the state of my head this week is not good (https://twitter.com/dontsailbackwds/status/652226937713115137).
Your criteria/explanations are still a bit jumbled up and I'm still having a hard time envisioning this but I'm getting a better idea of your plan (I think). -i.e. sometimes you are describing a library, and sometimes you're describing a file sync thing, and other times you're describing a processor of sorts.
I want to work with the original files, not proliferate copies all over the place that need to be kept track of and in sync with the original. If I have a bright idea and add it to a target project (because I'm tired and forgot to switch to the original source project) then I want the changes to propagate to all projects - linked files solves that. One version of the Truth.
You make a call to CodeCloner.exe whenever you want to refresh the target projects. You can check the projects against each other in a text-diff to see what is missing, as a confidence test. As an example, diff the 2x csproj files in the Github project (https://github.com/CADbloke/CodeCloner) after you build them a couple of times, you will see the added lines in the XML and how they compare to the original.
...this post deserves the LHTAQTSW (http://www.catb.org/~esr/faqs/smart-questions.html) tag.Agreed. Poor effort on my part. Sorry I wasted your time.
Usages...
CODERECYCLER /?
CODERECYCLER [Folder [/s]]
CODERECYCLER [[Source.csproj] Destination.csproj]
CODERECYCLER clone [[Source.csproj] Destination Folder]
CODERECYCLER clone [[Source Folder] Destination Folder] [/s]
CODERECYCLER strip [Destination Folder [/s]]
CODERECYCLER strip [Destination.csproj]
CODERECYCLER ... /noconfirm
/? This help text.
/noconfirm Switch. Don't ask about overwrites etc. Use in batch jobs.
Folder Recycles the source(s) into all CSPROJ files in the folder
This is the destination folder that has recycled projects.
The Destination projects need to have the source in their placeholder.
/s Also iterates all subfolders. You just forgot this, right?
use . for the current folder, add /s for all subfolders.
Source.csproj optional Path to the CSPROJ with the source to be recycled.
if only 1 CSPROJ is specified then it is the Destination.
This source overrides all sources in the Destination.
Destination.csproj Path to the existing Destination project.
clone Clones the Source to the Destination path and strips the contents.
Creates new project file(s) with a placeholder + Source.
Using folders it clones all Projects to the same destination Folder.
Source Solution Root (optional)
The root of the solution containing the projects to recycle.
Default is the current directory.
Destination Solution Folder
The new Folder Name for the recycled project(s).
If only one Folder is specifed then it is the destination folder.
strip Creates new recycled projects from ALL existing CSPROJ in the folder.
/s iterates all subfolders . Strips out ALL code. Adds a placeholder.
usage: copy an existing CSPROJ. Strip it. Add a Source.
This is like clone but doesn't copy anything.
Update References, build settings etc. Build it. Rejoice.
*facepalm* ...okay, I'll try to just keep my mouth shut (*COUGH: GET ORGANIZED!!!!*).
A Fog creek user? I was kind of disappointed when I heard about them and I found out they were paid only. Do you like it?
Nah, I don't need another code host. Nor do I need to slow myself down by using a GUI. I evaluated smartgit when I was recommending a GUI for user who was looking to get into using VC (nice but git was intended to be used from the command line and any GUI seems like a kludge--besides, you know Git has a built in GUI right?).
Lately my primary has been VSO because I can create Backlogs, Stories, and all that agile stuff right there and even have VSO build my project for me. Very, very nice.Yes, VSO has come a long way - I haven't used it much because I work alone so I can get away with my dodgy Trello workflow. It would be my 1st choice if I had the reasons you just mentioned. When I regain momentum with my bigger projects I will reconsider moving them to VSO.
Are you using you .git/config file for pushing/pulling branches to each host or are you doing things some weird way you invented on the fly?The latter, I'm not that clever with Git - yet. I'm pleading "too old and too busy with small children" on that one. I keep a separate folder on disk for the public repo and sync it with my working copy using Free File Sync, then push it to Github with a saner history - my private commit message list reads like a Tourette's transcript. I use GitHub flow branching on big projects but on this one it's just one branch.
< .. > I keep a separate folder on disk for the public repo and sync it with my working copy using Free File Sync (http://www.freefilesync.org/), then push it to Github with a saner history
< .. >
I know your orig post is in limbo right now but it sounds like you're doing some hoop jumping. I want to try and set up an example to play with (I don't really understand why the seperate program is needed so I'd like to toy with concepts).The post is back.
Deploying content to a network server can be handled several different ways -i.e. using rsync, using scripts, or using git. Each have good and bad points.
== Scenario 1: Using Rsync ==
RSync is an obvious choice because it has been in place and used in Unix for many years. RSync offers small and fast transfers and can be easily setup and maintained. However, when working on a project there is often items that are not completed or in the process of being moved/deleted/renamed that may or should not be transfered to the network.
=== Good ===
1. Very effecient program.
=== Bad ===
1. CLI tools are unpopular with Windows users.
2. We are already using Git, we should be able to use it to do this maintenance instead of relying on third party tools.
== Scenario 2: Using GIT HOOKS ==
This senario uses git hooks to do some copying/syncing for us. This solution is extremely easy to use and maintain.
=== Good ===
1. All maintenance is automatic.
2. Extremely quick.
3. Almost zero overhead for setup.
=== Bad ===
1.
First thing we need aside from our local repository is a bare remote
repository.
== on the network ==
1. Make a directory and establish a bare repository.
`mkdir <network>/remote_repository.git`
`cd <network>/remote_repository.git`
`git init --bare`
2. Now we need to set up the HOOK. We will be using the POST-RECEIVE
hook.
`cat > hooks/post-receive`
`#!/bin/sh`
`GIT_WORK_TREE="<network>/<end-users-library> git checkout -f`
3. We need to make the post-receive script executable.
`chmod +x hooks/post-receive`
== in local ==
1. We need to set up a remote location for our repository to
push to and assign an alias for it (we'll use "production" as
our alias).
`git remote add production <network>/remote_repository.git`
2. Create the branch on the remote (we will be using the
"master" branch) and push to it.
`git push production +master:refs/heads/master`
Using our new setup is very easy.
`git push production`
Now our <end-users-library> should contain a copy of our content.
I downloaded the project and got as far as opening it. Sorry, haven't found time to do much anything else.
I'm not sure about what you mean by the 'Recycle zone' (remember I have almost zero knowledge of Visual Studio). I also haven't had time to set up a repo to play with concepts but I do have some notes I think you might find of use.
Note (I typically do/have):
1. "good branch mgmt" practices.
2. Make use of my .git/config file.
3. Maintain a .gitignore file.
Here are my notes I think you can glean something from (hope you find something useful in them). These notes are not complete/pretty/etc. because they are my personal notes -ie I didn't write them for [you], I wrote them for me.
git remote add production <network>/remote_repository.git
git push production +master:refs/heads/master
[remote "bb"]
url = https://JohnKaul@bitbucket.org/JohnKaul/...
fetch = +refs/heads/*:refs/remotes/bb/*
[branch "bbmaster"]
remote = bb
merge = refs/heads/master
[remote "vs"]
url = https://jkaul.visualstudio.com/DefaultCollection/_git/...
fetch = +refs/heads/*:refs/remotes/vs/*
[branch "vsmaster"]
remote = vs
merge = refs/heads/master
* 3aa39fd : (8 days ago) ~ John Kaul (HEAD, origin/work, work)
| .gitignore:
|
| Added the tags file to the ignore list.
|
* 4020fff : (8 days ago) ~ John Kaul
| (Multiple files) buffer.cpp, buffer.h:
|
| 1. I have spent some time cleaning these files; I moved all definition code
| to the .cpp file (from the .h).
| 2. Made the headers a little more consitant with eachother; added some
| ARGS and RETURN comments to the function headers.
| 3. Refomatted the code to be a little more consitant; used proper
| indentents and etc.
...
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# You MUST wrap all lines at 72 characters.
#
#
# ==[ Subject/Filename: One line ONLY short meaningful description ]===|
# ==[ Blank: Follow the Subject with a blank line, do NOT remove ]=====|
# ==[ Details: Describe what changed and explain why it changed]=======|
# ==[ Fields: Uncomment and edit where applicable ]====================|
#
# --[ Close bug in project as fixed ]----------------------------------|
#BUG: <bug number>
#FIXED-IN: <optional release version>
#
# --[ Add to release changelog optionally close wish in project ]------|
#FEATURE: <optional bug number>
#FIXED-IN: <optional release version>
#
# --[ Copy commit message to a bug or wish in project ]----------------|
#CCBUG: <bug number>
#
# --[ Copy commit message to an email address ]------------------------|
#CCMAIL: <email>
#
# --[ Notify documentation team of user visible changes ]--------------|
#GUI:
#
# --[ Notify Commit Digest team of something interesting ]-------------|
#DIGEST:
#
# --[ Mark commit as silent for commit filter filtering. ]-------------|
# [ Use sparingly and only for uninteresting and ]
# [ uncontroversial commits. ]
#GIT_SILENT
I really do hope you can grok something from those notes....YES, yes it is better. I'll set that up. Thanks. I understand your notes, especially after the follow-up there, thanks - I just need to find time to implement them.
This would be a lot better then the kludge you're currently employing.
Found on MSDN for what it's worth: Project Linker: Synchronization Tool (https://msdn.microsoft.com/en-us/library/ff921108(v=pandp.20).aspx)lol
andreas.laendle
Are there any plans to support VS 2013? I would really like to have this tool available in the new IDE ;-) Thanks for all your work.
Written October 23, 2013
RobGibbens
This extension will install in VS2013 with some manual editing.
1. Download vsix
2. Change extension from vsix to zip
3. Unzip the file
4. Open "extension.vsixmanifest" in text editor
5. Change the line
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="11.0" />
to
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="12.0" />
6. Zip all files back up
7. Rename to .vsix
8. Double click file
An option to synchronize projects?
4 Posts | Last post June 11, 2013
Written March 07, 2013
Miha Markic
AFAIK there isn't an option to re-link the projects if they get unsynchronized - i.e. if I edit only the source project without the target.
It would be really useful to have such an option.
Written May 13, 2013
Nikola Malovic
Maybe Project Linker source code could inspire someone to add that option :) http://compositewpf.codeplex.com/releases/view/46111 (e)
Written May 17, 2013
Jonkers
The code of this version can be found at: https://projectlinker2012.codeplex.com.
I currently haven't got the time. So please go ahead and drop me a line if you want to make changes.
:)
Written June 11, 2013
Jonkers
Published the project at https://projectlinker2012.codeplex.com
[/quote]Found on MSDN for what it's worth: Project Linker: Synchronization Tool (https://msdn.microsoft.com/en-us/library/ff921108(v=pandp.20).aspx)...
And here is something to consider for your tool CadBloke if you keep at yours:QuoteAn option to synchronize projects?
4 Posts | Last post June 11, 2013
Written March 07, 2013
Miha Markic
AFAIK there isn't an option to re-link the projects if they get unsynchronized - i.e. if I edit only the source project without the target.
...
Written June 11, 2013
Jonkers
Published the project at https://projectlinker2012.codeplex.com
Found on MSDN for what it's worth: Project Linker: Synchronization Tool (https://msdn.microsoft.com/en-us/library/ff921108(v=pandp.20).aspx)...
And here is something to consider for your tool CadBloke if you keep at yours:QuoteAn option to synchronize projects?
4 Posts | Last post June 11, 2013
Written March 07, 2013
Miha Markic
AFAIK there isn't an option to re-link the projects if they get unsynchronized - i.e. if I edit only the source project without the target.
...
Written June 11, 2013
Jonkers
Published the project at https://projectlinker2012.codeplex.com
My project keeps the targets refreshed already (https://github.com/CADbloke/CodeLinker/wiki/Command-Line#examples). If you use a post-build event (https://github.com/CADbloke/CodeLinker/wiki/Visual-Studio-Pre-or-Post-Build-Event) then it happens every time you build the source. The target doesn't need to be loaded anywhere, it just need to be accessible to the file system.
I'll have a look at that repo at CodePlex when I get the chance. I had a quick look at the MSDN page. I think checking for duplicates is a good idea, I'll get on to that ... sometime.
If you haven't pulled from the Github repo (https://github.com/CADbloke/CodeLinker) in the last couple of days then you may notice it changed. I got sick of fiddling with sanitised histories to I reset the Github repo to be the same as my work in progress. Same code, more rants. I'm leaving it there in that form. I have also updated the Wiki.
I didn't want anything as intrusive as VS extension or something that has to be installed and/or live in the PATH. I wanted Code Linker to be as portable as the source code - it will work for anyone who clones the repo as long as CodeLinker.exe is in the repo. It has no dependencies, it doesn't even depend on Visual Studio.
As it stands I am using this already and it is working well for me. It actually builds itself, 3 of the 4 projects in that repo are built from the original command line project.
My own history always had all this, I'm a prolific committer and will often break commits up just to separate the bits IIf you haven't pulled from the Github repo (https://github.com/CADbloke/CodeLinker) in the last couple of days then you may notice it changed. I got sick of fiddling with sanitised histories to I reset the Github repo to be the same as my work in progress. Same code, more rants. I'm leaving it there in that form. I have also updated the Wiki.That's the way your repo should be! You are writing this so you (or someone else) can come back and figure out where bug 'x' was introduced and "why" you choose to do something. ...a sterile history does anyone very little good at all; Use tags and releases. Don't worry about your history as much as you do. This is a process not a leap.
One suggestion is to start cleaning your code a little (and where are the comments!!). Your syntax rules are all over the place; pick a std syntax rule and stick to it.Yeah, that project was also an experiment in what formatting rules would work for me... so I tried them all. I just added at 27 inch 2560x1440 monitor to my desktop so that hasn't helped with any notion of clever use of space. I also did a lot of this at night, after a long day's work and after putting 2 kids to bed. Nevertheless, it's a mess and it needs fixing.
...
My rules are evolving over time...
...
Yeah, that project was also an experiment in what formatting rules would work for me... so I tried them all. I just added at 27 inch 2560x1440 monitor to my desktop so that hasn't helped with any notion of clever use of space. I also did a lot of this at night, after a long day's work and after putting 2 kids to bed. Nevertheless, it's a mess and it needs fixing.
...
...
Regarding braces and where to put them, there's always going to be differences in opinion and hot debate on that one, see http://programmers.stackexchange.com/questions/2715/should-curly-braces-appear-on-their-own-line#
Personally I prefer them on their own line, I like the visual separation.
I do agree that all the bits where I left off the braces need them back, lest I make another goto fail (https://nakedsecurity.sophos.com/2014/02/24/anatomy-of-a-goto-fail-apples-ssl-bug-explained-plus-an-unofficial-patch/). That's just plain wrong.
I use Resharper and it has such a complex matrix of formatting rules (https://www.jetbrains.com/resharper/help/Reference__Options__Languages__CSharp.html) that they often disagree with each other and leave you wondering why it moved things around like it did. I need to sort those rules out and ctrl-A-E-C all the things. As you said...I need to pick a std syntax rule and stick to it. Just looking at that pic I posted there are at least 3 different formats for "if". Wow, was I drinking (https://xkcd.com/323/)? Yeah, that's not right. I will definitely fix that before moving on. I'll even use the same repo this time! (not deleting the Github repo again unless I drop a credit card in it).
...
...
Comments? There's another hot (http://programmers.stackexchange.com/questions/1/comments-are-a-code-smell) debate (http://programmers.stackexchange.com/questions/254978/whats-wrong-with-comments-that-explain-complex-code). I try to name things so obviously and verbosely that they are their own comments. *Try*. Or do you mean more XML doc comments? Please let me know where you think comments would help, I'm interested to know what I may be missing.
...
I started in "Program.cs" and I noticed that you just pass the argument list to the "App" class and parse the args from there. This isn't "terrible" (I would have, however, skipped the "app" class all together and added those functions [Parse commands, Crash, & Finish] to the main class but I digress to my point).Necessary because there are two Program.Main()s, one for the command line project and one for the GUI project. Both projects use the App class.
Your argument handling is a big/nasty If-Else-If chain.
Looks like someone ported the GNU getopt() function to .net. Instead of using my suggestion you can also use this in your project to clean the argument processing up.Crude, ugly but it works, it deals with all the decision paths, it doesn't have a dependency on an external library so anyone who knows what if...else does can already parse it and maintain it. It grew from just a couple of decision paths to what it is now. If I thought it was going to grow any larger then I'd refactor it into something a little more elegant like a big, nasty switch...case chain which is what Getopt wants you to do anyway. From http://getopt.codeplex.com/SourceControl/latest#Gnu.Getopt/Gnu.Getopt/Getopt.cs ...
http://getopt.codeplex.com/
Looks big and complicated. What was wrong, again, with the getopt() method I linked to or the hand-rolled--very simple--version I made for you? ...why add unnecessary complexity to a very simple task (more lines of code does not equal better)?I didn't have a close look at that, just adding it for anyone following along, for future reference.
(more lines of code does not equal better)?Totally agree, it makes it worse - more lines == more bugs.
Well you already know my opinion on that topic (should adopt something); yes, doing so will require major refactoring to your code base. That leads me to a question for you though; in the beginning I wanted to help you (help contribute/fix/format/refactor with actual code) but you labeled my questions/points/suggestions/discussions as "poisonous" (If I understand correctly, you don't seem to want help). If this thread is only advertising (so-to-speak), I would recommend moving it to the "show your stuff" forum (I think you'll get more `followers' if people understand that minor--but important--point; a thread in this forum people tend to think of as needed/wanting help). Would you like me to move this thread to the "show your stuff" forum (let me know and I would be very happy to help)?Looks big and complicated. What was wrong, again, with the getopt() method I linked to or the hand-rolled--very simple--version I made for you? ...why add unnecessary complexity to a very simple task (more lines of code does not equal better)?I didn't have a close look at that, just adding it for anyone following along, for future reference.
...
The code is looking nicer already! And, I see you fixed some of the IF-braces issue I mentioned. Keep going.Thanks. Some things take a while to sink in so...never give up.
in the beginning I wanted to help you (help contribute/fix/format/refactor with actual code) but you labeled my questions/points/suggestions/discussions as "poisonous" (If I understand correctly, you don't seem to want help).Just me being a sooky princess :cry:. I have dried my tears, I will be ok. All help is welcome, for code or otherwise.
If this thread is only advertising (so-to-speak), I would recommend moving it to the "show your stuff" forum (I think you'll get more `followers' if people understand that minor--but important--point; a thread in this forum people tend to think of as needed/wanting help). Would you like me to move this thread to the "show your stuff" forum (let me know and I would be very happy to help)?I put it here because I thought .NET devs would be most interested in it. I'm not concerned with my popularity as such, I just wanted to explore yet another way of building the same thing for multiple upstream APIs. This should go wherever you think the most people would benefit from it. Feel free to move it if you think that's a good idea.